jdk/make/Import.gmk
changeset 21805 c7d7946239de
parent 21133 dcec14b84950
child 23355 87227bf950ef
equal deleted inserted replaced
21804:07b686da11c4 21805:c7d7946239de
       
     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) $< > $@.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)