| # |
| # 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) |