# # Copyright (c) 1995, 2012, 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. # # This must be the first rule default: all # Inclusion of this pseudo-target will cause make to execute this file # serially, regardless of -j. Recursively called makefiles will not be # affected, however. This is required for correct dependency management. .NOTPARALLEL: include $(SPEC) include MakeBase.gmk include JavaCompilation.gmk include NativeCompilation.gmk # Setup the java compilers for the JDK build. include Setup.gmk # Include Profile information include ProfileNames.gmk # Include the corresponding custom file, if present. -include $(CUSTOM_MAKE_DIR)/BuildJdk.gmk import: import-only import-only: # Import (corba jaxp jaxws langtools hotspot) +$(MAKE) -f Import.gmk gensrc: import gensrc-only gensrc-only: +$(MAKE) -f GenerateSources.gmk # Ok, now gensrc is fully populated. gendata: gensrc gendata-only gendata-only: +$(MAKE) -f GenerateData.gmk classes: gendata classes-only classes-only: +$(MAKE) -f CompileJavaClasses.gmk # The classes are now built and # any javah files have now been generated. libs: classes libs-only libs-only: +$(MAKE) -f CompileNativeLibraries.gmk launchers: libs launchers-only launchers-only: # Finally compile the launchers. +$(MAKE) -f CompileLaunchers.gmk genclasses: launchers genclasses-only genclasses-only: # Generate classes that have other sources. Needs # to execute launchers. +$(MAKE) -f GenerateClasses.gmk jdk: genclasses # Now we have a complete jdk, which you can run. # It is not yet wrapped up as an installed image. demos: # The demos are compiled against this jdk. +$(MAKE) -f CompileDemos.gmk # Now copy the sample sources into the jdk. +$(MAKE) -f CopySamples.gmk # Create the final jdk and jre images, to be wrapped up # into packages, or installed. Ensure PROFILE is not set # in these cases. images: +$(MAKE) PROFILE="" -f CreateJars.gmk +$(MAKE) PROFILE="" -f Images.gmk ifeq ($(OPENJDK_TARGET_OS), macosx) +$(MAKE) -f Bundles.gmk endif overlay-images: +$(MAKE) -f CompileLaunchers.gmk OVERLAY_IMAGES=true +$(MAKE) -f Images.gmk overlay-images # Create Compact Profile images $(ALL_PROFILES): +$(MAKE) PROFILE=$@ -f CreateJars.gmk +$(MAKE) PROFILE=$@ JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/j2re-$(word $(call profile_number,$@),$(PROFILE_NAMES))-image -f Images.gmk profile-image profiles: $(ALL_PROFILES) sign-jars: +$(MAKE) -f SignJars.gmk BINARIES := $(notdir $(wildcard $(JDK_IMAGE_DIR)/bin/*)) INSTALLDIR := openjdk-$(RELEASE) # Install the jdk image, in a very crude way. Not taking into # account, how to install properly on macosx or windows etc. install: echo Installing jdk image into $(INSTALL_PREFIX)/jvm/$(INSTALLDIR) echo and creating $(words $(BINARIES)) links from $(INSTALL_PREFIX)/bin into the jdk. $(MKDIR) -p $(INSTALL_PREFIX)/jvm/$(INSTALLDIR) $(RM) -r $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/* $(CP) -rp $(JDK_IMAGE_DIR)/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR) $(MKDIR) -p $(INSTALL_PREFIX)/bin $(RM) $(addprefix $(INSTALL_PREFIX)/bin/, $(BINARIES)) $(foreach b, $(BINARIES), $(LN) -s $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/bin/$b $(INSTALL_PREFIX)/bin/$b &&) true # The all target builds the JDK, but not the images all: jdk .PHONY: import gensrc gendata classes libs launchers genclasses .PHONY: import-only gensrc-only gendata-only classes-only libs-only launchers-only genclasses-only .PHONY: all jdk demos images overlay-images bundles install .PHONY: profiles $(ALL_PROFILES)