Makefile revision 99
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
af062818b47340eef15700d2f0211576ba3506eevboxsync# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# This code is free software; you can redistribute it and/or modify it
af062818b47340eef15700d2f0211576ba3506eevboxsync# under the terms of the GNU General Public License version 2 only, as
af062818b47340eef15700d2f0211576ba3506eevboxsync# published by the Free Software Foundation. Sun designates this
af062818b47340eef15700d2f0211576ba3506eevboxsync# particular file as subject to the "Classpath" exception as provided
af062818b47340eef15700d2f0211576ba3506eevboxsync# by Sun in the LICENSE file that accompanied this code.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# This code is distributed in the hope that it will be useful, but WITHOUT
af062818b47340eef15700d2f0211576ba3506eevboxsync# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
af062818b47340eef15700d2f0211576ba3506eevboxsync# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
af062818b47340eef15700d2f0211576ba3506eevboxsync# version 2 for more details (a copy is included in the LICENSE file that
af062818b47340eef15700d2f0211576ba3506eevboxsync# accompanied this code).
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# You should have received a copy of the GNU General Public License version
af062818b47340eef15700d2f0211576ba3506eevboxsync# 2 along with this work; if not, write to the Free Software Foundation,
af062818b47340eef15700d2f0211576ba3506eevboxsync# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
af062818b47340eef15700d2f0211576ba3506eevboxsync# CA 95054 USA or visit www.sun.com if you need additional information or
af062818b47340eef15700d2f0211576ba3506eevboxsync# have any questions.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Makefile for building the corba workspace.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBUILDDIR=.
af062818b47340eef15700d2f0211576ba3506eevboxsyncinclude $(BUILDDIR)/common/Defs.gmk
af062818b47340eef15700d2f0211576ba3506eevboxsyncinclude $(BUILDDIR)/common/CancelImplicits.gmk
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#----- commands
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncCHMOD = chmod
af062818b47340eef15700d2f0211576ba3506eevboxsyncCP = cp
af062818b47340eef15700d2f0211576ba3506eevboxsyncECHO = echo # FIXME
af062818b47340eef15700d2f0211576ba3506eevboxsyncFIND = find
af062818b47340eef15700d2f0211576ba3506eevboxsyncMKDIR = mkdir
af062818b47340eef15700d2f0211576ba3506eevboxsyncSED = sed
af062818b47340eef15700d2f0211576ba3506eevboxsyncZIP = zip
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#----- locations and deliverables
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncTOPDIR=..
af062818b47340eef15700d2f0211576ba3506eevboxsyncSRC_BIN_DIR = $(TOPDIR)/src/share/bin
af062818b47340eef15700d2f0211576ba3506eevboxsyncSRC_CLASSES_DIR = $(TOPDIR)/src/share/classes
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef ALT_OUTPUTDIR
af062818b47340eef15700d2f0211576ba3506eevboxsync OUTPUTDIR = $(ALT_OUTPUTDIR)
af062818b47340eef15700d2f0211576ba3506eevboxsync BUILD_DIR = $(ALT_OUTPUTDIR)
af062818b47340eef15700d2f0211576ba3506eevboxsync DIST_DIR = $(ALT_OUTPUTDIR)/dist
af062818b47340eef15700d2f0211576ba3506eevboxsyncelse
af062818b47340eef15700d2f0211576ba3506eevboxsync OUTPUTDIR = ..
af062818b47340eef15700d2f0211576ba3506eevboxsync BUILD_DIR = $(TOPDIR)/build/$(PLATFORM)-$(ARCH)
af062818b47340eef15700d2f0211576ba3506eevboxsync DIST_DIR = $(TOPDIR)/dist
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsyncABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncCLASSES_DIR = $(BUILD_DIR)/classes
af062818b47340eef15700d2f0211576ba3506eevboxsyncGENSRC_DIR = $(BUILD_DIR)/gensrc
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBIN_DIR = $(DIST_DIR)/bin
af062818b47340eef15700d2f0211576ba3506eevboxsyncLIB_DIR = $(DIST_DIR)/lib
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#-----
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef JDK_MAJOR_VERSION
af062818b47340eef15700d2f0211576ba3506eevboxsync JDK_MAJOR_VERSION = 1
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef JDK_MINOR_VERSION
af062818b47340eef15700d2f0211576ba3506eevboxsync JDK_MINOR_VERSION = 7
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef JDK_MICRO_VERSION
af062818b47340eef15700d2f0211576ba3506eevboxsync JDK_MICRO_VERSION = 0
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef JDK_VERSION
af062818b47340eef15700d2f0211576ba3506eevboxsync JDK_VERSION = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef MILESTONE
af062818b47340eef15700d2f0211576ba3506eevboxsync MILESTONE = internal
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync# RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
af062818b47340eef15700d2f0211576ba3506eevboxsyncifneq ($(MILESTONE),fcs)
af062818b47340eef15700d2f0211576ba3506eevboxsync RELEASE = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
af062818b47340eef15700d2f0211576ba3506eevboxsyncelse
af062818b47340eef15700d2f0211576ba3506eevboxsync RELEASE = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync# FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef BUILD_NUMBER
af062818b47340eef15700d2f0211576ba3506eevboxsync FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
af062818b47340eef15700d2f0211576ba3506eevboxsyncelse
af062818b47340eef15700d2f0211576ba3506eevboxsync BUILD_NUMBER = b00
af062818b47340eef15700d2f0211576ba3506eevboxsync USER_RELEASE_SUFFIX := $(shell echo $(USER)_`date '+%d_%b_%Y_%H_%M' | tr "A-Z" "a-z"`)
af062818b47340eef15700d2f0211576ba3506eevboxsync FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#----- useful macros
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncSOURCE_LEVEL = 5
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOTSTRAP_TARGET_LEVEL = 5
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef TARGET_CLASS_VERSION
af062818b47340eef15700d2f0211576ba3506eevboxsync TARGET_LEVEL = $(TARGET_CLASS_VERSION)
af062818b47340eef15700d2f0211576ba3506eevboxsyncelse
af062818b47340eef15700d2f0211576ba3506eevboxsync TARGET_LEVEL = 7
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncifndef TARGET_JAVA
af062818b47340eef15700d2f0211576ba3506eevboxsync TARGET_JAVA = java
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncSELF = $(lastword $(MAKEFILE_LIST))
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync# for jdk, we generate the following:
af062818b47340eef15700d2f0211576ba3506eevboxsync# dist/lib/classes.jar:
af062818b47340eef15700d2f0211576ba3506eevboxsync# corba recompiled to run on the target JDK,
af062818b47340eef15700d2f0211576ba3506eevboxsync# ready for inclusion in rt.jar
af062818b47340eef15700d2f0211576ba3506eevboxsync# dist/lib/src.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync# .properties and .java files for classes in classes.jar,
af062818b47340eef15700d2f0211576ba3506eevboxsync# ready for jdk src.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync# dist/lib/bin.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync# corba specific binaries: orb.idl, ir.idl
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync# Default target
af062818b47340eef15700d2f0211576ba3506eevboxsyncdefault: all
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#----- classes.jar
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncCLASSES_JAR = $(LIB_DIR)/classes.jar
af062818b47340eef15700d2f0211576ba3506eevboxsync$(CLASSES_JAR):
af062818b47340eef15700d2f0211576ba3506eevboxsync $(MKDIR) -p $(@D)
af062818b47340eef15700d2f0211576ba3506eevboxsync $(BOOT_JAR_CMD) -cf $@ -C $(CLASSES_DIR) .
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#----- src.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncSRC_ZIP_FILES = $(shell $(FIND) $(SRC_CLASSES_DIR) \( -name SCCS -o -name \*-template \) -prune -o -type f -print )
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncSRC_ZIP = $(LIB_DIR)/src.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync$(SRC_ZIP): $(SRC_ZIP_FILES)
af062818b47340eef15700d2f0211576ba3506eevboxsync abs_src_zip=`cd $(@D) ; pwd`/$(@F) ; \
af062818b47340eef15700d2f0211576ba3506eevboxsync ( cd $(SRC_CLASSES_DIR) ; $(FIND) . \( -name SCCS -o -name \*-template \) -prune -o -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ; \
af062818b47340eef15700d2f0211576ba3506eevboxsync ( cd $(GENSRC_DIR) ; $(FIND) . -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#----- bin.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBIN_ZIP_FILES = $(BUILD_DIR/lib/orb.idl $(BUILD_DIR)/lib/ir.idl
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBIN_ZIP = $(LIB_DIR)/bin.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync$(BIN_ZIP): $(BIN_ZIP_FILES)
af062818b47340eef15700d2f0211576ba3506eevboxsync abs_bin_zip=`cd $(@D) ; pwd`/$(@F) ; \
af062818b47340eef15700d2f0211576ba3506eevboxsync ( cd $(BUILD_DIR) ; $(FIND) lib -name "*.idl" -print | $(ZIP) -q $$abs_bin_zip -@ ) ;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# CORBA
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsyncSUBDIRS = tools javax org sun com
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncbuild:
af062818b47340eef15700d2f0211576ba3506eevboxsync $(SUBDIRS-loop)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncall : build $(CLASSES_JAR) $(SRC_ZIP) $(BIN_ZIP)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncclean clobber:
af062818b47340eef15700d2f0211576ba3506eevboxsync $(RM) -r $(BUILD_DIR)
af062818b47340eef15700d2f0211576ba3506eevboxsync $(RM) -r $(DIST_DIR)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#-------------------------------------------------------------------
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Targets for Sun's internal JPRT build system
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncCD = cd
af062818b47340eef15700d2f0211576ba3506eevboxsyncZIP = zip
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncJPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncjprt_build_product jprt_build_debug jprt_build_fastdebug: all
af062818b47340eef15700d2f0211576ba3506eevboxsync ( $(CD) $(OUTPUTDIR) && \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#-------------------------------------------------------------------
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Phonies to avoid accidents.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync.PHONY: all build clean clobber debug jprt_build_product jprt_build_debug jprt_build_fastdebug
af062818b47340eef15700d2f0211576ba3506eevboxsync