Makefile revision 287
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews#
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# This code is free software; you can redistribute it and/or modify it
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# under the terms of the GNU General Public License version 2 only, as
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# published by the Free Software Foundation. Oracle designates this
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson# particular file as subject to the "Classpath" exception as provided
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews# by Oracle in the LICENSE file that accompanied this code.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This code is distributed in the hope that it will be useful, but WITHOUT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# version 2 for more details (a copy is included in the LICENSE file that
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# accompanied this code).
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# You should have received a copy of the GNU General Public License version
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# 2 along with this work; if not, write to the Free Software Foundation,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or visit www.oracle.com if you need additional information or have any
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# questions.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Makefile for building the corba workspace.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBUILDDIR=.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(BUILDDIR)/common/Defs.gmk
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox Userinclude $(BUILDDIR)/common/CancelImplicits.gmk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#----- commands
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox UserCHMOD = chmod
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCP = cp
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinECHO = echo # FIXME
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFIND = find
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox UserMKDIR = mkdir
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSED = sed
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinZIP = zip
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User#----- locations and deliverables
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTOPDIR=..
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSRC_BIN_DIR = $(TOPDIR)/src/share/bin
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox UserSRC_CLASSES_DIR = $(TOPDIR)/src/share/classes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifdef ALT_OUTPUTDIR
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein OUTPUTDIR = $(ALT_OUTPUTDIR)
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User BUILD_DIR = $(ALT_OUTPUTDIR)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein DIST_DIR = $(ALT_OUTPUTDIR)/dist
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinelse
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein OUTPUTDIR = ..
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User BUILD_DIR = $(TOPDIR)/build/$(PLATFORM)-$(ARCH)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein DIST_DIR = $(TOPDIR)/dist
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox UserABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserCLASSES_DIR = $(BUILD_DIR)/classes
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserGENSRC_DIR = $(BUILD_DIR)/gensrc
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserLIB_DIR = $(DIST_DIR)/lib
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#-----
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifndef JDK_MAJOR_VERSION
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein JDK_MAJOR_VERSION = 1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifndef JDK_MINOR_VERSION
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein JDK_MINOR_VERSION = 7
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifndef JDK_MICRO_VERSION
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein JDK_MICRO_VERSION = 0
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifndef JDK_VERSION
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein JDK_VERSION = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifndef MILESTONE
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User MILESTONE = internal
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MILESTONE),fcs)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User RELEASE = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinelse
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User RELEASE = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userifdef BUILD_NUMBER
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userelse
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein BUILD_NUMBER = b00
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein USER_RELEASE_SUFFIX := $(shell echo $(USER)_`date '+%d_%b_%Y_%H_%M' | tr "A-Z" "a-z"`)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#----- useful macros
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSOURCE_LEVEL = 5
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBOOTSTRAP_TARGET_LEVEL = 5
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userifdef TARGET_CLASS_VERSION
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein TARGET_LEVEL = $(TARGET_CLASS_VERSION)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userelse
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein TARGET_LEVEL = 7
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifndef TARGET_JAVA
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User TARGET_JAVA = java
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSELF = $(lastword $(MAKEFILE_LIST))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# for jdk, we generate the following:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# dist/lib/classes.jar:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# corba recompiled to run on the target JDK,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# ready for inclusion in rt.jar
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# dist/lib/src.zip
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# .properties and .java files for classes in classes.jar,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# ready for jdk src.zip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# dist/lib/bin.zip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# corba specific binaries: orb.idl, ir.idl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Default target
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindefault: all
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#----- classes.jar
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserCLASSES_JAR = $(LIB_DIR)/classes.jar
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(CLASSES_JAR):
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $(MKDIR) -p $(@D)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $(BOOT_JAR_CMD) -cf $@ -C $(CLASSES_DIR) .
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#----- src.zip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSRC_ZIP_FILES = $(shell $(FIND) $(SRC_CLASSES_DIR) \( -name \*-template \) -prune -o -type f -print )
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserSRC_ZIP = $(LIB_DIR)/src.zip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(SRC_ZIP): $(SRC_ZIP_FILES)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User abs_src_zip=`cd $(@D) ; pwd`/$(@F) ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ( cd $(SRC_CLASSES_DIR) ; $(FIND) . \( -name \*-template \) -prune -o -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ; \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ( cd $(GENSRC_DIR) ; $(FIND) . -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#----- bin.zip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBIN_ZIP_FILES = $(BUILD_DIR/lib/orb.idl $(BUILD_DIR)/lib/ir.idl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
BIN_ZIP = $(LIB_DIR)/bin.zip
$(BIN_ZIP): $(BIN_ZIP_FILES)
abs_bin_zip=`cd $(@D) ; pwd`/$(@F) ; \
( cd $(BUILD_DIR) ; $(FIND) lib -name "*.idl" -print | $(ZIP) -q $$abs_bin_zip -@ ) ;
#
# CORBA
#
SUBDIRS = tools javax org sun com
build:
$(SUBDIRS-loop)
all : build $(CLASSES_JAR) $(SRC_ZIP) $(BIN_ZIP)
clean clobber:
$(RM) -r $(BUILD_DIR)
$(RM) -r $(DIST_DIR)
#-------------------------------------------------------------------
#
# Targets for Sun's internal JPRT build system
CD = cd
ZIP = zip
JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
jprt_build_product jprt_build_debug jprt_build_fastdebug: all
( $(CD) $(OUTPUTDIR) && \
$(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
#-------------------------------------------------------------------
#
# Phonies to avoid accidents.
#
.PHONY: all build clean clobber debug jprt_build_product jprt_build_debug jprt_build_fastdebug