1 #
   2 # Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 #
  27 # Makefile for building the corba workspace.
  28 #
  29 
  30 BUILDDIR=.
  31 include $(BUILDDIR)/common/Defs.gmk
  32 include $(BUILDDIR)/common/CancelImplicits.gmk
  33 
  34 #----- commands
  35 
  36 CHMOD = chmod
  37 CP = cp
  38 ECHO = echo # FIXME
  39 FIND = find
  40 MKDIR = mkdir
  41 SED = sed
  42 ZIP = zip
  43 
  44 #-----  locations and deliverables
  45 
  46 TOPDIR=..
  47 SRC_BIN_DIR = $(TOPDIR)/src/share/bin
  48 SRC_CLASSES_DIR = $(TOPDIR)/src/share/classes
  49 
  50 ifdef ALT_OUTPUTDIR
  51   OUTPUTDIR = $(ALT_OUTPUTDIR)
  52   BUILD_DIR = $(ALT_OUTPUTDIR)
  53   DIST_DIR = $(ALT_OUTPUTDIR)/dist
  54 else
  55   OUTPUTDIR = ..
  56   BUILD_DIR = $(TOPDIR)/build/$(PLATFORM)-$(ARCH)
  57   DIST_DIR = $(TOPDIR)/dist
  58 endif
  59 ABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
  60 
  61 CLASSES_DIR = $(BUILD_DIR)/classes
  62 GENSRC_DIR = $(BUILD_DIR)/gensrc
  63 
  64 LIB_DIR = $(DIST_DIR)/lib
  65 
  66 #-----
  67 
  68 ifndef JDK_MAJOR_VERSION
  69   JDK_MAJOR_VERSION = 1
  70 endif
  71 
  72 ifndef JDK_MINOR_VERSION
  73   JDK_MINOR_VERSION = 7
  74 endif
  75 
  76 ifndef JDK_MICRO_VERSION
  77   JDK_MICRO_VERSION = 0
  78 endif
  79 
  80 ifndef JDK_VERSION
  81   JDK_VERSION = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
  82 endif
  83 
  84 ifndef MILESTONE
  85   MILESTONE = internal
  86 endif
  87 
  88 # RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
  89 ifneq ($(MILESTONE),fcs)
  90   RELEASE       = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
  91 else
  92   RELEASE       = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
  93 endif
  94 
  95 # FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
  96 ifdef BUILD_NUMBER
  97   FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
  98 else
  99   BUILD_NUMBER = b00
 100   USER_RELEASE_SUFFIX := $(shell echo $(USER)_`date '+%d_%b_%Y_%H_%M' | tr "A-Z" "a-z"`)
 101   FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
 102 endif
 103 
 104 #----- useful macros
 105 
 106 SOURCE_LEVEL = 5
 107 BOOTSTRAP_TARGET_LEVEL = 5
 108 
 109 ifdef TARGET_CLASS_VERSION
 110     TARGET_LEVEL = $(TARGET_CLASS_VERSION)
 111 else
 112     TARGET_LEVEL = 7
 113 endif
 114 
 115 ifndef TARGET_JAVA
 116   TARGET_JAVA = java
 117 endif
 118 
 119 SELF = $(lastword $(MAKEFILE_LIST))
 120 
 121 # for jdk, we generate the following:
 122 # dist/lib/classes.jar:
 123 #       corba recompiled to run on the target JDK,
 124 #       ready for inclusion in rt.jar
 125 # dist/lib/src.zip
 126 #       .properties and .java files for classes in classes.jar,
 127 #       ready for jdk src.zip
 128 # dist/lib/bin.zip
 129 #       corba specific binaries: orb.idl, ir.idl
 130 
 131 # Default target
 132 default: all
 133 
 134 #----- classes.jar
 135 
 136 CLASSES_JAR = $(LIB_DIR)/classes.jar
 137 $(CLASSES_JAR):
 138         $(MKDIR) -p $(@D)
 139         $(BOOT_JAR_CMD) -cf $@ -C $(CLASSES_DIR) .
 140 
 141 #----- src.zip
 142 
 143 SRC_ZIP_FILES = $(shell $(FIND) $(SRC_CLASSES_DIR) \( -name \*-template \) -prune -o -type f -print )
 144 
 145 SRC_ZIP = $(LIB_DIR)/src.zip
 146 $(SRC_ZIP): $(SRC_ZIP_FILES)
 147         abs_src_zip=`cd $(@D) ; pwd`/$(@F) ; \
 148         ( cd $(SRC_CLASSES_DIR) ; $(FIND) . \( -name \*-template \) -prune -o -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ; \
 149         ( cd $(GENSRC_DIR) ; $(FIND) . -type f -print | $(ZIP) -q $$abs_src_zip -@ ) ;
 150 
 151 #----- bin.zip
 152 
 153 BIN_ZIP_FILES = $(BUILD_DIR/lib/orb.idl $(BUILD_DIR)/lib/ir.idl
 154 
 155 BIN_ZIP = $(LIB_DIR)/bin.zip
 156 $(BIN_ZIP): $(BIN_ZIP_FILES)
 157         abs_bin_zip=`cd $(@D) ; pwd`/$(@F) ; \
 158         ( cd $(BUILD_DIR) ; $(FIND) lib -name "*.idl" -print | $(ZIP) -q $$abs_bin_zip -@ ) ;
 159 
 160 #
 161 # CORBA
 162 #
 163 SUBDIRS = tools javax org sun com
 164 
 165 build:
 166         $(SUBDIRS-loop)
 167 
 168 all : build $(CLASSES_JAR) $(SRC_ZIP) $(BIN_ZIP)
 169 
 170 clean clobber:
 171         $(RM) -r $(BUILD_DIR)
 172         $(RM) -r $(DIST_DIR)
 173 
 174 #-------------------------------------------------------------------
 175 #
 176 # Targets for Sun's internal JPRT build system
 177 
 178 CD = cd
 179 ZIP = zip
 180 
 181 JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
 182 
 183 jprt_build_product jprt_build_debug jprt_build_fastdebug: all
 184         ( $(CD) $(OUTPUTDIR) && \
 185           $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
 186 
 187 #-------------------------------------------------------------------
 188 
 189 
 190 #
 191 # Phonies to avoid accidents.
 192 #
 193 .PHONY: all build clean clobber debug jprt_build_product jprt_build_debug jprt_build_fastdebug