# HG changeset patch # User ihse # Date 1383559784 -3600 # Node ID 80acb81517978d17e23ddf07bd651a78d10f15ff # Parent e757eb9aee3d6bec7da074c47e07616104a8df33 8027566: Remove the old build system Reviewed-by: erikj, tbell diff -r e757eb9aee3d -r 80acb8151797 make/BuildJaxp.gmk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/BuildJaxp.gmk Mon Nov 04 11:09:44 2013 +0100 @@ -0,0 +1,71 @@ +# +# Copyright (c) 2007, 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 + +-include $(SPEC) +include MakeBase.gmk +include JavaCompilation.gmk + +DISABLE_JAXP_WARNINGS := -Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough + +# The generate new bytecode uses the new compiler for to generate bytecode +# for the new jdk that is being built. The code compiled by this setup +# cannot necessarily be run with the boot jdk. +$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE_DEBUG, \ + JVM := $(JAVA), \ + JAVAC := $(NEW_JAVAC), \ + FLAGS := -XDignore.symbol.file=true $(DISABLE_JAXP_WARNINGS) -g, \ + SERVER_DIR := $(SJAVAC_SERVER_DIR), \ + SERVER_JVM := $(SJAVAC_SERVER_JAVA))) + +$(eval $(call SetupJavaCompilation,BUILD_JAXP, \ + SETUP := GENERATE_NEWBYTECODE_DEBUG, \ + SRC := $(JAXP_TOPDIR)/src, \ + BIN := $(JAXP_OUTPUTDIR)/classes, \ + SRCZIP := $(JAXP_OUTPUTDIR)/dist/lib/src.zip)) + +# Imitate the property cleaning mechanism in the old build. This will likely be replaced +# by the unified functionality in JavaCompilation.gmk, but keep it the same as old build +# for now, even though it actually breaks properties containing # in the value. +# Using nawk to avoid solaris sed. +$(JAXP_OUTPUTDIR)/classes/%.properties: $(JAXP_TOPDIR)/src/%.properties + $(MKDIR) -p $(@D) + $(RM) $@ $@.tmp + $(CAT) $< | LANG=C $(NAWK) '{ sub(/#.*$$/,"#"); print }' > $@.tmp + $(MV) $@.tmp $@ + +SRC_PROP_FILES := $(shell $(FIND) $(JAXP_TOPDIR)/src -name "*.properties") +TARGET_PROP_FILES := $(patsubst $(JAXP_TOPDIR)/src/%, $(JAXP_OUTPUTDIR)/classes/%, $(SRC_PROP_FILES)) + +$(eval $(call SetupArchive,ARCHIVE_JAXP, $(BUILD_JAXP) $(TARGET_PROP_FILES), \ + SRCS := $(JAXP_OUTPUTDIR)/classes, \ + SUFFIXES := .class .properties, \ + JAR := $(JAXP_OUTPUTDIR)/dist/lib/classes.jar)) + +all: $(JAXP_OUTPUTDIR)/dist/lib/classes.jar $(JAXP_OUTPUTDIR)/dist/lib/src.zip + +.PHONY: default all diff -r e757eb9aee3d -r 80acb8151797 make/Makefile --- a/make/Makefile Thu Nov 07 08:16:21 2013 -0800 +++ b/make/Makefile Mon Nov 04 11:09:44 2013 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 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 @@ -23,172 +23,27 @@ # questions. # -# Makefile wrapper around Ant build.xml file - -# -# On Solaris, the 'make' utility from Sun will not work with these makefiles. -# This little rule is only understood by Sun's make, and is harmless -# when seen by the GNU make tool. If using Sun's make, this causes the -# make command to fail. -# -SUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33 - -ifdef QUIET - ANT_OPTIONS += -quiet -endif - -ifdef VERBOSE - ANT_OPTIONS += -verbose -endif - -ifeq ($(VARIANT), OPT) - ifneq ($(DEBUG_CLASSFILES), true) - ANT_OPTIONS += -Djavac.debug=false - endif -endif - -# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) -# and the somewhat misnamed CLASS_VERSION (-target NN) -ifdef TARGET_CLASS_VERSION - ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION) -else - ifdef JAVAC_TARGET_ARG - ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG) - endif -endif - -ifdef SOURCE_LANGUAGE_VERSION - ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION) +# Locate this Makefile +ifeq ($(filter /%, $(lastword $(MAKEFILE_LIST))), ) + makefile_path := $(CURDIR)/$(lastword $(MAKEFILE_LIST)) else - ifdef JAVAC_SOURCE_ARG - ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG) - endif -endif - -# If downloads are allowed -ifeq ($(ALLOW_DOWNLOADS),true) - ANT_OPTIONS += -Dallow.downloads=true -endif - -# Figure out the platform we are using -_SYSTEM_UNAME := $(shell uname) -_PLATFORM_KIND = unix -ifeq ($(_SYSTEM_UNAME), Windows_NT) - _PLATFORM_KIND = windows + makefile_path := $(lastword $(MAKEFILE_LIST)) endif -ifneq (,$(findstring CYGWIN,$(_SYSTEM_UNAME))) - _PLATFORM_KIND = windows -endif +repo_dir := $(patsubst %/make/Makefile, %, $(makefile_path)) + +# What is the name of this subsystem (langtools, corba, etc)? +subsystem_name := $(notdir $(repo_dir)) -# Where is /java in case we need it -ifdef ALT_SLASH_JAVA - _SLASHJAVA = $(ALT_SLASH_JAVA) +# Try to locate top-level makefile +top_level_makefile := $(repo_dir)/../Makefile +ifneq ($(wildcard $(top_level_makefile)), ) + $(info Will run $(subsystem_name) target on top-level Makefile) + $(info WARNING: This is a non-recommended way of building!) + $(info ===================================================) else - ifeq ($(_PLATFORM_KIND), windows) - _SLASHJAVA=J:/ - else - _SLASHJAVA=/java - endif -endif - -ifdef ALT_OUTPUTDIR - OUTPUTDIR = $(ALT_OUTPUTDIR) - ANT_OPTIONS += -Doutput.dir=$(ALT_OUTPUTDIR) -else - OUTPUTDIR = .. + $(info Cannot locate top-level Makefile. Is this repo not checked out as part of a complete forest?) + $(error Build from top-level Makefile instead) endif -ifdef ALT_LANGTOOLS_DIST - ifdef ALT_BOOTDIR - ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR) - ANT_OPTIONS += -Djdk.home=$(ALT_BOOTDIR) - endif - ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap -else - ifdef ALT_JDK_IMPORT_PATH - ANT_JAVA_HOME = JAVA_HOME=$(ALT_JDK_IMPORT_PATH) - ANT_OPTIONS += -Djdk.home=$(ALT_JDK_IMPORT_PATH) - endif -endif - -ifdef ANT_HOME - ANT = $(ANT_HOME)/bin/ant - ifneq ($(shell test -x $(ANT); echo $$?), 0) - $(error "$(ANT) not found; please update ANT_HOME") - endif -else - ANT = ant - ifneq ($(shell which $(ANT) > /dev/null; echo $$?), 0) - $(error "'ant' not found; please set ANT_HOME or put 'ant' on your PATH") - endif -endif - -# Default target and expected 'do everything' target -default: all - -# All ant targets of interest -ANT_TARGETS = all build dist clobber clean sanity - -# Create a make target for each -$(ANT_TARGETS): - cd .. && $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) -version - cd .. && $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) $@ - -# Just for compat reasons, delete in future. -drop_included: -source: - -# Help target -define helpenvline -@echo " $1";echo " $2" -endef -help: - @echo "----------------------------------------------------------" - @echo " " - @echo "Help information for this Makefile:" - @echo " " - @echo " Targets (see ant project information for descriptions):" - @echo " $(ANT_TARGETS)" - @echo " " - @echo " Environment or command line variables (all optional):" - $(call helpenvline, ALT_BOOTDIR,\ - "JAVA_HOME to use when running ant") - $(call helpenvline, ALT_LANGTOOLS_DIST,\ - "path to langtools repository dist directory") - $(call helpenvline, ALT_OUTPUTDIR,\ - "path to root of output") - $(call helpenvline, DEBUG_CLASSFILES,\ - "if set makes sure ant property javac.debug is true") - $(call helpenvline, JAVAC_SOURCE_ARG,\ - "if SOURCE_LANGUAGE_VERSION not set uses this to set ant property javac.source") - $(call helpenvline, JAVAC_TARGET_ARG,\ - "if TARGET_CLASS_VERSION not set uses this to set ant property javac.target") - $(call helpenvline, SOURCE_LANGUAGE_VERSION,\ - "if set uses this to set ant property javac.source") - $(call helpenvline, QUIET,\ - "if set will pass -quiet to ant") - $(call helpenvline, TARGET_CLASS_VERSION,\ - "JAVA_HOME to use when running ant") - $(call helpenvline, VARIANT,\ - "if set to OPT means optimized build will set javac.debug to false") - $(call helpenvline, VERBOSE,\ - "if set will pass -verbose to ant") - @echo " " - @echo "----------------------------------------------------------" - @echo " " - @echo "Ant project file help information:" - @echo " " - @$(ANT_JAVA_HOME) cd .. && $(ANT) $(ANT_OPTIONS) -p - @echo " " - @echo "----------------------------------------------------------" - -# Targets for Sun's internal JPRT build system -JPRT_ARCHIVE_BUNDLE=$(OUTPUTDIR)/jprt.zip -jprt_build_product jprt_build_debug jprt_build_fastdebug: all - $(RM) $(JPRT_ARCHIVE_BUNDLE) - ( cd $(OUTPUTDIR)/dist && \ - zip -q -r $(JPRT_ARCHIVE_BUNDLE) . ) - -# Declare these phony (not filenames) -.PHONY: $(ANT_TARGETS) \ - jprt_build_product jprt_build_debug jprt_build_fastdebug +all: + @$(MAKE) -f $(top_level_makefile) $(subsystem_name) diff -r e757eb9aee3d -r 80acb8151797 make/jprt.properties --- a/make/jprt.properties Thu Nov 07 08:16:21 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -# -# Copyright (c) 2006, 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. -# - -# Properties for jprt - -# Locked down to jdk8 -jprt.tools.default.release=jdk8 - -# The different build flavors we want, we override here so we just get these 2 -jprt.build.flavors=product,fastdebug - -# Standard list of jprt build targets for this source tree -jprt.build.targets= \ - solaris_sparcv9_5.10-{product|fastdebug}, \ - solaris_x64_5.10-{product|fastdebug}, \ - linux_i586_2.6-{product|fastdebug}, \ - linux_x64_2.6-{product|fastdebug}, \ - windows_i586_6.1-{product|fastdebug}, \ - windows_x64_6.1-{product|fastdebug} - -# Directories to be excluded from the source bundles -jprt.bundle.exclude.src.dirs=build dist webrev - diff -r e757eb9aee3d -r 80acb8151797 make/scripts/update_src.sh --- a/make/scripts/update_src.sh Thu Nov 07 08:16:21 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -# -# Copyright (c) 2012, 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 script was used to copy the former drop source bundle source into -# the repository. Exists as a form of documentation. - -curdir="`(cd . && pwd)`" - -# Whitespace normalizer script is in the top repository. -normalizer="perl ${curdir}/../make/scripts/normalizer.pl" - -# Locations for bundle and root of source tree -tmp=/tmp -srcroot=${curdir}/src -mkdir -p ${srcroot} - -# Bundle information -drops_dir="/java/devtools/share/jdk8-drops" -url1="http://download.java.net/jaxp/1.4.5" -bundle1="jaxp145_01.zip" -srcdir1="${srcroot}" - -# Function to get a bundle and explode it and normalize the source files. -getBundle() # drops_dir url bundlename bundledestdir srcrootdir -{ - # Get the bundle from drops_dir or downloaded - mkdir -p $4 - rm -f $4/$3 - if [ -f $1/$3 ] ; then - echo "Copy over bundle: $1/$3" - cp $1/$3 $4 - else - echo "Downloading bundle: $2/$3" - (cd $4 && wget $2/$3) - fi - # Fail if it does not exist - if [ ! -f $4/$3 ] ; then - echo "ERROR: Could not get $3" - exit 1 - fi - # Wipe it out completely - echo "Cleaning up $5" - rm -f -r $5 - mkdir -p $5 - echo "Unzipping $4/$3" - ( cd $5 && unzip -q $4/$3 && mv src/* . && rmdir src && rm LICENSE ) - # Run whitespace normalizer - echo "Normalizing the sources in $5" - ( cd $5 && ${normalizer} . ) - # Delete the bundle and leftover files - rm -f $4/$3 $5/filelist -} - -# Process the bundles. -getBundle "${drops_dir}" "${url1}" "${bundle1}" ${tmp} ${srcdir1} -echo "Completed bundle extraction." -echo " " - -# Appropriate Mercurial commands needed to run: -echo "Run: hg addremove src" -echo "Run: ksh ../make/scripts/webrev.ksh -N -o ${HOME}/webrev" -echo "Get reviewer, get CR, then..." -echo "Run: hg commit" - diff -r e757eb9aee3d -r 80acb8151797 makefiles/BuildJaxp.gmk --- a/makefiles/BuildJaxp.gmk Thu Nov 07 08:16:21 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -# -# Copyright (c) 2007, 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 - --include $(SPEC) -include MakeBase.gmk -include JavaCompilation.gmk - -DISABLE_JAXP_WARNINGS := -Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough - -# The generate new bytecode uses the new compiler for to generate bytecode -# for the new jdk that is being built. The code compiled by this setup -# cannot necessarily be run with the boot jdk. -$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE_DEBUG, \ - JVM := $(JAVA), \ - JAVAC := $(NEW_JAVAC), \ - FLAGS := -XDignore.symbol.file=true $(DISABLE_JAXP_WARNINGS) -g, \ - SERVER_DIR := $(SJAVAC_SERVER_DIR), \ - SERVER_JVM := $(SJAVAC_SERVER_JAVA))) - -$(eval $(call SetupJavaCompilation,BUILD_JAXP, \ - SETUP := GENERATE_NEWBYTECODE_DEBUG, \ - SRC := $(JAXP_TOPDIR)/src, \ - BIN := $(JAXP_OUTPUTDIR)/classes, \ - SRCZIP := $(JAXP_OUTPUTDIR)/dist/lib/src.zip)) - -# Imitate the property cleaning mechanism in the old build. This will likely be replaced -# by the unified functionality in JavaCompilation.gmk, but keep it the same as old build -# for now, even though it actually breaks properties containing # in the value. -# Using nawk to avoid solaris sed. -$(JAXP_OUTPUTDIR)/classes/%.properties: $(JAXP_TOPDIR)/src/%.properties - $(MKDIR) -p $(@D) - $(RM) $@ $@.tmp - $(CAT) $< | LANG=C $(NAWK) '{ sub(/#.*$$/,"#"); print }' > $@.tmp - $(MV) $@.tmp $@ - -SRC_PROP_FILES := $(shell $(FIND) $(JAXP_TOPDIR)/src -name "*.properties") -TARGET_PROP_FILES := $(patsubst $(JAXP_TOPDIR)/src/%, $(JAXP_OUTPUTDIR)/classes/%, $(SRC_PROP_FILES)) - -$(eval $(call SetupArchive,ARCHIVE_JAXP, $(BUILD_JAXP) $(TARGET_PROP_FILES), \ - SRCS := $(JAXP_OUTPUTDIR)/classes, \ - SUFFIXES := .class .properties, \ - JAR := $(JAXP_OUTPUTDIR)/dist/lib/classes.jar)) - -all: $(JAXP_OUTPUTDIR)/dist/lib/classes.jar $(JAXP_OUTPUTDIR)/dist/lib/src.zip - -.PHONY: default all diff -r e757eb9aee3d -r 80acb8151797 makefiles/Makefile --- a/makefiles/Makefile Thu Nov 07 08:16:21 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -# -# Copyright (c) 2012, 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. -# - -# Locate this Makefile -ifeq ($(filter /%, $(lastword $(MAKEFILE_LIST))), ) - makefile_path := $(CURDIR)/$(lastword $(MAKEFILE_LIST)) -else - makefile_path := $(lastword $(MAKEFILE_LIST)) -endif -repo_dir := $(patsubst %/makefiles/Makefile, %, $(makefile_path)) - -# What is the name of this subsystem (langtools, corba, etc)? -subsystem_name := $(notdir $(repo_dir)) - -# Try to locate top-level makefile -top_level_makefile := $(repo_dir)/../common/makefiles/Makefile -ifneq ($(wildcard $(top_level_makefile)), ) - $(info Will run $(subsystem_name) target on top-level Makefile) - $(info WARNING: This is a non-recommended way of building!) - $(info ===================================================) -else - $(info Cannot locate top-level Makefile. Is this repo not checked out as part of a complete forest?) - $(error Build from top-level Makefile instead) -endif - -all: - @$(MAKE) -f $(top_level_makefile) $(subsystem_name)