From d9706a03a28820018ffebb83f10256a75880b155 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Tue, 17 Dec 2013 11:09:26 +0100 Subject: [PATCH] 8029797: Let jprt run configure when building Reviewed-by: tbell --- Makefile | 6 +- make/Jprt.gmk | 170 +------------------------------------------ make/Main.gmk | 2 + make/MakeHelpers.gmk | 2 +- make/jprt.properties | 20 +++++ 5 files changed, 26 insertions(+), 174 deletions(-) diff --git a/Makefile b/Makefile index cd5f66b50cc..7fe922ba458 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ else # First, find out the valid targets # Run the makefile with an arbitrary SPEC using -p -q (quiet dry-run and dump rules) to find # available PHONY targets. Use this list as valid targets to pass on to the repeated calls. - all_phony_targets=$(filter-out $(global_targets) bundles bundles-only final-images-only, $(strip $(shell \ + all_phony_targets=$(filter-out $(global_targets), $(strip $(shell \ cd $(root_dir) && $(MAKE) -p -q FRC SPEC=$(firstword $(SPEC)) | \ grep ^.PHONY: | head -n 1 | cut -d " " -f 2-))) @@ -79,10 +79,6 @@ else endif endif -# Include this after a potential spec file has been included so that the bundles target -# has access to the spec variables. -include $(root_dir)/make/Jprt.gmk - # Here are "global" targets, i.e. targets that can be executed without specifying a single configuration. # If you addd more global targets, please update the variable global_targets in MakeHelpers. diff --git a/make/Jprt.gmk b/make/Jprt.gmk index 0075adce522..75ee37da374 100644 --- a/make/Jprt.gmk +++ b/make/Jprt.gmk @@ -23,148 +23,7 @@ # questions. # -# This file is included by the root NewerMakefile and contains targets -# and utilities needed by JPRT. - -# Utilities used in this Makefile. Most of this makefile executes without -# the context of a spec file from configure. -CAT=cat -CMP=cmp -CP=cp -ECHO=echo -MKDIR=mkdir -PRINTF=printf -PWD=pwd -# Insure we have a path that looks like it came from pwd -# (This is mostly for Windows sake and drive letters) -define UnixPath # path -$(shell (cd "$1" && $(PWD))) -endef - -BUILD_DIR_ROOT:=$(root_dir)/build - -ifdef OPENJDK - OPEN_BUILD=true -else - OPEN_BUILD := $(if $(or $(wildcard $(root_dir)/jdk/src/closed), \ - $(wildcard $(root_dir)/jdk/make/closed), \ - $(wildcard $(root_dir)/jdk/test/closed), \ - $(wildcard $(root_dir)/hotspot/src/closed), \ - $(wildcard $(root_dir)/hotspot/make/closed), \ - $(wildcard $(root_dir)/hotspot/test/closed)), \ - false,true) -endif - -HOTSPOT_AVAILABLE := $(if $(wildcard $(root_dir)/hotspot),true,false) - -########################################################################### -# To help in adoption of the new configure&&make build process, a bridge -# build will use the old settings to run configure and do the build. - -# Build with the configure bridge. After running configure, restart make -# to parse the new spec file. -BRIDGE_TARGETS := all -# Add bootcycle-images target if legacy variable is set. -ifeq ($(SKIP_BOOT_CYCLE),false) - BRIDGE_TARGETS += bootcycle-images -endif -bridgeBuild: bridge2configure - @cd $(root_dir) && $(MAKE) -f Makefile $(BRIDGE_TARGETS) - -# Bridge from old Makefile ALT settings to configure options -bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts - bash ./configure $(strip $(shell $(CAT) $<)) - -# Create a file with configure options created from old Makefile mechanisms. -$(BUILD_DIR_ROOT)/.bridge2configureOpts: $(BUILD_DIR_ROOT)/.bridge2configureOptsLatest - $(RM) $@ - $(CP) $< $@ - -# Use this file to only change when obvious things have changed -$(BUILD_DIR_ROOT)/.bridge2configureOptsLatest: FRC - $(RM) $@.tmp - $(MKDIR) -p $(BUILD_DIR_ROOT) - @$(ECHO) " --with-debug-level=$(if $(DEBUG_LEVEL),$(DEBUG_LEVEL),release) " >> $@.tmp - ifdef ARCH_DATA_MODEL - @$(ECHO) " --with-target-bits=$(ARCH_DATA_MODEL) " >> $@.tmp - endif - ifeq ($(ARCH_DATA_MODEL),32) - @$(ECHO) " --with-jvm-variants=client,server " >> $@.tmp - endif - ifdef ALT_PARALLEL_COMPILE_JOBS - @$(ECHO) " --with-num-cores=$(ALT_PARALLEL_COMPILE_JOBS) " >> $@.tmp - endif - ifdef ALT_BOOTDIR - @$(ECHO) " --with-boot-jdk=$(call UnixPath,$(ALT_BOOTDIR)) " >> $@.tmp - endif - ifdef ALT_CUPS_HEADERS_PATH - @$(ECHO) " --with-cups-include=$(call UnixPath,$(ALT_CUPS_HEADERS_PATH)) " >> $@.tmp - endif - ifdef ALT_FREETYPE_HEADERS_PATH - @$(ECHO) " --with-freetype=$(call UnixPath,$(ALT_FREETYPE_HEADERS_PATH)/..) " >> $@.tmp - endif - ifdef ENABLE_SJAVAC - @$(ECHO) " --enable-sjavac" >> $@.tmp - endif - ifeq ($(HOTSPOT_AVAILABLE),false) - ifdef ALT_JDK_IMPORT_PATH - @$(ECHO) " --with-import-hotspot=$(call UnixPath,$(ALT_JDK_IMPORT_PATH)) " >> $@.tmp - endif - endif - ifeq ($(OPEN_BUILD),true) - @$(ECHO) " --enable-openjdk-only " >> $@.tmp - else -# Todo: move to closed? - ifdef ALT_MOZILLA_HEADERS_PATH - @$(ECHO) " --with-mozilla-headers=$(call UnixPath,$(ALT_MOZILLA_HEADERS_PATH)) " >> $@.tmp - endif - ifdef ALT_JUNIT_DIR - @$(ECHO) " --with-junit-dir=$(call UnixPath,$(ALT_JUNIT_DIR)) " >> $@.tmp - endif - ifdef ANT_HOME - @$(ECHO) " --with-ant-home=$(call UnixPath,$(ANT_HOME)) " >> $@.tmp - endif - ifdef ALT_JAVAFX_ZIP_DIR - @$(ECHO) " --with-javafx-zip-dir=$(call UnixPath,$(ALT_JAVAFX_ZIP_DIR)) " >> $@.tmp - endif - ifdef ALT_JMC_ZIP_DIR - @$(ECHO) " --with-jmc-zip-dir=$(call UnixPath,$(ALT_JMC_ZIP_DIR)) " >> $@.tmp - endif - ifdef ALT_WIXDIR - @$(ECHO) " --with-wix=$(call UnixPath,$(ALT_WIXDIR)) " >> $@.tmp - endif - ifdef ALT_INSTALL_LZMA_PATH - @$(ECHO) " --with-lzma-path=$(call UnixPath,$(ALT_INSTALL_LZMA_PATH)) " >> $@.tmp - endif - ifdef ALT_INSTALL_UPX_PATH - @$(ECHO) " --with-upx-path=$(call UnixPath,$(ALT_INSTALL_UPX_PATH)) " >> $@.tmp - endif - ifdef ALT_INSTALL_UPX_FILENAME - @$(ECHO) " --with-upx-filename=$(call UnixPath,$(ALT_INSTALL_UPX_FILENAME)) " >> $@.tmp - endif - ifdef ALT_CCSS_SIGNING_DIR - @$(ECHO) " --with-ccss-signing=$(call UnixPath,$(ALT_CCSS_SIGNING_DIR)) " >> $@.tmp - endif - ifdef ALT_SLASH_JAVA - @$(ECHO) " --with-java-devtools=$(call UnixPath,$(ALT_SLASH_JAVA)/devtools) " >> $@.tmp - endif - ifdef ALT_SPARKLE_FRAMEWORK_DIR - @$(ECHO) " --with-sparkle-framework=$(call UnixPath,$(ALT_SPARKLE_FRAMEWORK_DIR)) " >> $@.tmp - endif - endif - @if [ -f $@ ] ; then \ - if ! $(CMP) $@ $@.tmp > /dev/null ; then \ - $(CP) $@.tmp $@ ; \ - fi ; \ - else \ - $(CP) $@.tmp $@ ; \ - fi - $(RM) $@.tmp - -PHONY_LIST += bridge2configure bridgeBuild - -########################################################################### -# JPRT targets +# This file is contains targets utilities needed by JPRT. ifndef JPRT_ARCHIVE_BUNDLE JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/j2sdk-image.zip @@ -173,23 +32,6 @@ ifndef JPRT_ARCHIVE_INSTALL_BUNDLE JPRT_ARCHIVE_INSTALL_BUNDLE=/tmp/jprt_bundles/product-install.zip endif -# These targets execute in a SPEC free context, before calling bridgeBuild -# to generate the SPEC. -jprt_build_product: DEBUG_LEVEL=release -jprt_build_product: BUILD_DIRNAME=*-release -jprt_build_product: jprt_build_generic - -jprt_build_fastdebug: DEBUG_LEVEL=fastdebug -jprt_build_fastdebug: BUILD_DIRNAME=*-fastdebug -jprt_build_fastdebug: jprt_build_generic - -jprt_build_debug: DEBUG_LEVEL=slowdebug -jprt_build_debug: BUILD_DIRNAME=*-debug -jprt_build_debug: jprt_build_generic - -jprt_build_generic: BRIDGE_TARGETS+=jprt_bundle -jprt_build_generic: bridgeBuild - # This target must be called in the context of a SPEC file jprt_bundle: $(JPRT_ARCHIVE_BUNDLE) @$(call CheckIfMakeAtEnd) @@ -235,14 +77,6 @@ final-images-only: start-make @$(call TargetExit) -# Keep track of phony targets -PHONY_LIST += jprt_build_product jprt_build_fastdebug jprt_build_debug \ - jprt_build_generic bundles jprt_bundle \ - final-images final-images-only - ########################################################################### # Phony targets -.PHONY: $(PHONY_LIST) - -# Force target -FRC: +.PHONY: jprt_bundle bundles bundles-only final-images final-images-only diff --git a/make/Main.gmk b/make/Main.gmk index 2988f783fd7..acb4faa4405 100644 --- a/make/Main.gmk +++ b/make/Main.gmk @@ -242,4 +242,6 @@ clean-test: .PHONY: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-nashorn clean-images clean-docs clean-test clean-overlay-images clean-bootcycle-build .PHONY: profiles profiles-only profiles-oscheck +include $(root_dir)/make/Jprt.gmk + FRC: # Force target diff --git a/make/MakeHelpers.gmk b/make/MakeHelpers.gmk index 66f4ca4b763..c999535555e 100644 --- a/make/MakeHelpers.gmk +++ b/make/MakeHelpers.gmk @@ -50,7 +50,7 @@ BUILDTIMESDIR=$(OUTPUT_ROOT)/tmp/buildtimes # Global targets are possible to run either with or without a SPEC. The prototypical # global target is "help". -global_targets=help jprt% bridgeBuild bridge2configure +global_targets=help ############################## # Functions diff --git a/make/jprt.properties b/make/jprt.properties index ae20e82eae0..2adc170203a 100644 --- a/make/jprt.properties +++ b/make/jprt.properties @@ -151,3 +151,23 @@ jprt.test.targets=${jprt.vm.${jprt.my.test.set}.test.targets} # Directories to be excluded from the source bundles jprt.bundle.exclude.src.dirs=build dist webrev +# Instruct jprt to use configure when building +jprt.build.use.configure=true +jprt.build.flavor.product.target=jprt_bundle +jprt.build.flavor.fastdebug.target=jprt_bundle +jprt.build.flavor.debug.target=jprt_bundle + +# Add these configure args to all builds +jprt.build.configure.args= \ + --with-boot-jdk=$ALT_BOOTDIR \ + --with-jobs=$ALT_PARALLEL_COMPILE_JOBS + +# Add these configure args to 32 bit builds +jprt.i586.build.configure.args= \ + --with-target-bits=32 \ + --with-jvm-variants=client,server + +# Use these configure args to define debug level. +jprt.product.build.configure.args=--with-debug-level=release +jprt.fastdebug.build.configure.args=--with-debug-level=fastdebug +jprt.debug.build.configure.args=--with-debug-level=slowdebug