Main.gmk revision 1156:dc29cb072e8a
1252190Srpaulo# 2252190Srpaulo# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. 3252190Srpaulo# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4252190Srpaulo# 5252190Srpaulo# This code is free software; you can redistribute it and/or modify it 6252190Srpaulo# under the terms of the GNU General Public License version 2 only, as 7252190Srpaulo# published by the Free Software Foundation. Oracle designates this 8252190Srpaulo# particular file as subject to the "Classpath" exception as provided 9252190Srpaulo# by Oracle in the LICENSE file that accompanied this code. 10252190Srpaulo# 11252190Srpaulo# This code is distributed in the hope that it will be useful, but WITHOUT 12252190Srpaulo# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13252190Srpaulo# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14252190Srpaulo# version 2 for more details (a copy is included in the LICENSE file that 15252190Srpaulo# accompanied this code). 16252190Srpaulo# 17252190Srpaulo# You should have received a copy of the GNU General Public License version 18252190Srpaulo# 2 along with this work; if not, write to the Free Software Foundation, 19252190Srpaulo# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20252190Srpaulo# 21252190Srpaulo# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22252190Srpaulo# or visit www.oracle.com if you need additional information or have any 23252190Srpaulo# questions. 24252190Srpaulo# 25252190Srpaulo 26252190Srpaulo################################################################################ 27252190Srpaulo# This is the main makefile containing most actual top level targets. It needs 28252190Srpaulo# to be called with a SPEC file defined. 29252190Srpaulo 30252190Srpaulo# Declare default target 31252190Srpaulodefault: 32252190Srpaulo 33252190Srpaulo# Now load the spec 34252190Srpauloinclude $(SPEC) 35252190Srpaulo 36252190Srpauloinclude $(SRC_ROOT)/make/MakeHelpers.gmk 37252190Srpaulo 38252190Srpaulo# Load the vital tools for all the makefiles. 39252190Srpauloinclude $(SRC_ROOT)/make/common/MakeBase.gmk 40252190Srpauloinclude $(SRC_ROOT)/make/common/Modules.gmk 41252190Srpaulo 42252190Srpaulo# Load common profile names definitions 43252190Srpauloinclude $(JDK_TOPDIR)/make/ProfileNames.gmk 44252190Srpaulo 45252190Srpaulo# Declare ALL_TARGETS as an immediate variable. This variable is a list of all 46252190Srpaulo# valid top level targets. It's used to declare them all as PHONY and to 47252190Srpaulo# generate the -only targets. 48252190SrpauloALL_TARGETS := 49252190Srpaulo 50252190Srpaulo# Hook to include the corresponding custom file, if present. 51252190Srpaulo$(eval $(call IncludeCustomExtension, , Main.gmk)) 52252190Srpaulo 53252190Srpaulo# All modules for the current target platform. 54252190Srpaulo# Manually add jdk.hotspot.agent for now. 55252190SrpauloALL_MODULES := $(call FindAllModules) jdk.hotspot.agent 56252190Srpaulo 57252190Srpaulo################################################################################ 58252190Srpaulo################################################################################ 59252190Srpaulo# 60252190Srpaulo# Recipes for all targets. Only recipes, dependencies are declared later. 61252190Srpaulo# 62252190Srpaulo################################################################################ 63252190Srpaulo 64252190Srpaulo################################################################################ 65252190Srpaulo# Interim/build tools targets, compiling tools used during the build 66252190Srpaulo 67252190Srpaulointerim-langtools: 68252190Srpaulo +($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk) 69252190Srpaulo 70252190Srpaulointerim-corba: 71252190Srpaulo +($(CD) $(CORBA_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileCorba.gmk) 72252190Srpaulo 73252190Srpaulointerim-rmic: 74252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk) 75252190Srpaulo 76252190Srpaulobuild-tools-jdk: 77252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk java-tools) 78252190Srpaulo 79252190SrpauloALL_TARGETS += interim-langtools interim-corba build-tools-jdk 80252190Srpaulo 81252190Srpaulo################################################################################ 82252190Srpaulo# Special targets for certain modules 83252190Srpaulo 84252190Srpauloimport-hotspot: 85252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Import.gmk) 86252190Srpaulo 87252190Srpaulounpack-sec: 88252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UnpackSecurity.gmk) 89252190Srpaulo 90252190Srpaulopolicy-jars: 91252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreatePolicyJars.gmk) 92252190Srpaulo 93252190SrpauloALL_TARGETS += import-hotspot unpack-sec policy-jars 94252190Srpaulo 95252190Srpaulo################################################################################ 96252190Srpaulo# Gensrc targets, generating source before java compilation can be done 97252190SrpauloJDK_GENSRC_MODULES := $(call FindModulesWithMakefileFor, gensrc, Gensrc) 98252190SrpauloLANGTOOLS_GENSRC_MODULES := jdk.compiler.tools 99252190SrpauloCORBA_GENSRC_MODULES := java.corba 100252190SrpauloGENSRC_MODULES := $(JDK_GENSRC_MODULES) $(LANGTOOLS_GENSRC_MODULES) \ 101252190Srpaulo $(CORBA_GENSRC_MODULES) 102252190SrpauloJDK_GENSRC_TARGETS := $(addsuffix -gensrc, $(JDK_GENSRC_MODULES)) 103252190SrpauloLANGTOOLS_GENSRC_TARGETS := $(addsuffix -gensrc, $(LANGTOOLS_GENSRC_MODULES)) 104252190SrpauloCORBA_GENSRC_TARGETS := $(addsuffix -gensrc, $(CORBA_GENSRC_MODULES)) 105252190SrpauloGENSRC_TARGETS := $(addsuffix -gensrc, $(GENSRC_MODULES)) 106252190Srpaulo 107252190Srpaulojdk.compiler.tools-gensrc: 108252190Srpaulo +($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GensrcLangtools.gmk) 109252190Srpaulo 110252190Srpaulojava.corba-gensrc: 111252190Srpaulo +($(CD) $(CORBA_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GensrcCorba.gmk) 112252190Srpaulo 113252190Srpaulo# Declare recipes for all jdk <module>-gensrc targets 114252190Srpaulo$(foreach m, $(JDK_GENSRC_MODULES), $(eval $(call DeclareRecipeForModuleMakefile, \ 115252190Srpaulo $m, gensrc, gensrc, Gensrc))) 116252190Srpaulo 117252190SrpauloALL_TARGETS += $(GENSRC_TARGETS) 118252190Srpaulo 119252190Srpaulo################################################################################ 120252190Srpaulo# Generate data targets 121252190SrpauloGENDATA_MODULES := $(call FindModulesWithMakefileFor, gendata, Gendata) 122252190SrpauloGENDATA_TARGETS := $(addsuffix -gendata, $(GENDATA_MODULES)) 123252190Srpaulo 124252190Srpaulo# Declare recipes for all <module>-gendata targets 125252190Srpaulo$(foreach m, $(GENDATA_MODULES), $(eval $(call DeclareRecipeForModuleMakefile, \ 126252190Srpaulo $m, gendata, gendata, Gendata))) 127252190Srpaulo 128252190Srpaulo$(foreach m, $(GENDATA_MODULES), $(eval $(call DeclareGendataRecipe,$m))) 129252190Srpaulo 130252190SrpauloALL_TARGETS += $(GENDATA_TARGETS) 131252190Srpaulo 132252190Srpaulo################################################################################ 133252190Srpaulo# Copy files targets 134252190SrpauloCOPY_MODULES := $(call FindModulesWithMakefileFor, copy, Copy) 135252190SrpauloCOPY_TARGETS := $(addsuffix -copy, $(COPY_MODULES)) 136252190Srpaulo 137252190Srpaulo# Declare recipes for all <module>-copy targets 138252190Srpaulo$(foreach m, $(COPY_MODULES), $(eval $(call DeclareRecipeForModuleMakefile, \ 139252190Srpaulo $m, copy, copy, Copy))) 140252190Srpaulo 141252190SrpauloALL_TARGETS += $(COPY_TARGETS) 142252190Srpaulo 143252190Srpaulo################################################################################ 144252190Srpaulo# Targets for compiling all java modules. Nashorn is treated separately. 145252190SrpauloJAVA_MODULES := $(call FindJavaModules) 146252190SrpauloJAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES)) 147252190Srpaulo 148252190Srpaulodefine DeclareCompileJavaRecipe 149252190Srpaulo $1-java: 150252190Srpaulo +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CompileJavaModules.gmk \ 151252190Srpaulo $1 JAVA_MODULES=$1) 152252190Srpauloendef 153252190Srpaulo 154252190Srpaulo$(foreach m, $(filter-out jdk.scripting.nashorn, $(JAVA_MODULES)), \ 155252190Srpaulo $(eval $(call DeclareCompileJavaRecipe,$m))) 156252190Srpaulo 157252190Srpaulo# Build nashorn. Needs to be compiled separately from the rest of the modules 158252190Srpaulo# due to nasgen. 159252190Srpaulojdk.scripting.nashorn-java: 160252190Srpaulo +($(CD) $(NASHORN_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildNashorn.gmk compile) 161252190Srpaulo 162252190SrpauloALL_TARGETS += $(JAVA_TARGETS) 163252190Srpaulo 164252190Srpaulo################################################################################ 165252190Srpaulo# Targets for running rmic. 166252190SrpauloRMIC_MODULES := $(call FindModulesWithMakefileFor, rmic, Rmic) 167252190SrpauloRMIC_TARGETS := $(addsuffix -rmic, $(RMIC_MODULES)) 168252190Srpaulo 169252190Srpaulo# Declare recipes for all <module>-rmic targets 170252190Srpaulo$(foreach m, $(RMIC_MODULES), $(eval $(call DeclareRecipeForModuleMakefile, \ 171252190Srpaulo $m, rmic, rmic, Rmic))) 172252190Srpaulo 173252190SrpauloALL_TARGETS += $(RMIC_TARGETS) 174252190Srpaulo 175252190Srpaulo################################################################################ 176252190Srpaulo# Targets for compiling native libraries 177252190SrpauloALL_LIB_MODULES := $(call FindModulesWithMakefileFor, lib, Lib) 178252190SrpauloLIB_MODULES := $(filter $(ALL_MODULES), $(ALL_LIB_MODULES)) 179252190SrpauloLIB_TARGETS := $(addsuffix -libs, $(LIB_MODULES)) 180252190Srpaulo 181252190Srpaulo# Declare recipes for all <module>-libs targets 182252190Srpaulo$(foreach m, $(LIB_MODULES), $(eval $(call DeclareRecipeForModuleMakefile, \ 183252190Srpaulo $m, libs, lib, Lib))) 184252190Srpaulo 185252190SrpauloALL_TARGETS += $(LIB_TARGETS) 186252190Srpaulo 187252190Srpaulo################################################################################ 188252190Srpaulo# Targets for compiling native executables 189252190SrpauloALL_LAUNCHER_MODULES := $(call FindModulesWithMakefileFor, launcher, Launcher) 190252190SrpauloLAUNCHER_MODULES := $(filter $(ALL_MODULES), $(ALL_LAUNCHER_MODULES)) 191252190SrpauloLAUNCHER_TARGETS := $(addsuffix -launchers, $(LAUNCHER_MODULES)) 192252190Srpaulo 193252190Srpaulo# Declare recipes for all <module>-launchers targets 194252190Srpaulo$(foreach m, $(LAUNCHER_MODULES), $(eval $(call DeclareRecipeForModuleMakefile, \ 195252190Srpaulo $m, launchers, launcher, Launcher))) 196252190Srpaulo 197252190SrpauloALL_TARGETS += $(LAUNCHER_TARGETS) 198252190Srpaulo 199252190Srpaulo################################################################################ 200252190Srpaulo# Build hotspot target 201252190Srpaulo 202252190Srpauloifeq ($(BUILD_HOTSPOT),true) 203252190Srpaulo hotspot: 204252190Srpaulo ($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk) 205252190Srpauloendif 206252190Srpaulo 207252190SrpauloALL_TARGETS += hotspot 208252190Srpaulo 209252190Srpaulo################################################################################ 210252190Srpaulo# Build demos and samples targets 211252190Srpaulo 212252190Srpaulodemos: 213252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk) 214252190Srpaulo 215252190Srpaulosamples: 216252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopySamples.gmk) 217252190Srpaulo 218252190SrpauloALL_TARGETS += demos samples 219252190Srpaulo 220252190Srpaulo################################################################################ 221252190Srpaulo# Image targets 222252190Srpaulo 223252190Srpaulo# Stores the tips for each repository. This file is be used when constructing the jdk image and can be 224252190Srpaulo# used to track the exact sources used to build that image. 225252190Srpaulosource-tips: $(OUTPUT_ROOT)/source_tips 226252190Srpaulo$(OUTPUT_ROOT)/source_tips: FRC 227252190Srpaulo @$(MKDIR) -p $(@D) 228252190Srpaulo @$(RM) $@ 229252190Srpaulo @$(call GetSourceTips) 230252190Srpaulo 231252190Srpaulosecurity-jars: 232252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreateSecurityJars.gmk) 233252190Srpaulo 234252190Srpaulonashorn-jar: 235252190Srpaulo +($(CD) $(NASHORN_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildNashorn.gmk all) 236252190Srpaulo 237252190Srpaulo# Creates the jar files (rt.jar resources.jar etc) 238252190Srpaulomain-jars: 239252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) PROFILE="" -f CreateJars.gmk) 240252190Srpaulo 241252190Srpaulo# Creates the images (j2sdk-image j2re-image etc) 242252190Srpauloimages: 243252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) PROFILE="" -f Images.gmk) 244252190Srpaulo ifeq ($(OPENJDK_TARGET_OS), macosx) 245252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk) 246252190Srpaulo endif 247252190Srpaulo 248252190Srpaulo# Create Compact Profile jars 249252190SrpauloPROFILE_JARS_TARGETS := $(addsuffix -jars, $(ALL_PROFILES)) 250252190Srpaulo$(PROFILE_JARS_TARGETS): 251252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) PROFILE=$(@:%-jars=%) -f CreateJars.gmk) 252252190Srpaulo 253252190Srpaulo# Create Compact Profile images 254252190SrpauloPROFILE_IMAGES_TARGETS := $(addsuffix -images, $(ALL_PROFILES)) 255252190Srpaulo$(PROFILE_IMAGES_TARGETS): 256252190Srpaulo +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) PROFILE=$(@:%-images=%) \ 257252190Srpaulo JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/j2re-$(word $(call profile_number,$(@:%-images=%)),$(PROFILE_NAMES))-image \ 258252190Srpaulo -f Images.gmk profile-image) 259252190Srpaulo 260252190Srpauloprofiles-oscheck: 261252190Srpaulo ifneq ($(OPENJDK_TARGET_OS), linux) 262252190Srpaulo @echo "Error: The Java SE 8 Compact Profiles are only implemented for Linux at this time" && exit 1 263252190Srpaulo endif 264252190Srpaulo 265252190Srpaulobootcycle-images: 266252190Srpaulo @$(ECHO) Boot cycle build step 2: Building a new JDK image using previously built image 267252190Srpaulo +$(MAKE) $(MAKE_ARGS) -f Main.gmk SPEC=$(dir $(SPEC))bootcycle-spec.gmk images 268252190Srpaulo 269252190SrpauloALL_TARGETS += source-tips security-jars nashorn-jar main-jars images \ 270252190Srpaulo $(PROFILE_JARS_TARGETS) $(PROFILE_IMAGES_TARGETS) profiles-oscheck \ 271252190Srpaulo bootcycle-images 272252190Srpaulo 273252190Srpaulo################################################################################ 274252190Srpaulo# Docs targets 275252190Srpaulo 276252190Srpaulodocs-javadoc: 277252190Srpaulo +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs) 278252190Srpaulo 279252190Srpaulodocs-jvmtidoc: 280252190Srpaulo +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk jvmtidocs) 281252190Srpaulo 282252190SrpauloALL_TARGETS += docs-javadoc docs-jvmtidoc 283252190Srpaulo 284252190Srpaulo################################################################################ 285252190Srpaulo# Test target 286252190Srpaulo 287252190Srpaulotest: 288252190Srpaulo ($(CD) $(SRC_ROOT)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \ 289252190Srpaulo JT_HOME=$(JT_HOME) PRODUCT_HOME=$(JDK_OUTPUT_DIR) \ 290252190Srpaulo ALT_OUTPUTDIR=$(OUTPUT_ROOT) CONCURRENCY=$(JOBS) $(TEST)) || true 291252190Srpaulo 292252190Srpaulotest-make: 293252190Srpaulo ($(CD) $(SRC_ROOT)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET)) 294252190Srpaulo 295252190SrpauloALL_TARGETS += test test-make 296252190Srpaulo 297252190Srpaulo################################################################################ 298252190Srpaulo# Verification targets 299252190Srpaulo 300252190Srpauloverify-modules: 301252190Srpaulo +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CheckModules.gmk) 302252190Srpaulo 303252190SrpauloALL_TARGETS += verify-modules 304252190Srpaulo 305252190Srpaulo################################################################################ 306252190Srpaulo# Install targets 307252190Srpaulo 308252190Srpauloinstall: 309252190Srpaulo +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk) 310252190Srpaulo 311252190SrpauloALL_TARGETS += install 312252190Srpaulo 313252190Srpaulo################################################################################ 314252190Srpaulo# 315252190Srpaulo# Dependency declarations between targets. 316252190Srpaulo# 317252190Srpaulo# These are declared in two groups. First all dependencies between targets that 318252190Srpaulo# have recipes above as these dependencies may be disabled. Then the aggregator 319252190Srpaulo# targets that do not have recipes of their own, which will never have their 320252190Srpaulo# dependencies disabled. 321252190Srpaulo# 322252190Srpaulo################################################################################ 323252190Srpaulo# Targets with recipes above 324252190Srpaulo 325252190Srpaulo# If running an *-only target, parallel execution and dependencies between 326252190Srpaulo# recipe targets are disabled. This makes it possible to run a select set of 327252190Srpaulo# recipe targets in order. It's the responsibility of the user to make sure 328252190Srpaulo# all prerequisites are fulfilled. 329252190Srpauloifneq ($(findstring -only, $(MAKECMDGOALS)), ) 330252190Srpaulo .NOTPARALLEL: 331252190Srpauloelse 332252190Srpaulo interim-langtools: $(LANGTOOLS_GENSRC_TARGETS) 333252190Srpaulo 334252190Srpaulo build-tools-jdk: interim-langtools 335252190Srpaulo 336252190Srpaulo $(CORBA_GENSRC_TARGETS): interim-langtools 337252190Srpaulo 338252190Srpaulo $(JDK_GENSRC_TARGETS): interim-langtools build-tools-jdk 339252190Srpaulo 340252190Srpaulo interim-corba: $(CORBA_GENSRC_TARGETS) 341252190Srpaulo 342252190Srpaulo $(GENDATA_TARGETS): interim-langtools build-tools-jdk 343252190Srpaulo 344252190Srpaulo interim-rmic: interim-langtools 345252190Srpaulo 346252190Srpaulo $(RMIC_TARGETS): interim-langtools interim-corba interim-rmic 347252190Srpaulo 348252190Srpaulo import-hotspot: hotspot 349252190Srpaulo 350252190Srpaulo $(LIB_TARGETS): import-hotspot 351252190Srpaulo 352252190Srpaulo $(LAUNCHER_TARGETS): java.base-libs 353252190Srpaulo 354252190Srpaulo # The demos are currently linking to libjvm and libjava, just like all other 355252190Srpaulo # jdk libs, even though they don't need to. To avoid warnings, make sure they 356252190Srpaulo # aren't built until after libjava and libjvm are available to link to. 357252190Srpaulo demos: $(JAVA_TARGETS) 358252190Srpaulo 359252190Srpaulo # Declare dependency from <module>-java to <module>-gensrc 360252190Srpaulo $(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc)) 361252190Srpaulo 362252190Srpaulo # Declare dependencies between java modules 363252190Srpaulo $(foreach m, $(JAVA_MODULES), \ 364252190Srpaulo $(eval $m-java: $(addsuffix -java, $(filter $(JAVA_MODULES), \ 365252190Srpaulo $(call FindDepsForModule,$m))))) 366252190Srpaulo 367252190Srpaulo # Declare dependencies between <module>-rmic to <module>-java 368252190Srpaulo $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java)) 369252190Srpaulo 370252190Srpaulo # Declare dependencies from <module>-lib to <module>-java 371252190Srpaulo # Skip jdk.jdwp.agent as it contains no java code. 372252190Srpaulo $(foreach m, $(filter-out jdk.jdwp.agent, $(LIB_MODULES)), $(eval $m-libs: $m-java)) 373252190Srpaulo 374252190Srpaulo # Declare dependencies from all other <module>-lib to java.base-lib 375252190Srpaulo $(foreach t, $(filter-out java.base-libs, $(LIB_TARGETS)), \ 376252190Srpaulo $(eval $t: java.base-libs)) 377252190Srpaulo # Declare the special case dependency for jdk.deploy.osx where libosx 378252190Srpaulo # links against libosxapp. 379252190Srpaulo jdk.deploy.osx-libs: java.desktop-libs 380252190Srpaulo 381252190Srpaulo # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a 382252190Srpaulo # header file used by jdk.jdwp libs. 383252190Srpaulo jdk.jdwp.agent-libs: jdk.jdi-gensrc 384252190Srpaulo 385252190Srpaulo # Explicitly add dependencies for special targets 386252190Srpaulo java.base-java: unpack-sec 387252190Srpaulo 388252190Srpaulo jdk.dev-gendata: java rmic 389252190Srpaulo 390252190Srpaulo security-jars: java 391252190Srpaulo 392252190Srpaulo nashorn-jar: jdk.scripting.nashorn-java 393252190Srpaulo 394252190Srpaulo main-jars: java rmic security-jars nashorn-jar policy-jars import-hotspot gendata 395252190Srpaulo 396252190Srpaulo # On windows, the jars target needs to wait for jgss libs to be built. 397252190Srpaulo # Should ideally split out the sec-bin zip file generation to avoid 398252190Srpaulo # this dependency. 399252190Srpaulo ifeq ($(OPENJDK_TARGET_OS), windows) 400252190Srpaulo main-jars: java.security.jgss-libs 401252190Srpaulo endif 402252190Srpaulo 403252190Srpaulo images: jars demos samples exploded-image source-tips 404252190Srpaulo 405252190Srpaulo bootcycle-images: images 406252190Srpaulo 407252190Srpaulo # Need to depend on jars as otherwise there will a race between all the 408252190Srpaulo # invocations of CreateJars.gmk. 409252190Srpaulo $(PROFILE_JARS_TARGETS): jars profiles-oscheck 410252190Srpaulo 411252190Srpaulo $(PROFILE_IMAGES_TARGETS): demos samples exploded-image source-tips 412252190Srpaulo 413252190Srpaulo # Declare dependencies from <profile>-images to <profile>-jars 414252190Srpaulo $(foreach p, $(ALL_PROFILES), $(eval $p-images: $p-jars)) 415252190Srpaulo 416252190Srpaulo docs-javadoc: $(GENSRC_TARGETS) rmic 417252190Srpaulo 418252190Srpaulo docs-jvmtidoc: hotspot 419252190Srpaulo 420252190Srpaulo test: exploded-image 421252190Srpaulo 422252190Srpaulo verify-modules: exploded-image 423252190Srpaulo 424252190Srpauloendif 425252190Srpaulo 426252190Srpaulo################################################################################ 427252190Srpaulo# Virtual targets without recipes 428252190Srpaulo 429252190Srpaulogensrc: $(GENSRC_TARGETS) 430252190Srpaulo 431252190Srpaulogendata: $(GENDATA_TARGETS) 432252190Srpaulo 433252190Srpaulocopy: $(COPY_TARGETS) 434252190Srpaulo 435252190Srpaulojava: $(JAVA_TARGETS) 436252190Srpaulo 437252190Srpaulormic: $(RMIC_TARGETS) 438252190Srpaulo 439252190Srpaulolibs: $(LIB_TARGETS) 440252190Srpaulo 441252190Srpaulolaunchers: $(LAUNCHER_TARGETS) 442252190Srpaulo 443252190Srpaulo# Explicitly add dependencies for these special targets 444252190Srpaulojava.base: import-hotspot policy-jars 445252190Srpaulo 446252190Srpaulo# Declare dependencies from <module> to all the individual targets specific 447252190Srpaulo# to that module <module>-*. 448252190Srpaulo$(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc)) 449252190Srpaulo$(foreach m, $(JAVA_MODULES), $(eval $m: $m-java)) 450252190Srpaulo$(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata)) 451252190Srpaulo$(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic)) 452252190Srpaulo$(foreach m, $(LIB_MODULES), $(eval $m: $m-libs)) 453252190Srpaulo$(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers)) 454252190Srpaulo$(foreach m, $(COPY_MODULES), $(eval $m: $m-copy)) 455252190Srpaulo 456252190SrpauloALL_MODULE_TARGETS := $(sort $(GENSRC_MODULES) $(JAVA_MODULES) \ 457252190Srpaulo $(GENDATA_MODULES) $(LIB_MODULES) $(LAUNCHER_MODULES) $(COPY_MODULES)) 458252190Srpaulo 459252190Srpauloexploded-image: $(ALL_MODULE_TARGETS) 460252190Srpaulo# The old 'jdk' target most closely matches the new exploded-image. Keep an 461252190Srpaulo# alias for ease of use. 462252190Srpaulojdk: exploded-image 463252190Srpaulo 464252190Srpaulojars: main-jars nashorn-jar security-jars policy-jars 465252190Srpaulo 466252190Srpaulo# Make each profile name a target that depends on it's images target. 467252190Srpaulo$(foreach p, $(ALL_PROFILES), $(eval $(p): $(p)-images $(p)-jars)) 468252190Srpaulo 469252190Srpauloprofiles: $(ALL_PROFILES) 470252190Srpaulo 471252190Srpaulodocs: docs-javadoc docs-jvmtidoc 472252190Srpaulo 473252190SrpauloALL_TARGETS += gensrc gendata copy java rmic libs launchers \ 474252190Srpaulo $(ALL_MODULE_TARGETS) exploded-image jdk jars \ 475252190Srpaulo $(ALL_PROFILES) profiles docs 476252190Srpaulo 477252190Srpaulo################################################################################ 478252190Srpaulo 479252190Srpauloall: images docs verify-modules 480252190Srpaulodefault: exploded-image 481252190Srpaulo 482252190SrpauloALL_TARGETS += default all 483252190Srpaulo 484252190Srpaulo################################################################################ 485252190Srpaulo################################################################################ 486252190Srpaulo# 487252190Srpaulo# Clean targets 488252190Srpaulo# 489252190Srpaulo################################################################################ 490252190Srpaulo# Clean targets are automatically run serially by the Makefile calling this 491252190Srpaulo# file. 492252190Srpaulo 493252190SrpauloCLEAN_COMPONENTS += langtools corba hotspot jdk nashorn images \ 494252190Srpaulo bootcycle-build docs docstemp test 495252190SrpauloCLEAN_TARGETS := $(addprefix clean-, $(CLEAN_COMPONENTS)) 496252190Srpaulo 497252190Srpaulo# Remove everything, except the output from configure. 498252190Srpauloclean: $(CLEAN_TARGETS) 499252190Srpaulo ($(CD) $(OUTPUT_ROOT) && $(RM) -r tmp source_tips build.log* build-trace*.log*) 500252190Srpaulo $(ECHO) Cleaned all build artifacts. 501252190Srpaulo 502252190Srpaulo$(CLEAN_TARGETS): 503252190Srpaulo $(call CleanComponent,$(patsubst clean-%, %, $@)) 504252190Srpaulo 505252190Srpauloclean-docs: clean-docstemp 506252190Srpaulo 507252190Srpaulo# Remove everything, including configure configuration. 508252190Srpaulo# If the output directory was created by configure and now becomes empty, remove it as well. 509252190Srpaulodist-clean: clean 510252190Srpaulo ($(CD) $(OUTPUT_ROOT) && $(RM) -r *spec.gmk config.* configure-arguments \ 511252190Srpaulo Makefile compare.sh spec.sh tmp javacservers) 512252190Srpaulo $(if $(filter $(CONF_NAME),$(notdir $(OUTPUT_ROOT))), \ 513252190Srpaulo if test "x`$(LS) $(OUTPUT_ROOT)`" != x; then \ 514252190Srpaulo $(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \ 515252190Srpaulo else \ 516252190Srpaulo ($(CD) $(SRC_ROOT) && $(ECHO) "Removing configuration directory for '$(CONF_NAME)'" \ 517252190Srpaulo && $(RM) -r $(OUTPUT_ROOT)) \ 518252190Srpaulo fi \ 519252190Srpaulo ) 520252190Srpaulo $(ECHO) Cleaned everything, you will have to re-run configure. 521252190Srpaulo 522252190SrpauloALL_TARGETS += clean dist-clean $(CLEAN_TARGETS) 523252190Srpaulo 524252190Srpaulo################################################################################ 525252190Srpaulo 526252190Srpaulo# Setup a rule for SPEC file that fails if executed. This check makes sure the 527252190Srpaulo# configuration is up to date after changes to configure. 528252190Srpauloifeq ($(findstring reconfigure, $(MAKECMDGOALS)), ) 529252190Srpaulo $(SPEC): $(wildcard $(SRC_ROOT)/common/autoconf/*) 530252190Srpaulo @$(ECHO) "ERROR: $(SPEC) is not up to date." 531252190Srpaulo @$(ECHO) "Please rerun configure! Easiest way to do this is by running" 532252190Srpaulo @$(ECHO) "'make reconfigure'." 533252190Srpaulo @$(ECHO) "It may also be ignored by setting IGNORE_OLD_CONFIG=true" 534252190Srpaulo @if test "x$(IGNORE_OLD_CONFIG)" != "xtrue"; then exit 1; fi 535252190Srpauloendif 536252190Srpaulo 537252190Srpaulo# The reconfigure target is automatically run serially from everything else 538252190Srpaulo# by the Makefile calling this file. 539252190Srpaulo 540252190Srpauloreconfigure: 541252190Srpaulo ifneq ($(CONFIGURE_COMMAND_LINE), ) 542252190Srpaulo @$(ECHO) "Re-running configure using arguments '$(CONFIGURE_COMMAND_LINE)'" 543252190Srpaulo else 544252190Srpaulo @$(ECHO) "Re-running configure using default settings" 545252190Srpaulo endif 546252190Srpaulo @( cd $(OUTPUT_ROOT) && $(BASH) $(TOPDIR)/configure $(CONFIGURE_COMMAND_LINE) ) 547252190Srpaulo 548252190SrpauloALL_TARGETS += reconfigure 549252190Srpaulo 550252190Srpaulo################################################################################ 551252190Srpaulo# Declare *-only targets for each normal target 552252190Srpaulo$(foreach t, $(ALL_TARGETS), $(eval $(t)-only: $(t))) 553252190Srpaulo 554252190SrpauloALL_TARGETS += $(addsuffix -only, $(ALL_TARGETS)) 555252190Srpaulo 556252190Srpaulo################################################################################ 557252190Srpaulo 558252190Srpaulo.PHONY: $(ALL_TARGETS) 559252190Srpaulo 560252190Srpauloinclude $(SRC_ROOT)/make/Jprt.gmk 561252190Srpaulo 562252190SrpauloFRC: # Force target 563252190Srpaulo