Makefile revision 0
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# This code is free software; you can redistribute it and/or modify it
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# under the terms of the GNU General Public License version 2 only, as
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington# published by the Free Software Foundation. Sun designates this
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington# particular file as subject to the "Classpath" exception as provided
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington# by Sun in the LICENSE file that accompanied this code.
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington#
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington# This code is distributed in the hope that it will be useful, but WITHOUT
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# version 2 for more details (a copy is included in the LICENSE file that
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# accompanied this code).
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# You should have received a copy of the GNU General Public License version
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# 2 along with this work; if not, write to the Free Software Foundation,
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews#
79399226b7bd15afb3e97fa9a5ea678359968997Mark Andrews# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
b5ad6dfea4cc3e7d1d322ac99f1e5a31096837c4Mark Andrews# CA 95054 USA or visit www.sun.com if you need additional information or
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington# have any questions.
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington#
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington#
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington# Makefile for building the corba workspace.
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington#
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonBUILDDIR=.
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtoninclude $(BUILDDIR)/common/Defs.gmk
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtoninclude $(BUILDDIR)/common/CancelImplicits.gmk
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington#----- commands
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonCHMOD = chmod
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonCP = cp
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinECHO = echo # FIXME
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinFIND = find
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinMKDIR = mkdir
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSED = sed
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinZIP = zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#----- locations and deliverables
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinTOPDIR=..
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSRC_BIN_DIR = $(TOPDIR)/src/share/bin
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSRC_CLASSES_DIR = $(TOPDIR)/src/share/classes
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinifdef ALT_OUTPUTDIR
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein OUTPUTDIR = $(ALT_OUTPUTDIR)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein BUILD_DIR = $(ALT_OUTPUTDIR)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington DIST_DIR = $(ALT_OUTPUTDIR)/dist
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonelse
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington OUTPUTDIR = ..
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington BUILD_DIR = $(TOPDIR)/build/$(PLATFORM)-$(ARCH)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington DIST_DIR = $(TOPDIR)/dist
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonendif
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark AndrewsCLASSES_DIR = $(BUILD_DIR)/classes
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonGENSRC_DIR = $(BUILD_DIR)/gensrc
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
cc3aafe737334d444781f8a34ffaf459e075bb9aMark AndrewsBIN_DIR = $(DIST_DIR)/bin
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonLIB_DIR = $(DIST_DIR)/lib
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington#-----
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonifndef JDK_MAJOR_VERSION
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington JDK_MAJOR_VERSION = 1
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonendif
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonifndef JDK_MINOR_VERSION
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington JDK_MINOR_VERSION = 7
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonendif
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinifndef JDK_MICRO_VERSION
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein JDK_MICRO_VERSION = 0
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinendif
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonifndef JDK_VERSION
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington JDK_VERSION = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonendif
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonifndef MILESTONE
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington MILESTONE = internal
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonendif
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinifneq ($(MILESTONE),fcs)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein RELEASE = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinelse
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein RELEASE = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinendif
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinifdef BUILD_NUMBER
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinelse
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein BUILD_NUMBER = b00
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein USER_RELEASE_SUFFIX := $(shell echo $(USER)_`date '+%d_%b_%Y_%H_%M' | tr "A-Z" "a-z"`)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinendif
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington#----- useful macros
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonSOURCE_LEVEL = 5
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonBOOTSTRAP_TARGET_LEVEL = 5
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinTARGET_LEVEL = 6
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinifndef TARGET_JAVA
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein TARGET_JAVA = java
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinendif
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinNO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSELF = $(lastword $(MAKEFILE_LIST))
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# for jdk, we generate the following:
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington# dist/lib/classes.jar:
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington# corba recompiled to run on the target JDK,
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington# ready for inclusion in rt.jar
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington# dist/lib/src.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# .properties and .java files for classes in classes.jar,
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# ready for jdk src.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# dist/lib/bin.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# corba specific binaries: orb.idl, ir.idl
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Default target
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeindefault: all
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#----- classes.jar
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCLASSES_JAR = $(LIB_DIR)/classes.jar
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington$(CLASSES_JAR):
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington $(MKDIR) -p $(@D)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington $(BOOT_JAR_CMD) -cf $@ -C $(CLASSES_DIR) .
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#----- src.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSRC_ZIP_FILES = $(shell $(FIND) $(SRC_CLASSES_DIR) \( -name SCCS -o -name \*-template \) -prune -o -type f -print )
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSRC_ZIP = $(LIB_DIR)/src.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(SRC_ZIP): $(SRC_ZIP_FILES)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington abs_src_zip=`cd $(@D) ; pwd`/$(@F) ; \
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ( cd $(SRC_CLASSES_DIR) ; $(FIND) . \( -name SCCS -o -name \*-template \) -prune -o -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ; \
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ( cd $(GENSRC_DIR) ; $(FIND) . -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ;
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#----- bin.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinBIN_ZIP_FILES = $(BUILD_DIR/lib/orb.idl $(BUILD_DIR)/lib/ir.idl
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinBIN_ZIP = $(LIB_DIR)/bin.zip
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington$(BIN_ZIP): $(BIN_ZIP_FILES)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington abs_bin_zip=`cd $(@D) ; pwd`/$(@F) ; \
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews ( cd $(BUILD_DIR) ; $(FIND) lib -name "*.idl" -print | $(ZIP) -q $$abs_bin_zip -@ ) ;
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# CORBA
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSUBDIRS = tools javax org sun com
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinbuild:
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews $(SUBDIRS-loop)
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellingtonall : build $(CLASSES_JAR) $(SRC_ZIP) $(BIN_ZIP)
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinclean clobber:
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(RM) -r $(BUILD_DIR)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(RM) -r $(DIST_DIR)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#-------------------------------------------------------------------
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Targets for Sun's internal JPRT build system
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonCD = cd
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonZIP = zip
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian WellingtonJPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinjprt_build_product jprt_build_debug jprt_build_fastdebug: all
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ( $(CD) $(OUTPUTDIR) && \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#-------------------------------------------------------------------
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews#
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews# Phonies to avoid accidents.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein.PHONY: all build clean clobber debug jprt_build_product jprt_build_debug jprt_build_fastdebug
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein