1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21 # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
22 # Copyright (c) 2012-2013, Joyent, Inc. All rights reserved.
23 #
24
25 VER = openssl-1.0.1d
26 LIBVER = 1.0.0
27
28 include ../Makefile.defs
29
30 SHELL = /bin/bash
31 BUILD64 = yes
32 UNPACK_SENTINEL = Configure
33 AUTOCONF_OUT = crypto/opensslconf.h
34
35 MT_CPPFLAGS = -D_REENTRANT
36 SHARED_CFLAGS = -fPIC -DPIC
37 SHARED_LDFLAGS = -fPIC -shared
38
39 PKCS11_SRCS = \
40 hw_pk11_err.c \
41 hw_pk11_err.h \
42 hw_pk11_pub.c \
43 hw_pk11_uri.c \
44 hw_pk11_uri.h \
45 hw_pk11.c \
46 hw_pk11.h
47
48 PKCS11_DST.32 = $(VER.32)/crypto/engine
49 PKCS11_DST.64 = $(VER.64)/crypto/engine
50
51 PKCS11.32 = $(PKCS11_SRCS:%=$(PKCS11_DST.32)/%)
52 PKCS11.64 = $(PKCS11_SRCS:%=$(PKCS11_DST.64)/%)
53
54 CHECK_LIBS = \
55 $(VER.32)/libsunw_crypto.so.$(LIBVER) \
56 $(VER.32)/libsunw_ssl.so.$(LIBVER) \
57 $(VER.64)/libsunw_crypto.so.$(LIBVER) \
58 $(VER.64)/libsunw_ssl.so.$(LIBVER)
59
60 #
61 # There are races between the building of assembly language sources and
62 # the assembly of those files. Disable parallel build.
63 #
64 PARALLEL =
65
66 CPPFLAGS += \
67 -DSOLARIS_OPENSSL \
68 -DNO_WINDOWS_BRAINDEATH \
69 -include openssl/sunw_prefix.h
70
71 CFLAGS += \
72 -O3 \
73 -march=pentium \
74 -Wall \
75 -Werror \
76 -DPK11_LIB_LOCATION=\\"/usr/lib/libpkcs11.so.1\\"
77
78 CFLAGS.64 += \
79 -O3 \
80 -Wall \
81 -Werror \
82 -DPK11_LIB_LOCATION=\\"/usr/lib/64/libpkcs11.so.1\\"
83
84 LIBS += -lsocket -lnsl
85
86 PATCHES = Patches/*
87
88 AUTOCONF_ENV =
89 AUTOCONF_OPTS += \
90 --openssldir=/etc/openssl \
91 --install_prefix=$(DESTDIR) \
92 no-ec \
93 no-ecdh \
94 no-ecdsa \
95 no-rc3 \
96 no-rc5 \
97 no-mdc2 \
98 no-idea \
99 no-hw_4758_cca \
100 no-hw_aep \
101 no-hw_atalla \
102 no-hw_chil \
103 no-hw_gmp \
104 no-hw_ncipher \
105 no-hw_nuron \
106 no-hw_padlock \
107 no-hw_sureware \
108 no-hw_ubsec \
109 no-hw_cswift \
110 enable-md2 \
111 threads \
112 shared
113
114 AUTOCONF_OPTS.32 += \
115 smartos-x86-gcc
116
117 AUTOCONF_OPTS.64 += \
118 smartos64-x86_64-gcc
119
120 $(PKCS11_DST.32)/%: engine_pkcs11/%
121 cp $< $@
122
123 $(PKCS11_DST.64)/%: engine_pkcs11/%
124 cp $< $@
125
126 $(VER.32)/%: %
127 cp $< $@
128
129 $(VER.64)/%: %
130 cp $< $@
131
132 $(VER.32)/configure: $(VER.32)/Configure Makefile $(PKCS11.32) \
133 $(VER.32)/sunw_prefix.h
134 sed -e 's#@@CC@@#$(GCC)#g' \
135 -e 's#@@CPPFLAGS@@#$(CPPFLAGS)#g' \
136 -e 's#@@CFLAGS@@#$(CFLAGS)#g' \
137 -e 's#@@MT_CPPFLAGS@@#$(MT_CPPFLAGS)#g' \
138 -e 's#@@LDFLAGS@@#$(LDFLAGS)#g' \
139 -e 's#@@LIBS@@#$(LIBS)#g' \
140 -e 's#@@SHARED_CFLAGS@@#$(SHARED_CFLAGS)#g' \
141 -e 's#@@SHARED_LDFLAGS@@#$(SHARED_LDFLAGS)#g' < $< > $@
142 chmod +x $@
143
144 $(VER.64)/configure: $(VER.64)/Configure Makefile $(PKCS11.64) \
145 $(VER.64)/sunw_prefix.h
146 sed -e 's#@@CC@@#$(GCC.64)#g' \
147 -e 's#@@CPPFLAGS@@#$(CPPFLAGS)#g' \
148 -e 's#@@CFLAGS@@#$(CFLAGS.64)#g' \
149 -e 's#@@MT_CPPFLAGS@@#$(MT_CPPFLAGS)#g' \
150 -e 's#@@LDFLAGS@@#$(LDFLAGS.64)#g' \
151 -e 's#@@LIBS@@#$(LIBS)#g' \
152 -e 's#@@SHARED_CFLAGS@@#$(SHARED_CFLAGS)#g' \
153 -e 's#@@SHARED_LDFLAGS@@#$(SHARED_LDFLAGS)#g' < $< > $@
154 chmod +x $@
155
156 all: all_autoconf
157
158 check: $(CHECK_LIBS:%=%.check)
159
160 %.check: %
161 syms="$$(/usr/bin/nm -ph $< | \
162 awk '$$2 == T && $$3 != _init && $$3 != _fini { print $$3 }' | \
163 grep -v ^sunw_)"; \
164 if [[ -n "$$syms" ]]; then \
165 echo "Unprefixed symbols found in $<: $$syms"; \
166 exit 1; \
167 else \
168 touch $@; \
169 fi
170
171 $(CHECK_LIBS): all
172
173 install_32: all check
174 DESTDIR=$(DESTDIR) VERDIR=$(VER.32) LIBVER=$(LIBVER) \
175 ksh93 ./install-sfw
176
177 install_64: all check
178 DESTDIR=$(DESTDIR) VERDIR=$(VER.64) LIBVER=$(LIBVER) \
179 ksh93 ./install-sfw-64
180
181 install: install_32 install_64
182
183 include ../Makefile.targ