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 $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5, \ 137 LIBRARY := $(BUILD_LIBKRB5_NAME), \ 138 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 139 SRC := $(BUILD_LIBKRB5_SRC), \ 140 LANG := C, \ 141 OPTIMIZATION := LOW, \ 142 CFLAGS := $(CFLAGS_JDKLIB) \ 143 -I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \ 144 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5, \ 145 LDFLAGS := $(LDFLAGS_JDKLIB) \ 146 $(call SET_SHARED_LIBRARY_ORIGIN), \ 147 LDFLAGS_SUFFIX := $(BUILD_LIBKRB5_LIBS), \ 148 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 149 RC_FLAGS := $(RC_FLAGS) \ 150 -D "JDK_FNAME=$(BUILD_LIBKRB5_NAME).dll" \ 151 -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \ 152 -D "JDK_FTYPE=0x2L", \ 153 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkrb5, \ 154 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 155 156 BUILD_LIBRARIES += $(BUILD_LIBKRB5) 157 endif 158 endif 159 160 ########################################################################################## 161 162 ifeq ($(OPENJDK_TARGET_OS), windows) 163 164 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \ 165 LIBRARY := sunmscapi, \ 166 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 167 SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ 168 LANG := C++, \ 169 OPTIMIZATION := LOW, \ 170 CFLAGS := $(CFLAGS_JDKLIB) \ 171 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ 172 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 173 $(call SET_SHARED_LIBRARY_ORIGIN), \ 174 LDFLAGS_SUFFIX := Crypt32.Lib advapi32.lib ncrypt.lib, \ 175 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 176 RC_FLAGS := $(RC_FLAGS) \ 177 -D "JDK_FNAME=sunmscapi.dll" \ 178 -D "JDK_INTERNAL_NAME=sunmscapi" \ 179 -D "JDK_FTYPE=0x2L", \ 180 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunmscapi, \ 181 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 182 183 BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI) 184 endif 185 186 ########################################################################################## 187 188 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \ 189 LIBRARY := j2pkcs11, \ 190 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 191 SRC := $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ 192 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ 193 $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ 194 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ 195 LANG := C, \ 196 OPTIMIZATION := LOW, \ 197 CFLAGS := $(CFLAGS_JDKLIB) \ 198 -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ 199 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ 200 -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ 201 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ 202 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pkcs11/mapfile-vers, \ 203 LDFLAGS := $(LDFLAGS_JDKLIB) \ 204 $(call SET_SHARED_LIBRARY_ORIGIN), \ 205 LDFLAGS_SUFFIX_posix := $(LIBDL), \ 206 LDFLAGS_SUFFIX_solaris := -lc, \ 207 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 208 RC_FLAGS := $(RC_FLAGS) \ 209 -D "JDK_FNAME=j2pkcs11.dll" \ 210 -D "JDK_INTERNAL_NAME=j2pkcs11" \ 211 -D "JDK_FTYPE=0x2L", \ 212 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pkcs11, \ 213 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 214 215 BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11) 216 217 ########################################################################################## 218 219 ifeq ($(ENABLE_INTREE_EC), yes) 220 221 BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \ 222 -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl 223 224 # 225 # On sol-sparc...all libraries are compiled with -xregs=no%appl 226 # (set in CFLAGS_REQUIRED_sparc) 227 # 228 # except!!! libsunec.so 229 # 230 ECC_JNI_SOLSPARC_FILTER := 231 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) 232 ECC_JNI_SOLSPARC_FILTER := -xregs=no%appl 233 endif 234 235 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \ 236 LIBRARY := sunec, \ 237 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 238 SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec \ 239 $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \ 240 LANG := C++, \ 241 OPTIMIZATION := LOW, \ 242 CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \ 243 $(BUILD_LIBSUNEC_FLAGS) \ 244 -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \ 245 CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \ 246 $(BUILD_LIBSUNEC_FLAGS), \ 247 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsunec/mapfile-vers, \ 248 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \ 249 LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \ 250 LDFLAGS_SUFFIX := $(LIBCXX), \ 251 LDFLAGS_SUFFIX_linux := -lc, \ 252 LDFLAGS_SUFFIX_solaris := -lc, \ 253 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 254 RC_FLAGS := $(RC_FLAGS) \ 255 -D "JDK_FNAME=sunec.dll" \ 256 -D "JDK_INTERNAL_NAME=sunec" \ 257 -D "JDK_FTYPE=0x2L", \ 258 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunec, \ 259 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 260 261 BUILD_LIBRARIES += $(BUILD_LIBSUNEC) 262 endif 263 264 ########################################################################################## 265 266 ifeq ($(OPENJDK_TARGET_OS), solaris) 267 ifndef OPENJDK 268 269 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO, \ 270 LIBRARY := j2ucrypto, \ 271 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 272 SRC := $(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ 273 LANG := C, \ 274 OPTIMIZATION := LOW, \ 275 CFLAGS := $(CFLAGS_JDKLIB) \ 276 -I$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ 277 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2ucrypto/mapfile-vers, \ 278 LDFLAGS := $(LDFLAGS_JDKLIB), \ 279 LDFLAGS_SUFFIX := $(LIBDL), \ 280 LDFLAGS_SUFFIX_solaris := -lc, \ 281 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2ucrypto, \ 282 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 283 284 $(BUILD_LIBJ2UCRYPTO): $(BUILD_LIBJAVA) 285 286 BUILD_LIBRARIES += $(BUILD_LIBJ2UCRYPTO) 287 288 endif 289 endif