|
1 # |
|
2 # This Source Code Form is subject to the terms of the Mozilla Public |
|
3 # License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
5 |
|
6 ifeq ($(BUILD_SUN_PKG), 1) |
|
7 |
|
8 # set RPATH-type linker instructions here so they can be used in the shared |
|
9 # version and in the mixed (static nss libs/shared NSPR libs) version. |
|
10 |
|
11 ifeq ($(OS_ARCH), SunOS) |
|
12 ifeq ($(USE_64), 1) |
|
13 EXTRA_SHARED_LIBS += -R '$$ORIGIN/../lib:/usr/lib/mps/secv1/64:/usr/lib/mps/64' |
|
14 else |
|
15 EXTRA_SHARED_LIBS += -R '$$ORIGIN/../lib:/usr/lib/mps/secv1:/usr/lib/mps' |
|
16 endif |
|
17 endif |
|
18 |
|
19 ifeq ($(OS_ARCH), Linux) |
|
20 ifeq ($(USE_64), 1) |
|
21 EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib' |
|
22 else |
|
23 EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib' |
|
24 endif |
|
25 endif |
|
26 |
|
27 endif # BUILD_SUN_PKG |
|
28 |
|
29 ifdef NSS_DISABLE_DBM |
|
30 DBMLIB = $(NULL) |
|
31 else |
|
32 DBMLIB = $(DIST)/lib/$(LIB_PREFIX)dbm.$(LIB_SUFFIX) |
|
33 endif |
|
34 |
|
35 ifdef USE_STATIC_LIBS |
|
36 |
|
37 DEFINES += -DNSS_USE_STATIC_LIBS |
|
38 # $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS) |
|
39 ifndef NSS_USE_SYSTEM_FREEBL |
|
40 CRYPTOLIB=$(DIST)/lib/$(LIB_PREFIX)freebl.$(LIB_SUFFIX) |
|
41 SOFTOKENLIB=$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) |
|
42 else |
|
43 # Use the system installed freebl static library and set softoken one to empty. |
|
44 # Some tools need to link statically with freebl but none with softoken. Only |
|
45 # the softoken shared library, not the static one, is installed in the system. |
|
46 CRYPTOLIB=$(FREEBL_LIB_DIR)/$(LIB_PREFIX)freebl.$(LIB_SUFFIX) |
|
47 SOFTOKENLIB= |
|
48 EXTRA_SHARED_LIBS += \ |
|
49 -L$(SOFTOKEN_LIB_DIR) \ |
|
50 -lsoftokn3 \ |
|
51 $(NULL) |
|
52 endif |
|
53 |
|
54 PKIXLIB = \ |
|
55 $(DIST)/lib/$(LIB_PREFIX)pkixtop.$(LIB_SUFFIX) \ |
|
56 $(DIST)/lib/$(LIB_PREFIX)pkixutil.$(LIB_SUFFIX) \ |
|
57 $(DIST)/lib/$(LIB_PREFIX)pkixsystem.$(LIB_SUFFIX) \ |
|
58 $(DIST)/lib/$(LIB_PREFIX)pkixcrlsel.$(LIB_SUFFIX) \ |
|
59 $(DIST)/lib/$(LIB_PREFIX)pkixmodule.$(LIB_SUFFIX) \ |
|
60 $(DIST)/lib/$(LIB_PREFIX)pkixstore.$(LIB_SUFFIX) \ |
|
61 $(DIST)/lib/$(LIB_PREFIX)pkixparams.$(LIB_SUFFIX) \ |
|
62 $(DIST)/lib/$(LIB_PREFIX)pkixchecker.$(LIB_SUFFIX) \ |
|
63 $(DIST)/lib/$(LIB_PREFIX)pkixpki.$(LIB_SUFFIX) \ |
|
64 $(DIST)/lib/$(LIB_PREFIX)pkixtop.$(LIB_SUFFIX) \ |
|
65 $(DIST)/lib/$(LIB_PREFIX)pkixresults.$(LIB_SUFFIX) \ |
|
66 $(DIST)/lib/$(LIB_PREFIX)pkixcertsel.$(LIB_SUFFIX) |
|
67 |
|
68 # can't do this in manifest.mn because OS_ARCH isn't defined there. |
|
69 ifeq ($(OS_ARCH), WINNT) |
|
70 |
|
71 EXTRA_LIBS += \ |
|
72 $(DIST)/lib/$(LIB_PREFIX)smime.$(LIB_SUFFIX) \ |
|
73 $(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \ |
|
74 $(DIST)/lib/$(LIB_PREFIX)nss.$(LIB_SUFFIX) \ |
|
75 $(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \ |
|
76 $(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \ |
|
77 $(DIST)/lib/$(LIB_PREFIX)pkcs12.$(LIB_SUFFIX) \ |
|
78 $(DIST)/lib/$(LIB_PREFIX)pkcs7.$(LIB_SUFFIX) \ |
|
79 $(DIST)/lib/$(LIB_PREFIX)certhi.$(LIB_SUFFIX) \ |
|
80 $(DIST)/lib/$(LIB_PREFIX)cryptohi.$(LIB_SUFFIX) \ |
|
81 $(DIST)/lib/$(LIB_PREFIX)pk11wrap.$(LIB_SUFFIX) \ |
|
82 $(DIST)/lib/$(LIB_PREFIX)certdb.$(LIB_SUFFIX) \ |
|
83 $(SOFTOKENLIB) \ |
|
84 $(CRYPTOLIB) \ |
|
85 $(DIST)/lib/$(LIB_PREFIX)nsspki.$(LIB_SUFFIX) \ |
|
86 $(DIST)/lib/$(LIB_PREFIX)nssdev.$(LIB_SUFFIX) \ |
|
87 $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \ |
|
88 $(PKIXLIB) \ |
|
89 $(DBMLIB) \ |
|
90 $(DIST)/lib/$(LIB_PREFIX)$(SQLITE_LIB_NAME).$(LIB_SUFFIX) \ |
|
91 $(DIST)/lib/$(LIB_PREFIX)nssutil3.$(LIB_SUFFIX) \ |
|
92 $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.$(LIB_SUFFIX) \ |
|
93 $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.$(LIB_SUFFIX) \ |
|
94 $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4.$(LIB_SUFFIX) \ |
|
95 $(NULL) |
|
96 |
|
97 # $(PROGRAM) has NO explicit dependencies on $(OS_LIBS) |
|
98 #OS_LIBS += \ |
|
99 wsock32.lib \ |
|
100 winmm.lib \ |
|
101 $(NULL) |
|
102 else |
|
103 |
|
104 EXTRA_LIBS += \ |
|
105 $(DIST)/lib/$(LIB_PREFIX)smime.$(LIB_SUFFIX) \ |
|
106 $(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \ |
|
107 $(DIST)/lib/$(LIB_PREFIX)nss.$(LIB_SUFFIX) \ |
|
108 $(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \ |
|
109 $(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \ |
|
110 $(DIST)/lib/$(LIB_PREFIX)pkcs12.$(LIB_SUFFIX) \ |
|
111 $(DIST)/lib/$(LIB_PREFIX)pkcs7.$(LIB_SUFFIX) \ |
|
112 $(DIST)/lib/$(LIB_PREFIX)certhi.$(LIB_SUFFIX) \ |
|
113 $(DIST)/lib/$(LIB_PREFIX)pk11wrap.$(LIB_SUFFIX) \ |
|
114 $(DIST)/lib/$(LIB_PREFIX)cryptohi.$(LIB_SUFFIX) \ |
|
115 $(DIST)/lib/$(LIB_PREFIX)certhi.$(LIB_SUFFIX) \ |
|
116 $(DIST)/lib/$(LIB_PREFIX)nsspki.$(LIB_SUFFIX) \ |
|
117 $(DIST)/lib/$(LIB_PREFIX)pk11wrap.$(LIB_SUFFIX) \ |
|
118 $(SOFTOKENLIB) \ |
|
119 $(DIST)/lib/$(LIB_PREFIX)certdb.$(LIB_SUFFIX) \ |
|
120 $(DIST)/lib/$(LIB_PREFIX)nsspki.$(LIB_SUFFIX) \ |
|
121 $(DIST)/lib/$(LIB_PREFIX)nssdev.$(LIB_SUFFIX) \ |
|
122 $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \ |
|
123 $(CRYPTOLIB) \ |
|
124 $(DBMLIB) \ |
|
125 $(PKIXLIB) \ |
|
126 $(DIST)/lib/$(LIB_PREFIX)nss.$(LIB_SUFFIX) \ |
|
127 $(DIST)/lib/$(LIB_PREFIX)pk11wrap.$(LIB_SUFFIX) \ |
|
128 $(DIST)/lib/$(LIB_PREFIX)certhi.$(LIB_SUFFIX) \ |
|
129 $(NULL) |
|
130 |
|
131 ifeq ($(OS_ARCH), AIX) |
|
132 EXTRA_SHARED_LIBS += -brtl |
|
133 endif |
|
134 |
|
135 # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS) |
|
136 # $(EXTRA_SHARED_LIBS) come before $(OS_LIBS), except on AIX. |
|
137 EXTRA_SHARED_LIBS += \ |
|
138 -L$(DIST)/lib \ |
|
139 -l$(SQLITE_LIB_NAME) \ |
|
140 -L$(NSSUTIL_LIB_DIR) \ |
|
141 -lnssutil3 \ |
|
142 -L$(NSPR_LIB_DIR) \ |
|
143 -lplc4 \ |
|
144 -lplds4 \ |
|
145 -lnspr4 \ |
|
146 $(NULL) |
|
147 endif |
|
148 |
|
149 else # USE_STATIC_LIBS |
|
150 # can't do this in manifest.mn because OS_ARCH isn't defined there. |
|
151 ifeq ($(OS_ARCH), WINNT) |
|
152 |
|
153 # $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS) |
|
154 EXTRA_LIBS += \ |
|
155 $(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \ |
|
156 $(DIST)/lib/$(IMPORT_LIB_PREFIX)nssutil3$(IMPORT_LIB_SUFFIX) \ |
|
157 $(DIST)/lib/$(IMPORT_LIB_PREFIX)smime3$(IMPORT_LIB_SUFFIX) \ |
|
158 $(DIST)/lib/$(IMPORT_LIB_PREFIX)ssl3$(IMPORT_LIB_SUFFIX) \ |
|
159 $(DIST)/lib/$(IMPORT_LIB_PREFIX)nss3$(IMPORT_LIB_SUFFIX) \ |
|
160 $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4$(IMPORT_LIB_SUFFIX) \ |
|
161 $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4$(IMPORT_LIB_SUFFIX) \ |
|
162 $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4$(IMPORT_LIB_SUFFIX) \ |
|
163 $(NULL) |
|
164 |
|
165 # $(PROGRAM) has NO explicit dependencies on $(OS_LIBS) |
|
166 #OS_LIBS += \ |
|
167 wsock32.lib \ |
|
168 winmm.lib \ |
|
169 $(NULL) |
|
170 else |
|
171 |
|
172 # $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS) |
|
173 EXTRA_LIBS += \ |
|
174 $(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \ |
|
175 $(NULL) |
|
176 |
|
177 ifeq ($(OS_ARCH), AIX) |
|
178 EXTRA_SHARED_LIBS += -brtl |
|
179 endif |
|
180 |
|
181 # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS) |
|
182 # $(EXTRA_SHARED_LIBS) come before $(OS_LIBS), except on AIX. |
|
183 EXTRA_SHARED_LIBS += \ |
|
184 -L$(DIST)/lib \ |
|
185 -lssl3 \ |
|
186 -lsmime3 \ |
|
187 -lnss3 \ |
|
188 -L$(NSSUTIL_LIB_DIR) \ |
|
189 -lnssutil3 \ |
|
190 -L$(NSPR_LIB_DIR) \ |
|
191 -lplc4 \ |
|
192 -lplds4 \ |
|
193 -lnspr4 \ |
|
194 $(NULL) |
|
195 endif |
|
196 |
|
197 ifdef SOFTOKEN_LIB_DIR |
|
198 ifdef NSS_USE_SYSTEM_FREEBL |
|
199 EXTRA_SHARED_LIBS += -L$(SOFTOKEN_LIB_DIR) -lsoftokn3 |
|
200 endif |
|
201 endif |
|
202 |
|
203 endif # USE_STATIC_LIBS |
|
204 |
|
205 # If a platform has a system freebl, set USE_SYSTEM_FREEBL to 1 and |
|
206 # FREEBL_LIBS to the linker command-line arguments for the system nss-util |
|
207 # (for example, -lfreebl3 on fedora) in the platform's config file in coreconf. |
|
208 ifdef NSS_USE_SYSTEM_FREEBL |
|
209 FREEBL_LIBS = $(FREEBL_LIB_DIR)/$(LIB_PREFIX)freebl.$(LIB_SUFFIX) |
|
210 EXTRA_LIBS += $(FREEBL_LIBS) |
|
211 endif |
|
212 |
|
213 # If a platform has a system zlib, set USE_SYSTEM_ZLIB to 1 and |
|
214 # ZLIB_LIBS to the linker command-line arguments for the system zlib |
|
215 # (for example, -lz) in the platform's config file in coreconf. |
|
216 ifndef USE_SYSTEM_ZLIB |
|
217 ZLIB_LIBS = $(DIST)/lib/$(LIB_PREFIX)zlib.$(LIB_SUFFIX) |
|
218 endif |
|
219 |
|
220 JAR_LIBS = $(DIST)/lib/$(LIB_PREFIX)jar.$(LIB_SUFFIX) |