| # | |
| # Copyright (c) 1995, 2013, 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 | |
| securityjars: genclasses securityjars-only | |
| securityjars-only: | |
| +$(MAKE) -f CreateSecurityJars.gmk | |
| jdk: securityjars | |
| # 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) |