# # Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Oracle designates this # particular file as subject to the "Classpath" exception as provided # by Oracle in the LICENSE file that accompanied this code. # # This code is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # questions. # # # Makefile for building and packaging all of the JDK and the JRE. See # also included files. # BUILDDIR=. include $(BUILDDIR)/common/Defs.gmk # # Make sure we are clear what the default target is # default_target: all # # Check target # check: variable_check # # Help target # help: intro_help target_help variable_help notes_help examples_help # Intro help message intro_help: @$(ECHO) "\ Makefile for the main JDK workspace. \n\ Default behavior is to use the BOOTDIR javac to bootstrap the build and \n\ import in pre-built components like the VM from the JDK_IMPORT_PATH. \n\ " # Target help target_help: @$(ECHO) "\ --- Common Targets --- \n\ all -- build the core JDK (default target) \n\ help -- Print out help information \n\ check -- Check make variable values for correctness \n\ sanity -- Perform detailed sanity checks on system and settings \n\ openjdk -- synonym for 'OPENJDK=true all' \n\ fastdebug -- build the core JDK in 'fastdebug' mode (-g -O) \n\ debug -- build the core JDK in 'debug' mode (-g) \n\ clean -- remove all built and imported files \n\ clobber -- same as clean \n\ docs -- run javadoc to generate the JDK documentation \n\ images -- build the jdk and jre image directories \n\ import -- copy in the pre-built components (e.g. VM) \n\ import_product -- copy in the product components \n\ import_fastdebug -- copy in the fastdebug components \n\ import_debug -- copy in the debug components \n\ modules -- build the jdk and jre module images (experimental) \n\ create_links -- create softlinks in Solaris 32bit build to 64bit dirs \n\ " # Variable help (only common ones used by this workspace) variable_help: variable_help_intro variable_list variable_help_end variable_help_intro: @$(ECHO) "--- Common Variables ---" variable_help_end: @$(ECHO) " " # One line descriptions for the variables OUTPUTDIR.desc = Output directory PARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count SLASH_JAVA.desc = Root of all build tools, e.g. /java or J: BOOTDIR.desc = JDK used to boot the build LANGTOOLS_DIST.desc = langtools dist area used to build CORBA_DIST.desc = corba dist area JAXP_DIST.desc = jaxp dist area JAXWS_DIST.desc = jaxws dist area JDK_IMPORT_PATH.desc = JDK used to import components of the build COMPILER_PATH.desc = Compiler install directory CACERTS_FILE.desc = Location of certificates file DEVTOOLS_PATH.desc = Directory containing zip and unzip CUPS_HEADERS_PATH.desc = Include directory location for CUPS header files DXSDK_PATH.desc = Root directory of DirectX SDK MSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll # Make variables to print out (description and value) VARIABLE_PRINTVAL_LIST += \ OUTPUTDIR \ PARALLEL_COMPILE_JOBS \ SLASH_JAVA \ BOOTDIR \ LANGTOOLS_DIST \ JAXWS_DIST \ CORBA_DIST \ JAXP_DIST \ JDK_IMPORT_PATH \ COMPILER_PATH \ CACERTS_FILE \ DEVTOOLS_PATH # Make variables that should refer to directories that exist VARIABLE_CHECKDIR_LIST += \ SLASH_JAVA \ BOOTDIR \ JDK_IMPORT_PATH \ COMPILER_PATH \ DEVTOOLS_PATH # Make variables that should refer to files that exist VARIABLE_CHECKFIL_LIST += \ CACERTS_FILE # Some are windows specific ifeq ($(PLATFORM), windows) VARIABLE_PRINTVAL_LIST += \ DXSDK_PATH \ MSVCRT_DLL_PATH VARIABLE_CHECKDIR_LIST += \ DXSDK_PATH \ MSVCRT_DLL_PATH endif # For pattern rules below, so all are treated the same DO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval) DO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir) DO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil) # Complete variable check variable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST) variable_list: $(DO_PRINTVAL_LIST) variable_check # Pattern rule for printing out a variable %.printval: @$(ECHO) " ALT_$* - $($*.desc)" @$(ECHO) " \t $*=$($*)" # Pattern rule for checking to see if a variable with a directory exists %.checkdir: @if [ ! -d $($*) ] ; then \ $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \ fi # Pattern rule for checking to see if a variable with a file exists %.checkfil: @if [ ! -f $($*) ] ; then \ $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \ fi # Misc notes on help notes_help: @$(ECHO) "\ --- Notes --- \n\ - All builds use same output directory unless overridden with \n\ \t ALT_OUTPUTDIR=