1 # 2 # Copyright (c) 2011, 2020, 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 LIBJAAS_MAPFILE := 27 ifneq ($(OPENJDK_TARGET_OS), solaris) 28 LIBJAAS_EXCLUDE_FILES := Solaris.c 29 else 30 # only on solaris...wonder why 31 LIBJAAS_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjaas/mapfile-vers 32 endif 33 34 LIBJAAS_NAME := jaas_unix 35 ifeq ($(OPENJDK_TARGET_OS), windows) 36 LIBJAAS_NAME := jaas_nt 37 endif 38 39 $(eval $(call SetupNativeCompilation,BUILD_LIBJAAS, \ 40 LIBRARY := $(LIBJAAS_NAME), \ 41 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 42 SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/security/auth/module, \ 43 LANG := C, \ 44 OPTIMIZATION := LOW, \ 45 CFLAGS := $(CFLAGS_JDKLIB), \ 46 MAPFILE := $(LIBJAAS_MAPFILE), \ 47 LDFLAGS := $(filter-out -ljava, $(LDFLAGS_JDKLIB)) \ 48 $(call SET_SHARED_LIBRARY_ORIGIN), \ 49 LDFLAGS_windows := netapi32.lib user32.lib mpr.lib advapi32.lib, \ 50 LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \ 51 LDFLAGS_SUFFIX_solaris := -lc, \ 52 EXCLUDE_FILES := $(LIBJAAS_EXCLUDE_FILES), \ 53 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 54 RC_FLAGS := $(RC_FLAGS) \ 55 -D "JDK_FNAME=$(LIBJAAS_NAME).dll" \ 56 -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \ 57 -D "JDK_FTYPE=0x2L", \ 58 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjaas, \ 59 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 60 61 $(BUILD_LIBJAAS): $(BUILD_LIBJAVA) 62 63 BUILD_LIBRARIES += $(BUILD_LIBJAAS) 64 65 ########################################################################################## 66 67 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \ 68 LIBRARY := j2pcsc, \ 69 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 70 SRC := $(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \ 71 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio, \ 72 LANG := C, \ 73 CFLAGS_posix := -D__sun_jdk, \ 74 OPTIMIZATION := LOW, \ 75 CFLAGS := $(CFLAGS_JDKLIB) \ 76 -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \ 77 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio \ 78 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE, \ 79 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pcsc/mapfile-vers, \ 80 LDFLAGS := $(LDFLAGS_JDKLIB) \ 81 $(call SET_SHARED_LIBRARY_ORIGIN), \ 82 LDFLAGS_SUFFIX_posix := $(LIBDL), \ 83 LDFLAGS_SUFFIX_windows := winscard.lib, \ 84 LDFLAGS_SUFFIX_solaris := -lc, \ 85 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 86 RC_FLAGS := $(RC_FLAGS) \ 87 -D "JDK_FNAME=j2pcsc.dll" \ 88 -D "JDK_INTERNAL_NAME=j2pcsc" \ 89 -D "JDK_FTYPE=0x2L", \ 90 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pcsc, \ 91 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 92 93 BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC) 94 95 ########################################################################################## 96 97 ifneq ($(OPENJDK_TARGET_OS), windows) 98 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS, \ 99 LIBRARY := j2gss, \ 100 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 101 SRC := $(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \ 102 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper, \ 103 LANG := C, \ 104 OPTIMIZATION := LOW, \ 105 CFLAGS := $(CFLAGS_JDKLIB) \ 106 -I$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \ 107 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper, \ 108 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2gss/mapfile-vers, \ 109 LDFLAGS := $(LDFLAGS_JDKLIB) \ 110 $(call SET_SHARED_LIBRARY_ORIGIN), \ 111 LDFLAGS_SUFFIX := $(LIBDL), \ 112 LDFLAGS_SUFFIX_solaris := -lc, \ 113 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2gss, \ 114 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 115 116 BUILD_LIBRARIES += $(BUILD_LIBJ2GSS) 117 endif 118 119 ########################################################################################## 120 121 ifneq ($(BUILD_CRYPTO), no) 122 BUILD_LIBKRB5_NAME := 123 ifeq ($(OPENJDK_TARGET_OS), windows) 124 BUILD_LIBKRB5_NAME := w2k_lsa_auth 125 BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5 126 BUILD_LIBKRB5_LIBS := advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \ 127 gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \ 128 ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib 129 else ifeq ($(OPENJDK_TARGET_OS), macosx) 130 BUILD_LIBKRB5_NAME := osxkrb5 131 BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/share/native/sun/security/krb5 132 BUILD_LIBKRB5_LIBS := -framework Kerberos 133 endif 134 135 ifneq ($(BUILD_LIBKRB5_NAME), ) 136 # libosxkrb5 needs to call deprecated krb5 APIs so that java 137 # can use the native credentials cache. 138 $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5, \ 139 LIBRARY := $(BUILD_LIBKRB5_NAME), \ 140 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 141 SRC := $(BUILD_LIBKRB5_SRC), \ 142 LANG := C, \ 143 OPTIMIZATION := LOW, \ 144 CFLAGS := $(CFLAGS_JDKLIB) \ 145 -I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \ 146 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5, \ 147 LDFLAGS := $(LDFLAGS_JDKLIB) \ 148 $(call SET_SHARED_LIBRARY_ORIGIN), \ 149 LDFLAGS_SUFFIX := $(BUILD_LIBKRB5_LIBS), \ 150 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 151 RC_FLAGS := $(RC_FLAGS) \ 152 -D "JDK_FNAME=$(BUILD_LIBKRB5_NAME).dll" \ 153 -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \ 154 -D "JDK_FTYPE=0x2L", \ 155 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkrb5, \ 156 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 157 158 BUILD_LIBRARIES += $(BUILD_LIBKRB5) 159 endif 160 endif 161 162 ########################################################################################## 163 164 ifeq ($(OPENJDK_TARGET_OS), windows) 165 166 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \ 167 LIBRARY := sunmscapi, \ 168 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 169 SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ 170 LANG := C++, \ 171 OPTIMIZATION := LOW, \ 172 CFLAGS := $(CFLAGS_JDKLIB) \ 173 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ 174 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 175 $(call SET_SHARED_LIBRARY_ORIGIN), \ 176 LDFLAGS_SUFFIX := Crypt32.Lib advapi32.lib ncrypt.lib, \ 177 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 178 RC_FLAGS := $(RC_FLAGS) \ 179 -D "JDK_FNAME=sunmscapi.dll" \ 180 -D "JDK_INTERNAL_NAME=sunmscapi" \ 181 -D "JDK_FTYPE=0x2L", \ 182 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunmscapi, \ 183 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 184 185 BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI) 186 endif 187 188 ########################################################################################## 189 190 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \ 191 LIBRARY := j2pkcs11, \ 192 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 193 SRC := $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ 194 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ 195 $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ 196 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ 197 LANG := C, \ 198 OPTIMIZATION := LOW, \ 199 CFLAGS := $(CFLAGS_JDKLIB) \ 200 -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ 201 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ 202 -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ 203 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ 204 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pkcs11/mapfile-vers, \ 205 LDFLAGS := $(LDFLAGS_JDKLIB) \ 206 $(call SET_SHARED_LIBRARY_ORIGIN), \ 207 LDFLAGS_SUFFIX_posix := $(LIBDL), \ 208 LDFLAGS_SUFFIX_solaris := -lc, \ 209 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 210 RC_FLAGS := $(RC_FLAGS) \ 211 -D "JDK_FNAME=j2pkcs11.dll" \ 212 -D "JDK_INTERNAL_NAME=j2pkcs11" \ 213 -D "JDK_FTYPE=0x2L", \ 214 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pkcs11, \ 215 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 216 217 BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11) 218 219 ########################################################################################## 220 221 ifeq ($(ENABLE_INTREE_EC), yes) 222 223 BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \ 224 -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl 225 226 # 227 # On sol-sparc...all libraries are compiled with -xregs=no%appl 228 # (set in CFLAGS_REQUIRED_sparc) 229 # 230 # except!!! libsunec.so 231 # 232 ECC_JNI_SOLSPARC_FILTER := 233 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) 234 ECC_JNI_SOLSPARC_FILTER := -xregs=no%appl 235 endif 236 237 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \ 238 LIBRARY := sunec, \ 239 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 240 SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec \ 241 $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \ 242 LANG := C++, \ 243 OPTIMIZATION := LOW, \ 244 CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \ 245 $(BUILD_LIBSUNEC_FLAGS) \ 246 -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \ 247 CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \ 248 $(BUILD_LIBSUNEC_FLAGS), \ 249 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsunec/mapfile-vers, \ 250 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \ 251 LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \ 252 LDFLAGS_SUFFIX := $(LIBCXX), \ 253 LDFLAGS_SUFFIX_linux := -lc, \ 254 LDFLAGS_SUFFIX_solaris := -lc, \ 255 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 256 RC_FLAGS := $(RC_FLAGS) \ 257 -D "JDK_FNAME=sunec.dll" \ 258 -D "JDK_INTERNAL_NAME=sunec" \ 259 -D "JDK_FTYPE=0x2L", \ 260 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunec, \ 261 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 262 263 BUILD_LIBRARIES += $(BUILD_LIBSUNEC) 264 endif 265 266 ########################################################################################## 267 268 ifeq ($(OPENJDK_TARGET_OS), solaris) 269 ifndef OPENJDK 270 271 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO, \ 272 LIBRARY := j2ucrypto, \ 273 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 274 SRC := $(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ 275 LANG := C, \ 276 OPTIMIZATION := LOW, \ 277 CFLAGS := $(CFLAGS_JDKLIB) \ 278 -I$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ 279 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2ucrypto/mapfile-vers, \ 280 LDFLAGS := $(LDFLAGS_JDKLIB), \ 281 LDFLAGS_SUFFIX := $(LIBDL), \ 282 LDFLAGS_SUFFIX_solaris := -lc, \ 283 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2ucrypto, \ 284 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 285 286 $(BUILD_LIBJ2UCRYPTO): $(BUILD_LIBJAVA) 287 288 BUILD_LIBRARIES += $(BUILD_LIBJ2UCRYPTO) 289 290 endif 291 endif