Main.gmk revision 1256:9bbdf9dff4eb
1204076Spjd# 2204076Spjd# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. 3219351Spjd# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4204076Spjd# 5204076Spjd# This code is free software; you can redistribute it and/or modify it 6204076Spjd# under the terms of the GNU General Public License version 2 only, as 7204076Spjd# published by the Free Software Foundation. Oracle designates this 8204076Spjd# particular file as subject to the "Classpath" exception as provided 9204076Spjd# by Oracle in the LICENSE file that accompanied this code. 10204076Spjd# 11204076Spjd# This code is distributed in the hope that it will be useful, but WITHOUT 12204076Spjd# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13204076Spjd# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14204076Spjd# version 2 for more details (a copy is included in the LICENSE file that 15204076Spjd# accompanied this code). 16204076Spjd# 17204076Spjd# You should have received a copy of the GNU General Public License version 18204076Spjd# 2 along with this work; if not, write to the Free Software Foundation, 19204076Spjd# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20204076Spjd# 21204076Spjd# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22204076Spjd# or visit www.oracle.com if you need additional information or have any 23204076Spjd# questions. 24204076Spjd# 25204076Spjd 26204076Spjd################################################################################ 27204076Spjd# This is the main makefile containing most actual top level targets. It needs 28204076Spjd# to be called with a SPEC file defined. 29204076Spjd 30204076Spjd# Declare default target 31204076Spjddefault: 32204076Spjd 33204076Spjd# Now load the spec 34204076Spjdinclude $(SPEC) 35204076Spjd 36204076Spjdinclude $(SRC_ROOT)/make/MakeHelpers.gmk 37218044Spjd 38204076Spjd# Load the vital tools for all the makefiles. 39204076Spjdinclude $(SRC_ROOT)/make/common/MakeBase.gmk 40204076Spjdinclude $(SRC_ROOT)/make/common/Modules.gmk 41204076Spjd 42204076Spjd# Declare ALL_TARGETS as an immediate variable. This variable is a list of all 43204076Spjd# valid top level targets. It's used to declare them all as PHONY and to 44204076Spjd# generate the -only targets. 45204076SpjdALL_TARGETS := 46204076Spjd 47204076Spjd# Hook to include the corresponding custom file, if present. 48204076Spjd$(eval $(call IncludeCustomExtension, , Main.gmk)) 49219813Spjd 50204076Spjd# All modules for the current target platform. 51204076Spjd# Manually add jdk.hotspot.agent for now. 52204076SpjdALL_MODULES := $(call FindAllModules) jdk.hotspot.agent 53204076Spjd 54204076Spjd################################################################################ 55204076Spjd################################################################################ 56212038Spjd# 57204076Spjd# Recipes for all targets. Only recipes, dependencies are declared later. 58204076Spjd# 59204076Spjd################################################################################ 60211977Spjd 61204076Spjd################################################################################ 62204076Spjd# Interim/build tools targets, compiling tools used during the build 63204076Spjd 64210886Spjdbuildtools-langtools: 65204076Spjd +($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk) 66204076Spjd 67204076Spjdinterim-langtools: 68204076Spjd +($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk) 69234294Strociny 70234294Strocinyinterim-corba: 71249236Strociny +($(CD) $(CORBA_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk) 72204076Spjd 73231017Strocinyinterim-rmic: 74231017Strociny +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk) 75204076Spjd 76211977Spjdbuildtools-jdk: 77213430Spjd +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk java-tools) 78211977Spjd 79204076SpjdALL_TARGETS += buildtools-langtools interim-langtools interim-corba \ 80204076Spjd interim-rmic buildtools-jdk 81204076Spjd 82204076Spjd################################################################################ 83204076Spjd# Special targets for certain modules 84204076Spjd 85204076Spjdimport-hotspot: 86204076Spjd +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Import.gmk) 87204076Spjd 88204076Spjdunpack-sec: 89204076Spjd +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UnpackSecurity.gmk) 90204076Spjd 91204076SpjdALL_TARGETS += import-hotspot unpack-sec 92204076Spjd 93204076Spjd################################################################################ 94204076Spjd# Gensrc targets, generating source before java compilation can be done 95204076Spjd$(eval $(call DeclareRecipesForPhase, GENSRC, \ 96204076Spjd TARGET_SUFFIX := gensrc, \ 97204076Spjd FILE_PREFIX := Gensrc, \ 98204076Spjd MAKE_SUBDIR := gensrc, \ 99204076Spjd CHECK_MODULES := $(ALL_MODULES), \ 100204076Spjd MULTIPLE_MAKEFILES := true)) 101218041Spjd 102218041SpjdJDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS)) 103218041SpjdLANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS)) 104231017StrocinyCORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS)) 105222108Spjd 106218041SpjdALL_TARGETS += $(GENSRC_TARGETS) 107231017Strociny 108218041Spjd################################################################################ 109218041Spjd# Generate data targets 110218041Spjd$(eval $(call DeclareRecipesForPhase, GENDATA, \ 111218041Spjd TARGET_SUFFIX := gendata, \ 112218041Spjd FILE_PREFIX := Gendata, \ 113218041Spjd MAKE_SUBDIR := gendata, \ 114218041Spjd CHECK_MODULES := $(ALL_MODULES), \ 115218041Spjd USE_WRAPPER := true)) 116218041Spjd 117218041SpjdALL_TARGETS += $(GENDATA_TARGETS) 118218370Spjd 119218370Spjd################################################################################ 120218370Spjd# Copy files targets 121218370Spjd$(eval $(call DeclareRecipesForPhase, COPY, \ 122218370Spjd TARGET_SUFFIX := copy, \ 123218370Spjd FILE_PREFIX := Copy, \ 124231017Strociny MAKE_SUBDIR := copy, \ 125231017Strociny CHECK_MODULES := $(ALL_MODULES), \ 126218041Spjd USE_WRAPPER := true)) 127218041Spjd 128218041SpjdALL_TARGETS += $(COPY_TARGETS) 129218041Spjd 130231017Strociny################################################################################ 131231017Strociny# Targets for compiling all java modules. Nashorn is treated separately. 132222108SpjdJAVA_MODULES := $(call FindJavaModules) 133222108SpjdJAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES)) 134231017Strociny 135222108Spjddefine DeclareCompileJavaRecipe 136218041Spjd $1-java: 137218041Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CompileJavaModules.gmk \ 138218041Spjd $1 JAVA_MODULES=$1) 139218041Spjdendef 140218041Spjd 141218044Spjd$(foreach m, $(filter-out jdk.scripting.nashorn, $(JAVA_MODULES)), \ 142218044Spjd $(eval $(call DeclareCompileJavaRecipe,$m))) 143218044Spjd 144218044Spjd# Build nashorn. Needs to be compiled separately from the rest of the modules 145218044Spjd# due to nasgen. 146218044Spjdjdk.scripting.nashorn-java: 147219864Spjd +($(CD) $(NASHORN_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildNashorn.gmk compile) 148218044Spjd 149219864SpjdALL_TARGETS += $(JAVA_TARGETS) 150218044Spjd 151218044Spjd################################################################################ 152218044Spjd# Targets for running rmic. 153219864Spjd$(eval $(call DeclareRecipesForPhase, RMIC, \ 154218044Spjd TARGET_SUFFIX := rmic, \ 155219864Spjd FILE_PREFIX := Rmic, \ 156218044Spjd MAKE_SUBDIR := rmic, \ 157218044Spjd CHECK_MODULES := $(ALL_MODULES))) 158218044Spjd 159219864SpjdALL_TARGETS += $(RMIC_TARGETS) 160218044Spjd 161218044Spjd################################################################################ 162218044Spjd# Targets for compiling native libraries 163218044Spjd$(eval $(call DeclareRecipesForPhase, LIBS, \ 164218044Spjd TARGET_SUFFIX := libs, \ 165218044Spjd FILE_PREFIX := Lib, \ 166218044Spjd MAKE_SUBDIR := lib, \ 167218044Spjd CHECK_MODULES := $(ALL_MODULES), \ 168218044Spjd USE_WRAPPER := true)) 169218044Spjd 170218044SpjdALL_TARGETS += $(LIBS_TARGETS) 171218044Spjd 172218044Spjd################################################################################ 173218044Spjd# Targets for compiling native executables 174218044Spjd$(eval $(call DeclareRecipesForPhase, LAUNCHER, \ 175218044Spjd TARGET_SUFFIX := launchers, \ 176218044Spjd FILE_PREFIX := Launcher, \ 177218044Spjd MAKE_SUBDIR := launcher, \ 178218044Spjd CHECK_MODULES := $(ALL_MODULES), \ 179218044Spjd USE_WRAPPER := true)) 180218044Spjd 181218044SpjdALL_TARGETS += $(LAUNCHER_TARGETS) 182218044Spjd 183231017Strociny################################################################################ 184218373Spjd# Build hotspot target 185218373Spjd 186218373Spjdifeq ($(BUILD_HOTSPOT),true) 187218044Spjd hotspot: 188218373Spjd ($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk) 189218044Spjdendif 190218044Spjd 191218044SpjdALL_TARGETS += hotspot 192218044Spjd 193218044Spjd################################################################################ 194218044Spjd# Build demos and samples targets 195218044Spjd 196218044Spjddemos: 197218044Spjd +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk) 198218044Spjd 199218375Spjdsamples: 200218044Spjd +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopySamples.gmk) 201218044Spjd 202218374SpjdALL_TARGETS += demos samples 203218044Spjd 204218044Spjd################################################################################ 205218044Spjd# Image targets 206218044Spjd 207218375Spjd# Stores the tips for each repository. This file is be used when constructing the jdk image and can be 208218044Spjd# used to track the exact sources used to build that image. 209218044Spjdsource-tips: $(SUPPORT_OUTPUTDIR)/source_tips 210218044Spjd$(SUPPORT_OUTPUTDIR)/source_tips: FRC 211218044Spjd @$(MKDIR) -p $(@D) 212218044Spjd @$(RM) $@ 213218044Spjd @$(call GetSourceTips) 214218044Spjd 215218375SpjdBOOTCYCLE_TARGET := images 216218044Spjdbootcycle-images: 217218044Spjd @$(ECHO) Boot cycle build step 2: Building a new JDK image using previously built image 218218044Spjd +$(MAKE) $(MAKE_ARGS) -f Main.gmk SPEC=$(dir $(SPEC))bootcycle-spec.gmk $(BOOTCYCLE_TARGET) 219218044Spjd 220218044Spjdzip-security: 221218375Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSecurity.gmk) 222218044Spjd 223218044Spjdzip-source: 224218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSource.gmk) 225218044Spjd 226218044Spjdstrip-binaries: 227218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f StripBinaries.gmk) 228218375Spjd 229218044Spjdjrtfs-jar: 230218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f JrtfsJar.gmk) 231218044Spjd 232218044Spjdjimages: 233218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jimages) 234218375Spjd 235218044Spjdprofiles: 236218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk profiles) 237218044Spjd 238218044Spjdmac-bundles: 239219900Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk) 240219900Spjd 241218218SpjdALL_TARGETS += source-tips bootcycle-images zip-security zip-source strip-binaries \ 242218375Spjd jrtfs-jar jimages profiles mac-bundles 243218218Spjd 244218218Spjd################################################################################ 245218218Spjd# Docs targets 246218218Spjd 247218218Spjddocs-javadoc: 248218375Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs) 249218218Spjd 250218218Spjddocs-jvmtidoc: 251218218Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk jvmtidocs) 252218218Spjd 253218044SpjdALL_TARGETS += docs-javadoc docs-jvmtidoc 254219900Spjd 255219900Spjd################################################################################ 256219900Spjd# Test target 257219900Spjd 258219900Spjdtest: 259219900Spjd ($(CD) $(SRC_ROOT)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \ 260219900Spjd JT_HOME=$(JT_HOME) PRODUCT_HOME=$(JDK_OUTPUTDIR) \ 261219900Spjd ALT_OUTPUTDIR=$(OUTPUT_ROOT) CONCURRENCY=$(JOBS) $(TEST)) || true 262219900Spjd 263218044Spjdtest-make: 264218044Spjd ($(CD) $(SRC_ROOT)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET)) 265218375Spjd 266218044SpjdALL_TARGETS += test test-make 267218044Spjd 268218044Spjd################################################################################ 269218044Spjd# Verification targets 270218044Spjd 271218375Spjdverify-modules: 272218044Spjd @$(call TargetEnter) 273218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CheckModules.gmk) 274218044Spjd @$(call TargetExit) 275218044Spjd 276218044SpjdALL_TARGETS += verify-modules 277218044Spjd 278218044Spjd################################################################################ 279218375Spjd# Install targets 280218044Spjd 281218044Spjdinstall: 282218044Spjd +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk) 283218044Spjd 284218044SpjdALL_TARGETS += install 285218375Spjd 286218044Spjd################################################################################ 287218044Spjd# 288218044Spjd# Dependency declarations between targets. 289218044Spjd# 290218044Spjd# These are declared in two groups. First all dependencies between targets that 291218044Spjd# have recipes above as these dependencies may be disabled. Then the aggregator 292218375Spjd# targets that do not have recipes of their own, which will never have their 293218044Spjd# dependencies disabled. 294218044Spjd# 295218044Spjd################################################################################ 296218044Spjd# Targets with recipes above 297218044Spjd 298218044Spjd# If running an *-only target, parallel execution and dependencies between 299218044Spjd# recipe targets are disabled. This makes it possible to run a select set of 300218044Spjd# recipe targets in order. It's the responsibility of the user to make sure 301218044Spjd# all prerequisites are fulfilled. 302218044Spjdifneq ($(findstring -only, $(MAKECMDGOALS)), ) 303218044Spjd .NOTPARALLEL: 304218044Spjdelse 305218044Spjd $(LANGTOOLS_GENSRC_TARGETS): buildtools-langtools 306218044Spjd 307204076Spjd interim-langtools: $(LANGTOOLS_GENSRC_TARGETS) 308207372Spjd 309207372Spjd buildtools-jdk: interim-langtools 310207372Spjd 311207372Spjd $(CORBA_GENSRC_TARGETS): interim-langtools 312207372Spjd 313207372Spjd $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk 314207372Spjd 315207372Spjd interim-corba: $(CORBA_GENSRC_TARGETS) 316207372Spjd 317207372Spjd $(GENDATA_TARGETS): interim-langtools buildtools-jdk 318207372Spjd 319207372Spjd interim-rmic: interim-langtools 320207372Spjd 321207372Spjd $(RMIC_TARGETS): interim-langtools interim-corba interim-rmic 322207372Spjd 323207372Spjd import-hotspot: hotspot 324204076Spjd 325204076Spjd $(LIBS_TARGETS): import-hotspot 326204076Spjd 327204076Spjd $(LAUNCHER_TARGETS): java.base-libs 328204076Spjd 329204076Spjd # The demos are currently linking to libjvm and libjava, just like all other 330204076Spjd # jdk libs, even though they don't need to. To avoid warnings, make sure they 331204076Spjd # aren't built until after libjava and libjvm are available to link to. 332204076Spjd demos: $(JAVA_TARGETS) 333204076Spjd 334204076Spjd # Declare dependency from <module>-java to <module>-gensrc 335204076Spjd $(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc)) 336204076Spjd 337204076Spjd # Declare dependencies between java modules 338204076Spjd $(foreach m, $(JAVA_MODULES), \ 339211977Spjd $(eval $m-java: $(addsuffix -java, $(filter $(JAVA_MODULES), \ 340211977Spjd $(call FindDepsForModule,$m))))) 341204076Spjd 342211977Spjd # Declare dependencies between <module>-rmic to <module>-java 343204076Spjd $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java)) 344204076Spjd 345204076Spjd # Declare dependencies from <module>-lib to <module>-java 346204076Spjd # Skip jdk.jdwp.agent as it contains no java code. 347207372Spjd $(foreach m, $(filter-out jdk.jdwp.agent, $(LIBS_MODULES)), $(eval $m-libs: $m-java)) 348213006Spjd 349204076Spjd # Declare dependencies from all other <module>-lib to java.base-lib 350207372Spjd $(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \ 351207372Spjd $(eval $t: java.base-libs)) 352207372Spjd # Declare the special case dependency for jdk.deploy.osx where libosx 353207372Spjd # links against libosxapp. 354207372Spjd jdk.deploy.osx-libs: java.desktop-libs 355207372Spjd 356207372Spjd # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a 357207348Spjd # header file used by jdk.jdwp.agent-libs. The jdk.jdwp.agent-gensrc is a 358207348Spjd # virtual target. 359207348Spjd jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc 360207348Spjd 361207348Spjd # Until the module system is in place, jdk.jdi-gensrc needs to combine service 362207348Spjd # loader configuration with jdk.hotspot.agent so is dependent on importing 363207348Spjd # hotspot. 364207348Spjd jdk.jdi-gensrc-jdk: import-hotspot 365204076Spjd 366204076Spjd # The swing beans need to have java base properly generated to avoid errors 367204076Spjd # in javadoc. 368204076Spjd java.desktop-gensrc-jdk: java.base-gensrc 369204076Spjd 370210886Spjd # Explicitly add dependencies for special targets 371210886Spjd java.base-java: unpack-sec 372210886Spjd 373210886Spjd jdk.dev-gendata: java rmic 374210886Spjd 375218138Spjd zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \ 376210886Spjd $(filter jdk.crypto%, $(JAVA_TARGETS)) 377210886Spjd 378210886Spjd zip-source: gensrc rmic 379210886Spjd 380210886Spjd strip-binaries: libs launchers gendata copy 381210886Spjd 382210886Spjd jrtfs-jar: buildtools-jdk 383210886Spjd 384210886Spjd jimages: exploded-image zip-source strip-binaries source-tips demos samples \ 385219818Spjd jrtfs-jar 386219818Spjd 387210886Spjd profiles: exploded-image strip-binaries source-tips 388210886Spjd 389219351Spjd mac-bundles: jimages 390219351Spjd 391219354Spjd bootcycle-images: jimages 392219354Spjd 393210886Spjd docs-javadoc: gensrc rmic 394210886Spjd 395211886Spjd docs-jvmtidoc: hotspot 396211886Spjd 397229509Strociny test: exploded-image 398229509Strociny 399229509Strociny verify-modules: exploded-image 400229509Strociny 401229509Strocinyendif 402229509Strociny 403210886Spjd################################################################################ 404210886Spjd# Virtual targets without recipes 405210886Spjd 406210886Spjdbuildtools: buildtools-langtools interim-langtools interim-corba interim-rmic \ 407210886Spjd buildtools-jdk 408210886Spjd 409210886Spjdgensrc: $(GENSRC_TARGETS) 410210886Spjd 411210886Spjdgendata: $(GENDATA_TARGETS) 412218138Spjd 413218138Spjdcopy: $(COPY_TARGETS) 414218138Spjd 415210886Spjdjava: $(JAVA_TARGETS) 416210886Spjd 417210886Spjdrmic: $(RMIC_TARGETS) 418210886Spjd 419210886Spjdlibs: $(LIBS_TARGETS) 420210886Spjd 421219818Spjdlaunchers: $(LAUNCHER_TARGETS) 422219818Spjd 423210886Spjd# Explicitly declare dependency for virtual target jdk.jdwp.agent-gensrc which 424210886Spjd# is actually handled by jdk.jdi-gensrc 425219351Spjdjdk.jdwp.agent-gensrc: jdk.jdi-gensrc 426219351Spjd 427219354Spjd# Declare dependencies from <module> to all the individual targets specific 428219354Spjd# to that module <module>-*. 429210886Spjd$(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc)) 430210886Spjd$(foreach m, $(JAVA_MODULES), $(eval $m: $m-java)) 431211886Spjd$(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata)) 432211886Spjd$(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic)) 433229509Strociny$(foreach m, $(LIBS_MODULES), $(eval $m: $m-libs)) 434229509Strociny$(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers)) 435210886Spjd$(foreach m, $(COPY_MODULES), $(eval $m: $m-copy)) 436210886Spjd 437210886SpjdALL_MODULE_TARGETS := $(sort $(GENSRC_MODULES) $(JAVA_MODULES) \ 438204076Spjd $(GENDATA_MODULES) $(LIBS_MODULES) $(LAUNCHER_MODULES) $(COPY_MODULES)) 439217784Spjd 440217784Spjdexploded-image: $(ALL_MODULE_TARGETS) 441217784Spjd# The old 'jdk' target most closely matches the new exploded-image. Keep an 442217784Spjd# alias for ease of use. 443217784Spjdjdk: exploded-image 444218138Spjd 445217784Spjdimages: jimages demos samples zip-security verify-modules 446217784Spjd 447221076Strocinyifeq ($(OPENJDK_TARGET_OS), macosx) 448217784Spjd images: mac-bundles 449219818Spjdendif 450217784Spjd 451219351Spjddocs: docs-javadoc docs-jvmtidoc 452219354Spjd 453217784SpjdALL_TARGETS += buildtools gensrc gendata copy java rmic libs launchers \ 454217784Spjd jdk.jdwp.agent-gensrc $(ALL_MODULE_TARGETS) exploded-image jdk images \ 455229509Strociny docs 456217784Spjd 457217784Spjd################################################################################ 458217784Spjd 459217784Spjdall: images 460217784Spjddefault: exploded-image 461231017Strociny 462217784SpjdALL_TARGETS += default all 463217784Spjd 464217784Spjd################################################################################ 465217784Spjd################################################################################ 466217784Spjd# 467217784Spjd# Clean targets 468217784Spjd# 469231017Strociny################################################################################ 470217784Spjd# Clean targets are automatically run serially by the Makefile calling this 471217784Spjd# file. 472217784Spjd 473217784SpjdCLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \ 474217784Spjd images make-support 475217784SpjdCLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS)) 476217784SpjdCLEAN_PHASES := gensrc java native include 477217784SpjdCLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES)) 478217784SpjdCLEAN_MODULE_TARGETS := $(addprefix clean-, $(ALL_MODULES)) 479217784Spjd# Construct targets of the form clean-$module-$phase 480217784SpjdCLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \ 481217784Spjd $(addprefix $m-, $(CLEAN_PHASES)))) 482204076Spjd 483204076Spjd# Remove everything, except the output from configure. 484210886Spjdclean: $(CLEAN_DIR_TARGETS) 485210886Spjd ($(CD) $(OUTPUT_ROOT) && $(RM) -r source_tips build.log* build-trace*.log*) 486222108Spjd $(ECHO) Cleaned all build artifacts. 487229509Strociny 488222108Spjd$(CLEAN_DIR_TARGETS): 489210886Spjd $(call CleanDir,$(patsubst clean-%, %, $@)) 490229509Strociny 491204076Spjd$(CLEAN_PHASE_TARGETS): 492210886Spjd $(call Clean-$(patsubst clean-%,%, $@)) 493210886Spjd 494229509Strociny$(CLEAN_MODULE_TARGETS): 495229509Strociny $(call CleanModule,$(patsubst clean-%, %, $@)) 496210886Spjd 497210886Spjd$(CLEAN_MODULE_PHASE_TARGETS): 498210886Spjd $(call Clean-$(word 3, $(subst -,$(SPACE),$@)), \ 499210886Spjd $(word 2, $(subst -,$(SPACE),$@))) 500210886Spjd 501210886Spjd# When removing the support dir, we must also remove jdk. Building classes has 502210886Spjd# the side effect of generating native headers. The headers end up in support 503210886Spjd# while classes and touch files end up in jdk. 504210886Spjdclean-support: clean-jdk 505231017Strociny 506210886Spjdclean-docs: clean-docstemp 507210886Spjd 508210886Spjd# Remove everything, including configure configuration. 509210886Spjd# If the output directory was created by configure and now becomes empty, remove it as well. 510210886Spjddist-clean: clean 511210886Spjd ($(CD) $(OUTPUT_ROOT) && $(RM) -r *spec.gmk config.* configure-arguments \ 512210886Spjd Makefile compare.sh tmp javacservers) 513222108Spjd $(if $(filter $(CONF_NAME),$(notdir $(OUTPUT_ROOT))), \ 514210886Spjd if test "x`$(LS) $(OUTPUT_ROOT)`" != x; then \ 515222108Spjd $(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \ 516222108Spjd else \ 517222108Spjd ($(CD) $(SRC_ROOT) && $(ECHO) "Removing configuration directory for '$(CONF_NAME)'" \ 518222108Spjd && $(RM) -r $(OUTPUT_ROOT)) \ 519222108Spjd fi \ 520210886Spjd ) 521222108Spjd $(ECHO) Cleaned everything, you will have to re-run configure. 522222108Spjd 523222108SpjdALL_TARGETS += clean dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_PHASE_TARGETS) \ 524222108Spjd $(CLEAN_MODULE_TARGETS) $(CLEAN_MODULE_PHASE_TARGETS) 525222108Spjd 526222108Spjd################################################################################ 527222108Spjd 528222108Spjd# Setup a rule for SPEC file that fails if executed. This check makes sure the 529222108Spjd# configuration is up to date after changes to configure. 530222108Spjdifeq ($(findstring reconfigure, $(MAKECMDGOALS)), ) 531222108Spjd $(SPEC): $(wildcard $(SRC_ROOT)/common/autoconf/*) 532222108Spjd @$(ECHO) "ERROR: $(SPEC) is not up to date." 533222108Spjd @$(ECHO) "Please rerun configure! Easiest way to do this is by running" 534210886Spjd @$(ECHO) "'make reconfigure'." 535222108Spjd @$(ECHO) "It may also be ignored by setting IGNORE_OLD_CONFIG=true" 536222108Spjd @if test "x$(IGNORE_OLD_CONFIG)" != "xtrue"; then exit 1; fi 537222108Spjdendif 538222108Spjd 539229509Strociny# The reconfigure target is automatically run serially from everything else 540229509Strociny# by the Makefile calling this file. 541229509Strociny 542234294Strocinyreconfigure: 543234294Strociny ifneq ($(CONFIGURE_COMMAND_LINE), ) 544229509Strociny @$(ECHO) "Re-running configure using arguments '$(CONFIGURE_COMMAND_LINE)'" 545229509Strociny else 546229509Strociny @$(ECHO) "Re-running configure using default settings" 547229509Strociny endif 548229509Strociny @( cd $(OUTPUT_ROOT) && $(BASH) $(TOPDIR)/configure $(CONFIGURE_COMMAND_LINE) ) 549229509Strociny 550229509StrocinyALL_TARGETS += reconfigure 551229509Strociny 552229509Strociny################################################################################ 553229509Strociny# Declare *-only targets for each normal target 554229509Strociny$(foreach t, $(ALL_TARGETS), $(eval $(t)-only: $(t))) 555231017Strociny 556229509StrocinyALL_TARGETS += $(addsuffix -only, $(filter-out clean%, $(ALL_TARGETS))) 557229509Strociny 558229509Strociny################################################################################ 559229509Strociny 560229509Strociny.PHONY: $(ALL_TARGETS) 561229509Strociny 562229509Strocinyinclude $(SRC_ROOT)/make/Jprt.gmk 563229509Strociny 564229509StrocinyFRC: # Force target 565222108Spjd