1 # 2 # Copyright (c) 2012, 2013, 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 $(eval $(call CopyDir,HOTSPOT0, $(HOTSPOT_LIB_DIR), $(INSTALL_LIBRARIES_HERE), $(HOTSPOT_IMPORT_FILES))) 120 $(eval $(call CopyDir,HOTSPOT1, $(HOTSPOT_DIST)/lib, $(JDK_OUTPUTDIR)/lib, $(HOTSPOT_IMPORT_FILES))) 121 122 ifeq ($(OPENJDK_TARGET_OS), macosx) 123 JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig$(SHARED_LIBRARY_SUFFIX).dSYM) \ 124 $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) 125 else 126 JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.debuginfo) \ 127 $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) 128 endif 129 130 ifneq ($(OPENJDK_TARGET_OS), windows) 131 ifeq ($(JVM_VARIANT_SERVER), true) 132 IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) 133 ifneq (, $(JSIG_DEBUGINFO)) 134 IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/server/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) 135 endif 136 endif 137 ifeq ($(JVM_VARIANT_CLIENT), true) 138 IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) 139 ifneq (, $(JSIG_DEBUGINFO)) 140 IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/client/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) 141 endif 142 endif 143 ifneq ($(OPENJDK_TARGET_OS), macosx) 144 ifeq ($(JVM_VARIANT_MINIMAL1), true) 145 IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) 146 ifneq (,$(JSIG_DEBUGINFO)) 147 IMPORT_TARGET_FILES += $(INSTALL_LIBRARIES_HERE)/minimal/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) 148 endif 149 endif 150 endif 151 endif 152 153 $(INSTALL_LIBRARIES_HERE)/server/%$(SHARED_LIBRARY_SUFFIX): $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) 154 $(MKDIR) -p $(@D) 155 $(RM) $@ 156 $(LN) -s ../$(@F) $@ 157 158 ifeq ($(OPENJDK_TARGET_OS), macosx) 159 $(INSTALL_LIBRARIES_HERE)/server/%.dSYM : $(INSTALL_LIBRARIES_HERE)/%.dSYM 160 $(MKDIR) -p $(@D) 161 $(RM) $@ 162 $(LN) -s ../$(@F) $@ 163 164 $(INSTALL_LIBRARIES_HERE)/server/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz 165 $(MKDIR) -p $(@D) 166 $(RM) $@ 167 $(RM) $@.tmp $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM 168 $(LN) -s ../$(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM 169 $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM 170 $(RM) $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM 171 $(MV) $@.tmp $@ 172 else 173 $(INSTALL_LIBRARIES_HERE)/server/%.debuginfo: $(INSTALL_LIBRARIES_HERE)/%.debuginfo 174 $(MKDIR) -p $(@D) 175 $(RM) $@ 176 $(LN) -s ../$(@F) $@ 177 178 $(INSTALL_LIBRARIES_HERE)/server/%.diz: $(INSTALL_LIBRARIES_HERE)/%.diz 179 $(MKDIR) -p $(@D) 180 $(RM) $@ 181 $(RM) $@.tmp $(basename $@).debuginfo 182 $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo 183 $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo 184 $(RM) $(basename $@).debuginfo 185 $(MV) $@.tmp $@ 186 endif 187 188 $(INSTALL_LIBRARIES_HERE)/client/%$(SHARED_LIBRARY_SUFFIX): $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) 189 $(MKDIR) -p $(@D) 190 $(RM) $@ 191 $(LN) -s ../$(@F) $@ 192 193 ifeq ($(OPENJDK_TARGET_OS), macosx) 194 $(INSTALL_LIBRARIES_HERE)/client/%.dSYM : $(INSTALL_LIBRARIES_HERE)/%.dSYM 195 $(MKDIR) -p $(@D) 196 $(RM) $@ 197 $(LN) -s ../$(@F) $@ 198 199 $(INSTALL_LIBRARIES_HERE)/client/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz 200 $(MKDIR) -p $(@D) 201 $(RM) $@ 202 $(RM) $@.tmp $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM 203 $(LN) -s ../$(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM 204 $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F))$(SHARED_LIBRARY_SUFFIX).dSYM 205 $(RM) $(basename $@)$(SHARED_LIBRARY_SUFFIX).dSYM 206 $(MV) $@.tmp $@ 207 else 208 $(INSTALL_LIBRARIES_HERE)/client/%.debuginfo: $(INSTALL_LIBRARIES_HERE)/%.debuginfo 209 $(MKDIR) -p $(@D) 210 $(RM) $@ 211 $(LN) -s ../$(@F) $@ 212 213 $(INSTALL_LIBRARIES_HERE)/client/%.diz: $(INSTALL_LIBRARIES_HERE)/%.diz 214 $(MKDIR) -p $(@D) 215 $(RM) $@ 216 $(RM) $@.tmp $(basename $@).debuginfo 217 $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo 218 $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo 219 $(RM) $(basename $@).debuginfo 220 $(MV) $@.tmp $@ 221 endif 222 223 $(INSTALL_LIBRARIES_HERE)/minimal/%$(SHARED_LIBRARY_SUFFIX): $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) 224 $(MKDIR) -p $(@D) 225 $(RM) $@ 226 $(LN) -s ../$(@F) $@ 227 228 ifneq ($(OPENJDK_TARGET_OS), macosx) 229 $(INSTALL_LIBRARIES_HERE)/minimal/%.debuginfo: $(INSTALL_LIBRARIES_HERE)/%.debuginfo 230 $(MKDIR) -p $(@D) 231 $(RM) $@ 232 $(LN) -s ../$(@F) $@ 233 234 $(INSTALL_LIBRARIES_HERE)/minimal/%.diz: $(INSTALL_LIBRARIES_HERE)/%.diz 235 $(MKDIR) -p $(@D) 236 $(RM) $@ 237 $(RM) $@.tmp $(basename $@).debuginfo 238 $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo 239 $(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo 240 $(RM) $(basename $@).debuginfo 241 $(MV) $@.tmp $@ 242 endif 243 244 ########################################################################################## 245 # Unpack the binary distributions of the crypto classes if they exist. 246 SEC_FILES_ZIP := $(JDK_TOPDIR)/make/tools/crypto/sec-bin.zip 247 SEC_FILES_WIN_ZIP := $(JDK_TOPDIR)/make/tools/crypto/sec-windows-bin.zip 248 JGSS_WIN32_FILES_ZIP := $(JDK_TOPDIR)/make/tools/crypto/jgss-windows-i586-bin.zip 249 JGSS_WIN64_FILES_ZIP := $(JDK_TOPDIR)/make/tools/crypto/jgss-windows-x64-bin.zip 250 251 define unzip-sec-file 252 $(ECHO) Unzipping $(<F) 253 $(MKDIR) -p $(@D) 254 $(RM) $@ 255 ($(CD) $(JDK_OUTPUTDIR) && $(UNZIP) -q -o $< > $@.tmp) 256 $(MV) $@.tmp $@ 257 endef 258 259 $(JDK_OUTPUTDIR)/classes/_the.sec-bin.unzipped: $(SEC_FILES_ZIP) 260 $(call unzip-sec-file) 261 262 $(JDK_OUTPUTDIR)/classes/_the.sec-windows-bin.unzipped: $(SEC_FILES_WIN_ZIP) 263 $(call unzip-sec-file) 264 265 $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-i586-bin.unzipped: $(JGSS_WIN32_FILES_ZIP) 266 $(call unzip-sec-file) 267 268 $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-x64-bin.unzipped: $(JGSS_WIN64_FILES_ZIP) 269 $(call unzip-sec-file) 270 271 ifneq ($(wildcard $(SEC_FILES_ZIP)), ) 272 IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.sec-bin.unzipped 273 ifeq ($(OPENJDK_TARGET_OS), windows) 274 IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.sec-windows-bin.unzipped 275 ifeq ($(OPENJDK_TARGET_CPU), x86) 276 IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-i586-bin.unzipped 277 endif 278 ifeq ($(OPENJDK_TARGET_CPU), x86_64) 279 IMPORT_TARGET_FILES += $(JDK_OUTPUTDIR)/classes/_the.jgss-windows-x64-bin.unzipped 280 endif 281 endif 282 endif 283 284 ########################################################################################## 285 286 all: $(IMPORT_TARGET_FILES)