make/Makefile

Thu, 01 Nov 2012 14:11:50 -0700

author
katleman
date
Thu, 01 Nov 2012 14:11:50 -0700
changeset 336
5ded18a14bcc
parent 286
f50545b5e2f1
child 439
1d1af4ce8eeb
permissions
-rw-r--r--

Added tag jdk8-b63 for changeset 86989f702267

     1 #
     2 # Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4 #
     5 # This code is free software; you can redistribute it and/or modify it
     6 # under the terms of the GNU General Public License version 2 only, as
     7 # published by the Free Software Foundation.  Oracle designates this
     8 # particular file as subject to the "Classpath" exception as provided
     9 # by Oracle in the LICENSE file that accompanied this code.
    10 #
    11 # This code is distributed in the hope that it will be useful, but WITHOUT
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14 # version 2 for more details (a copy is included in the LICENSE file that
    15 # accompanied this code).
    16 #
    17 # You should have received a copy of the GNU General Public License version
    18 # 2 along with this work; if not, write to the Free Software Foundation,
    19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20 #
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22 # or visit www.oracle.com if you need additional information or have any
    23 # questions.
    24 #
    26 # Makefile wrapper around Ant build.xml file
    28 #
    29 # On Solaris, the 'make' utility from Sun will not work with these makefiles.
    30 #    This little rule is only understood by Sun's make, and is harmless
    31 #    when seen by the GNU make tool. If using Sun's make, this causes the
    32 #    make command to fail.
    33 #
    34 SUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
    36 ifdef QUIET
    37   ANT_OPTIONS += -quiet
    38 endif
    40 ifdef VERBOSE
    41   ANT_OPTIONS += -verbose
    42 endif
    44 ifeq ($(VARIANT), OPT)
    45   ifneq ($(DEBUG_CLASSFILES), true)
    46     ANT_OPTIONS += -Djavac.debug=false
    47   endif
    48 endif
    50 # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN)
    51 # and the somewhat misnamed CLASS_VERSION (-target NN)
    52 ifdef TARGET_CLASS_VERSION
    53   ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION)
    54 else
    55   ifdef JAVAC_TARGET_ARG
    56     ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG)
    57   endif
    58 endif
    60 ifdef SOURCE_LANGUAGE_VERSION
    61   ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)
    62 else
    63   ifdef JAVAC_SOURCE_ARG 
    64     ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG)
    65   endif
    66 endif 
    68 # If downloads are allowed
    69 ifeq ($(ALLOW_DOWNLOADS),true)
    70   ANT_OPTIONS += -Dallow.downloads=true
    71 endif
    73 # Figure out the platform we are using
    74 _SYSTEM_UNAME := $(shell uname)
    75 _PLATFORM_KIND = unix
    76 ifeq ($(_SYSTEM_UNAME), Windows_NT)
    77   _PLATFORM_KIND = windows
    78 endif
    79 ifneq (,$(findstring CYGWIN,$(_SYSTEM_UNAME)))
    80   _PLATFORM_KIND = windows
    81 endif
    83 # Where is /java in case we need it
    84 ifdef ALT_SLASH_JAVA
    85   _SLASHJAVA = $(ALT_SLASH_JAVA)
    86 else
    87   ifeq ($(_PLATFORM_KIND), windows)
    88     _SLASHJAVA=J:/
    89   else
    90     _SLASHJAVA=/java
    91   endif
    92 endif
    94 ifdef ALT_OUTPUTDIR
    95   OUTPUTDIR = $(ALT_OUTPUTDIR)
    96   ANT_OPTIONS += -Doutput.dir=$(ALT_OUTPUTDIR)
    97 else
    98   OUTPUTDIR = ..
    99 endif
   101 ifdef ALT_LANGTOOLS_DIST
   102   ifdef ALT_BOOTDIR
   103     ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
   104     ANT_OPTIONS += -Djdk.home=$(ALT_BOOTDIR)
   105   endif
   106   ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap
   107 else
   108   ifdef ALT_JDK_IMPORT_PATH
   109     ANT_JAVA_HOME = JAVA_HOME=$(ALT_JDK_IMPORT_PATH)
   110     ANT_OPTIONS += -Djdk.home=$(ALT_JDK_IMPORT_PATH)
   111   endif
   112 endif
   114 ifdef ANT_HOME
   115   ANT = $(ANT_HOME)/bin/ant
   116   ifneq ($(shell test -x $(ANT); echo $$?), 0)
   117     $(error "$(ANT) not found; please update ANT_HOME")
   118   endif
   119 else
   120   ANT = ant
   121   ifneq ($(shell which $(ANT) > /dev/null; echo $$?), 0)
   122     $(error "'ant' not found; please set ANT_HOME or put 'ant' on your PATH")
   123   endif
   124 endif
   126 # Default target and expected 'do everything' target
   127 default: all
   129 # All ant targets of interest
   130 ANT_TARGETS = all build dist clobber clean sanity
   132 # Create a make target for each
   133 $(ANT_TARGETS):
   134 	cd .. && $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) -version
   135 	cd .. && $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) $@
   137 # Just for compat reasons, delete in future.
   138 drop_included:
   139 source:
   141 # Help target
   142 define helpenvline
   143 @echo "    $1";echo "        $2"
   144 endef
   145 help:
   146 	@echo "----------------------------------------------------------"
   147 	@echo " "
   148 	@echo "Help information for this Makefile:"
   149 	@echo " "
   150 	@echo "  Targets (see ant project information for descriptions):"
   151 	@echo "    $(ANT_TARGETS)"
   152 	@echo " "
   153 	@echo "  Environment or command line variables (all optional):"
   154 	$(call helpenvline, ALT_BOOTDIR,\
   155 	       "JAVA_HOME to use when running ant")
   156 	$(call helpenvline, ALT_LANGTOOLS_DIST,\
   157 	       "path to langtools repository dist directory")
   158 	$(call helpenvline, ALT_OUTPUTDIR,\
   159 	       "path to root of output")
   160 	$(call helpenvline, DEBUG_CLASSFILES,\
   161 	       "if set makes sure ant property javac.debug is true")
   162 	$(call helpenvline, JAVAC_SOURCE_ARG,\
   163 	       "if SOURCE_LANGUAGE_VERSION not set uses this to set ant property javac.source")
   164 	$(call helpenvline, JAVAC_TARGET_ARG,\
   165 	       "if TARGET_CLASS_VERSION not set uses this to set ant property javac.target")
   166 	$(call helpenvline, SOURCE_LANGUAGE_VERSION,\
   167 	       "if set uses this to set ant property javac.source")
   168 	$(call helpenvline, QUIET,\
   169 	       "if set will pass -quiet to ant")
   170 	$(call helpenvline, TARGET_CLASS_VERSION,\
   171 	       "JAVA_HOME to use when running ant")
   172 	$(call helpenvline, VARIANT,\
   173 	       "if set to OPT means optimized build will set javac.debug to false")
   174 	$(call helpenvline, VERBOSE,\
   175 	       "if set will pass -verbose to ant")
   176 	@echo " "
   177 	@echo "----------------------------------------------------------"
   178 	@echo " "
   179 	@echo "Ant project file help information:"
   180 	@echo " "
   181 	@$(ANT_JAVA_HOME) cd .. && $(ANT) $(ANT_OPTIONS) -p
   182 	@echo " "
   183 	@echo "----------------------------------------------------------"
   185 # Targets for Sun's internal JPRT build system
   186 JPRT_ARCHIVE_BUNDLE=$(OUTPUTDIR)/jprt.zip
   187 jprt_build_product jprt_build_debug jprt_build_fastdebug: all
   188 	$(RM) $(JPRT_ARCHIVE_BUNDLE)
   189 	( cd $(OUTPUTDIR)/dist && \
   190 	   zip -q -r $(JPRT_ARCHIVE_BUNDLE) . )
   192 # Declare these phony (not filenames)
   193 .PHONY: $(ANT_TARGETS) \
   194 	jprt_build_product jprt_build_debug jprt_build_fastdebug

mercurial