1 #
   2 # Copyright (c) 2012, 2014, 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 default: all
  27 
  28 include $(SPEC)
  29 include MakeBase.gmk
  30 
  31 #######
  32 
  33 IMPORT_TARGET_FILES :=
  34 
  35 IMPORT_CLASSES := CORBA JAXP JAXWS LANGTOOLS
  36 IMPORT_SOURCES := CORBA JAXP JAXWS LANGTOOLS
  37 # Only Corba has binaries
  38 IMPORT_BINARIES := CORBA
  39 
  40 #######
  41 
  42 # Put the libraries here. Different locations for different target apis.
  43 ifeq ($(OPENJDK_TARGET_OS_API), posix)
  44   INSTALL_LIBRARIES_HERE := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
  45   HOTSPOT_LIB_DIR := $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)
  46 else
  47   INSTALL_LIBRARIES_HERE := $(JDK_OUTPUTDIR)/bin
  48   HOTSPOT_LIB_DIR := $(HOTSPOT_DIST)/jre/bin
  49 endif
  50 
  51 #######
  52 
  53 #
  54 # jar xf/unzip fails when executing them all in parallel
  55 # introduce artificial dependency (_DEP) buuhhh
  56 
  57 define ImportClasses
  58   $1_CLASSES_DEP := $$(IMPORT_TARGET_CLASSES)
  59   IMPORT_TARGET_CLASSES += $(JDK_OUTPUTDIR)/classes/_the.$1.classes.imported
  60 
  61   $(JDK_OUTPUTDIR)/classes/_the.$1.classes.imported: $$($1_DIST)/lib/classes.jar $$($1_CLASSES_DEP)
  62         $(ECHO) Importing $1 classes.jar
  63         $(MKDIR) -p $$(@D)
  64         $(RM) $$@ $$@.tmp
  65         ($(CD) $$(@D) && $(JAR) xvf $$< > $$@.tmp)
  66         $(MV) $$@.tmp $$@
  67 endef
  68 
  69 define ImportSources
  70   $1_SOURCES_DEP := $$(IMPORT_TARGET_SOURCES)
  71   IMPORT_TARGET_SOURCES += $(JDK_OUTPUTDIR)/impsrc/_the.$1.src.imported
  72 
  73   $(JDK_OUTPUTDIR)/impsrc/_the.$1.src.imported: $$($1_DIST)/lib/src.zip $$($1_SOURCES_DEP)
  74         $(ECHO) Importing $1 src.zip
  75         $(MKDIR) -p $$(@D)
  76         $(RM) $$@ $$@.tmp
  77         ($(CD) $$(@D) && $(JAR) xvf $$< > $$@.tmp)
  78         $(MV) $$@.tmp $$@
  79 endef
  80 
  81 define ImportBinaries
  82   $1_BINARIES_DEP := $$(IMPORT_TARGET_BINARIES)
  83   IMPORT_TARGET_BINARIES += $(JDK_OUTPUTDIR)/_the.$1.binaries.imported
  84 
  85   $(JDK_OUTPUTDIR)/_the.$1.binaries.imported: $$($1_DIST)/lib/bin.zip $$($1_BINARIES_DEP)
  86         $(ECHO) Importing $1 bin.zip
  87         $(MKDIR) -p $$(@D)
  88         $(RM) $$@ $$@.tmp
  89         ($(CD) $$(@D) && $(JAR) xvf $$< > $$@.tmp)
  90         $(MV) $$@.tmp $$@
  91 endef
  92 
  93 #######
  94 
  95 $(foreach I, $(IMPORT_CLASSES), $(eval $(call ImportClasses,$I)))
  96 $(foreach I, $(IMPORT_SOURCES), $(eval $(call ImportSources,$I)))
  97 $(foreach I, $(IMPORT_BINARIES), $(eval $(call ImportBinaries,$I)))
  98 
  99 IMPORT_TARGET_FILES += $(IMPORT_TARGET_CLASSES) $(IMPORT_TARGET_SOURCES) $(IMPORT_TARGET_BINARIES)
 100 
 101 #######
 102 
 103 define CopyDir
 104   $1_SRC_FILES := $(shell $(FIND) $2 -type f -a \( -name DUMMY $(addprefix -o$(SPACE)-name$(SPACE),$4) \))
 105   $1_DST_FILES := $$(patsubst $2/%,$3/%,$$($1_SRC_FILES))
 106   IMPORT_TARGET_FILES += $$($1_DST_FILES)
 107   $3/%: $2/%
 108         $(ECHO) $(LOG_INFO) Copying $$(@F)
 109         $$(install-file)
 110 endef
 111 
 112 #######
 113 
 114 #
 115 # Import hotspot
 116 #
 117 HOTSPOT_IMPORT_FILES := $(addprefix $(LIBRARY_PREFIX), jvm.* saproc.* jsig.* sawindbg.* jvm_db.* jvm_dtrace.*) \
 118     Xusage.txt sa-jdi.jar
 119 
 120 ifeq ($(OPENJDK_TARGET_OS), macosx)
 121     # additional debug file
 122     HOTSPOT_IMPORT_FILES += Info.plist
 123 endif
 124 
 125 $(eval $(call CopyDir,HOTSPOT0, $(HOTSPOT_LIB_DIR), $(INSTALL_LIBRARIES_HERE), $(HOTSPOT_IMPORT_FILES)))
 126 $(eval $(call CopyDir,HOTSPOT1, $(HOTSPOT_DIST)/lib, $(JDK_OUTPUTDIR)/lib, $(HOTSPOT_IMPORT_FILES)))
 127 
 128 ifeq ($(OPENJDK_TARGET_OS), macosx)
 129   JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig$(SHARED_LIBRARY_SUFFIX).dSYM) \
 130       $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) )
 131 else
 132   JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.debuginfo) \
 133       $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) )
 134 endif
 135 
 136 ifneq ($(OPENJDK_TARGET_OS), windows)
 137   ifeq ($(JVM_VARIANT_SERVER), true)
 138     IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX)
 139     ifneq (, $(JSIG_DEBUGINFO))
 140       IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/server/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I))
 141     endif
 142   endif
 143   ifeq ($(JVM_VARIANT_CLIENT), true)
 144     IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX)
 145     ifneq (, $(JSIG_DEBUGINFO))
 146       IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/client/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I))
 147     endif
 148   endif
 149   ifneq ($(OPENJDK_TARGET_OS), macosx)
 150     ifeq ($(JVM_VARIANT_MINIMAL1), true)
 151       IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX)
 152       ifneq (,$(JSIG_DEBUGINFO))
 153         IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/minimal/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I))
 154       endif
 155     endif
 156   endif
 157 endif
 158 
 159 $(INSTALL_LIBRARIES_HERE)/server/%$(SHARED_LIBRARY_SUFFIX): $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX)
 160         $(MKDIR) -p $(@D)
 161         $(RM) $@
 162         $(LN) -s ../$(@F) $@
 163 
 164 ifeq ($(OPENJDK_TARGET_OS), macosx)
 165   $(INSTALL_LIBRARIES_HERE)/server/%.dSYM : $(INSTALL_LIBRARIES_HERE)/%.dSYM
 166         $(MKDIR) -p $(@D)
 167         $(RM) $@
 168         $(LN) -s ../$(@F) $@
 169 
 170   $(INSTALL_LIBRARIES_HERE)/server/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz
 171         $(MKDIR) -p $(@D)
 172         $(RM) $@
 173         $(RM) $@.tmp $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM
 174         $(LN) -s ../$(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM
 175         $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM
 176         $(RM) $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM
 177         $(MV) $@.tmp $@
 178 else
 179   $(INSTALL_LIBRARIES_HERE)/server/%.debuginfo: $(INSTALL_LIBRARIES_HERE)/%.debuginfo
 180         $(MKDIR) -p $(@D)
 181         $(RM) $@
 182         $(LN) -s ../$(@F) $@
 183 
 184   $(INSTALL_LIBRARIES_HERE)/server/%.diz: $(INSTALL_LIBRARIES_HERE)/%.diz
 185         $(MKDIR) -p $(@D)
 186         $(RM) $@
 187         $(RM) $@.tmp $(basename $@).debuginfo
 188         $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo
 189         $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo
 190         $(RM) $(basename $@).debuginfo
 191         $(MV) $@.tmp $@
 192 endif
 193 
 194 $(INSTALL_LIBRARIES_HERE)/client/%$(SHARED_LIBRARY_SUFFIX): $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX)
 195         $(MKDIR) -p $(@D)
 196         $(RM) $@
 197         $(LN) -s ../$(@F) $@
 198 
 199 ifeq ($(OPENJDK_TARGET_OS), macosx)
 200   $(INSTALL_LIBRARIES_HERE)/client/%.dSYM : $(INSTALL_LIBRARIES_HERE)/%.dSYM
 201         $(MKDIR) -p $(@D)
 202         $(RM) $@
 203         $(LN) -s ../$(@F) $@
 204 
 205   $(INSTALL_LIBRARIES_HERE)/client/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz
 206         $(MKDIR) -p $(@D)
 207         $(RM) $@
 208         $(RM) $@.tmp $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM
 209         $(LN) -s ../$(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM
 210         $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM
 211         $(RM) $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM
 212         $(MV) $@.tmp $@
 213 else
 214   $(INSTALL_LIBRARIES_HERE)/client/%.debuginfo: $(INSTALL_LIBRARIES_HERE)/%.debuginfo
 215         $(MKDIR) -p $(@D)
 216         $(RM) $@
 217         $(LN) -s ../$(@F) $@
 218 
 219   $(INSTALL_LIBRARIES_HERE)/client/%.diz: $(INSTALL_LIBRARIES_HERE)/%.diz
 220         $(MKDIR) -p $(@D)
 221         $(RM) $@
 222         $(RM) $@.tmp $(basename $@).debuginfo
 223         $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo
 224         $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo
 225         $(RM) $(basename $@).debuginfo
 226         $(MV) $@.tmp $@
 227 endif
 228 
 229 $(INSTALL_LIBRARIES_HERE)/minimal/%$(SHARED_LIBRARY_SUFFIX): $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX)
 230         $(MKDIR) -p $(@D)
 231         $(RM) $@
 232         $(LN) -s ../$(@F) $@
 233 
 234 ifneq ($(OPENJDK_TARGET_OS), macosx)
 235   $(INSTALL_LIBRARIES_HERE)/minimal/%.debuginfo: $(INSTALL_LIBRARIES_HERE)/%.debuginfo
 236         $(MKDIR) -p $(@D)
 237         $(RM) $@
 238         $(LN) -s ../$(@F) $@
 239 
 240   $(INSTALL_LIBRARIES_HERE)/minimal/%.diz: $(INSTALL_LIBRARIES_HERE)/%.diz
 241         $(MKDIR) -p $(@D)
 242         $(RM) $@
 243         $(RM) $@.tmp $(basename $@).debuginfo
 244         $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo
 245         $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo
 246         $(RM) $(basename $@).debuginfo
 247         $(MV) $@.tmp $@
 248 endif
 249 
 250 ##########################################################################################
 251 # Unpack the binary distributions of the crypto classes if they exist.
 252 SEC_FILES_ZIP := $(JDK_TOPDIR)/make/tools/crypto/sec-bin.zip
 253 SEC_FILES_WIN_ZIP := $(JDK_TOPDIR)/make/tools/crypto/sec-windows-bin.zip
 254 JGSS_WIN32_FILES_ZIP := $(JDK_TOPDIR)/make/tools/crypto/jgss-windows-i586-bin.zip
 255 JGSS_WIN64_FILES_ZIP := $(JDK_TOPDIR)/make/tools/crypto/jgss-windows-x64-bin.zip
 256 
 257 define unzip-sec-file
 258         $(ECHO) Unzipping $(<F)
 259         $(MKDIR) -p $(@D)
 260         $(RM) $@
 261         ($(CD) $(JDK_OUTPUTDIR) && $(UNZIP) -q -o $< > $@.tmp)
 262         $(MV) $@.tmp $@
 263 endef
 264 
 265 $(JDK_OUTPUTDIR)/classes/_the.sec-bin.unzipped: $(SEC_FILES_ZIP)
 266         $(call unzip-sec-file)
 267 
 268 $(JDK_OUTPUTDIR)/classes/_the.sec-windows-bin.unzipped: $(SEC_FILES_WIN_ZIP)
 269         $(call unzip-sec-file)
 270 
 271 $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-i586-bin.unzipped: $(JGSS_WIN32_FILES_ZIP)
 272         $(call unzip-sec-file)
 273 
 274 $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-x64-bin.unzipped: $(JGSS_WIN64_FILES_ZIP)
 275         $(call unzip-sec-file)
 276 
 277 ifneq ($(wildcard $(SEC_FILES_ZIP)), )
 278   IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.sec-bin.unzipped
 279   ifeq ($(OPENJDK_TARGET_OS), windows)
 280     IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.sec-windows-bin.unzipped
 281     ifeq ($(OPENJDK_TARGET_CPU), x86)
 282       IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-i586-bin.unzipped
 283     endif
 284     ifeq ($(OPENJDK_TARGET_CPU), x86_64)
 285       IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-x64-bin.unzipped
 286     endif
 287   endif
 288 endif
 289 
 290 ##########################################################################################
 291 
 292 all: $(IMPORT_TARGET_FILES)