1 #
   2 # Copyright (c) 2013, 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 include JavaCompilation.gmk
  31 
  32 ##########################################################################################
  33 # Create manifest for security jars
  34 #
  35 # Include these extra attributes for now, should probably take out.
  36 #
  37 MAINMANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf
  38 JCE_MANIFEST := $(JDK_OUTPUTDIR)/jce/unsigned/_the.security.manifest.mf
  39 
  40 $(JCE_MANIFEST): $(MAINMANIFEST)
  41         $(MKDIR) -p $(@D)
  42         $(RM) $@ $@.tmp
  43         $(SED) -e "s#@@RELEASE@@#$(JDK_VERSION)#" \
  44             -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
  45             $(MAINMANIFEST) >> $@.tmp
  46         $(ECHO) "Extension-Name: javax.crypto" >> $@.tmp
  47         $(ECHO) "Implementation-Vendor-Id: com.sun" >> $@.tmp
  48         $(ECHO) "Release-Version: $(RELEASE)" >> $@.tmp
  49         $(MV) $@.tmp $@
  50 
  51 ##########################################################################################
  52 # For crypto jars, always build the jar.
  53 #
  54 # The source for the crypto jars is not available for all licensees.
  55 # The BUILD_CRYPTO variable is set to no if these jars can't be built
  56 # to skip that step of the build.
  57 
  58 SUNPKCS11_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunpkcs11.jar
  59 SUNPKCS11_JAR_UNSIGNED := $(JDK_OUTPUTDIR)/jce/unsigned/sunpkcs11.jar
  60 
  61 $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR, , \
  62     SRCS := $(JDK_OUTPUTDIR)/modules/jdk.crypto.pkcs11, \
  63     SUFFIXES := .class, \
  64     INCLUDES := sun/security/pkcs11, \
  65     JAR := $(SUNPKCS11_JAR_UNSIGNED), \
  66     MANIFEST := $(JCE_MANIFEST), \
  67     SKIP_METAINF := true))
  68 
  69 $(SUNPKCS11_JAR_UNSIGNED): $(JCE_MANIFEST)
  70 
  71 $(SUNPKCS11_JAR_DST): $(SUNPKCS11_JAR_UNSIGNED)
  72         $(install-file)
  73 
  74 TARGETS += $(SUNPKCS11_JAR_UNSIGNED) $(SUNPKCS11_JAR_DST)
  75 
  76 ##########################################################################################
  77 
  78 SUNEC_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunec.jar
  79 SUNEC_JAR_UNSIGNED := $(JDK_OUTPUTDIR)/jce/unsigned/sunec.jar
  80 
  81 $(eval $(call SetupArchive,BUILD_SUNEC_JAR, , \
  82     SRCS := $(JDK_OUTPUTDIR)/modules/jdk.crypto.ec, \
  83     SUFFIXES := .class, \
  84     INCLUDES := sun/security/ec, \
  85     JAR := $(SUNEC_JAR_UNSIGNED), \
  86     MANIFEST := $(JCE_MANIFEST), \
  87     SKIP_METAINF := true))
  88 
  89 $(SUNEC_JAR_UNSIGNED): $(JCE_MANIFEST)
  90 
  91 $(SUNEC_JAR_DST): $(SUNEC_JAR_UNSIGNED)
  92         $(install-file)
  93 
  94 TARGETS += $(SUNEC_JAR_UNSIGNED) $(SUNEC_JAR_DST)
  95 
  96 ##########################################################################################
  97 
  98 SUNJCE_PROVIDER_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunjce_provider.jar
  99 SUNJCE_PROVIDER_JAR_UNSIGNED := \
 100     $(JDK_OUTPUTDIR)/jce/unsigned/sunjce_provider.jar
 101 
 102 ifneq ($(BUILD_CRYPTO), no)
 103   $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR, , \
 104       SRCS := $(JDK_OUTPUTDIR)/modules/java.base, \
 105       SUFFIXES := .class, \
 106       INCLUDES := com/sun/crypto/provider, \
 107       JAR := $(SUNJCE_PROVIDER_JAR_UNSIGNED), \
 108       MANIFEST := $(JCE_MANIFEST), \
 109       SKIP_METAINF := true))
 110 
 111   $(SUNJCE_PROVIDER_JAR_UNSIGNED): $(JCE_MANIFEST)
 112 
 113   TARGETS += $(SUNJCE_PROVIDER_JAR_UNSIGNED)
 114 endif
 115 
 116 $(SUNJCE_PROVIDER_JAR_DST): $(SUNJCE_PROVIDER_JAR_UNSIGNED)
 117         $(install-file)
 118 
 119 TARGETS += $(SUNJCE_PROVIDER_JAR_DST)
 120 
 121 ##########################################################################################
 122 
 123 JCE_JAR_DST := $(JDK_OUTPUTDIR)/lib/jce.jar
 124 JCE_JAR_UNSIGNED := $(JDK_OUTPUTDIR)/jce/unsigned/jce.jar
 125 
 126 ifneq ($(BUILD_CRYPTO), no)
 127   $(eval $(call SetupArchive,BUILD_JCE_JAR, , \
 128       SRCS := $(JDK_OUTPUTDIR)/modules/java.base, \
 129       SUFFIXES := .class, \
 130       INCLUDES := javax/crypto sun/security/internal, \
 131       JAR := $(JCE_JAR_UNSIGNED), \
 132       MANIFEST := $(JCE_MANIFEST), \
 133       SKIP_METAINF := true))
 134 
 135   $(JCE_JAR_UNSIGNED): $(JCE_MANIFEST)
 136 
 137   TARGETS += $(JCE_JAR_UNSIGNED)
 138 endif
 139 
 140 $(JCE_JAR_DST): $(JCE_JAR_UNSIGNED)
 141         $(install-file)
 142 
 143 TARGETS += $(JCE_JAR_DST)
 144 
 145 ##########################################################################################
 146 
 147 ifeq ($(OPENJDK_TARGET_OS), windows)
 148 
 149   SUNMSCAPI_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunmscapi.jar
 150   SUNMSCAPI_JAR_UNSIGNED := $(JDK_OUTPUTDIR)/jce/unsigned/sunmscapi.jar
 151 
 152   $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR, , \
 153       SRCS := $(JDK_OUTPUTDIR)/modules/jdk.crypto.mscapi, \
 154       SUFFIXES := .class, \
 155       INCLUDES := sun/security/mscapi, \
 156       JAR := $(SUNMSCAPI_JAR_UNSIGNED), \
 157       MANIFEST := $(JCE_MANIFEST), \
 158       SKIP_METAINF := true))
 159 
 160   $(SUNMSCAPI_JAR_UNSIGNED): $(JCE_MANIFEST)
 161 
 162   $(SUNMSCAPI_JAR_DST): $(SUNMSCAPI_JAR_UNSIGNED)
 163         $(install-file)
 164 
 165   TARGETS += $(SUNMSCAPI_JAR_UNSIGNED) $(SUNMSCAPI_JAR_DST)
 166 
 167 endif
 168 
 169 ##########################################################################################
 170 
 171 ifeq ($(OPENJDK_TARGET_OS), solaris)
 172   ifndef OPENJDK
 173 
 174     UCRYPTO_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/ucrypto.jar
 175     UCRYPTO_JAR_UNSIGNED := $(JDK_OUTPUTDIR)/jce/unsigned/ucrypto.jar
 176 
 177     $(eval $(call SetupArchive,BUILD_UCRYPTO_JAR, , \
 178         SRCS := $(JDK_OUTPUTDIR)/modules/jdk.crypto.ucrypto, \
 179         SUFFIXES := .class, \
 180         INCLUDES := com/oracle/security/ucrypto, \
 181         JAR := $(UCRYPTO_JAR_UNSIGNED), \
 182         MANIFEST := $(JCE_MANIFEST), \
 183         SKIP_METAINF := true))
 184 
 185     $(UCRYPTO_JAR_UNSIGNED): $(JCE_MANIFEST)
 186 
 187     $(UCRYPTO_JAR_DST): $(UCRYPTO_JAR_UNSIGNED)
 188         $(install-file)
 189 
 190     TARGETS += $(UCRYPTO_JAR_UNSIGNED) $(UCRYPTO_JAR_DST)
 191 
 192   endif
 193 endif
 194 
 195 all: $(TARGETS)
 196 
 197 .PHONY: default all