2 # ***** BEGIN LICENSE BLOCK *****
3 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 # The contents of this file are subject to the Mozilla Public License Version
6 # 1.1 (the "License"); you may not use this file except in compliance with
7 # the License. You may obtain a copy of the License at
8 # http://www.mozilla.org/MPL/
10 # Software distributed under the License is distributed on an "AS IS" basis,
11 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 # for the specific language governing rights and limitations under the
15 # The Original Code is mozilla.org code.
17 # The Initial Developer of the Original Code is
18 # Netscape Communications Corporation.
19 # Portions created by the Initial Developer are Copyright (C) 1998
20 # the Initial Developer. All Rights Reserved.
23 # Brian Ryner <bryner@brianryner.com>
25 # Alternatively, the contents of this file may be used under the terms of
26 # either the GNU General Public License Version 2 or later (the "GPL"), or
27 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28 # in which case the provisions of the GPL or the LGPL are applicable instead
29 # of those above. If you wish to allow use of your version of this file only
30 # under the terms of either the GPL or the LGPL, and not to allow others to
31 # use your version of this file under the terms of the MPL, indicate your
32 # decision by deleting the provisions above and replace them with the notice
33 # and other provisions required by the GPL or the LGPL. If you do not delete
34 # the provisions above, a recipient may use your version of this file under
35 # the terms of any one of the MPL, the GPL or the LGPL.
37 # ***** END LICENSE BLOCK *****
40 topsrcdir
= @top_srcdir@
44 include $(DEPTH
)/config
/autoconf.mk
49 LOADABLE_ROOT_MODULE
= $(DLL_PREFIX
)nssckbi
$(DLL_SUFFIX
)
52 NSS3_LIB
= $(DLL_PREFIX
)nss3
$(DLL_SUFFIX
)
53 NSSUTIL3_LIB
= $(DLL_PREFIX
)nssutil3
$(DLL_SUFFIX
)
54 SMIME3_LIB
= $(DLL_PREFIX
)smime3
$(DLL_SUFFIX
)
55 SSL3_LIB
= $(DLL_PREFIX
)ssl3
$(DLL_SUFFIX
)
56 SOFTOKEN3_LIB
= $(DLL_PREFIX
)softokn3
$(DLL_SUFFIX
)
57 SOFTOKEN3_CHK
= $(DLL_PREFIX
)softokn3.chk
59 ifndef NSS_DISABLE_DBM
60 NSSDBM3_LIB
= $(DLL_PREFIX
)nssdbm3
$(DLL_SUFFIX
)
66 ifneq (,$(filter OS2 WINCE WINNT
,$(OS_ARCH
)))
68 $(DIST
)/lib
/$(LIB_PREFIX
)crmf.
$(LIB_SUFFIX
) \
69 $(DIST
)/lib
/$(LIB_PREFIX
)smime3.
$(IMPORT_LIB_SUFFIX
) \
70 $(DIST
)/lib
/$(LIB_PREFIX
)ssl3.
$(IMPORT_LIB_SUFFIX
) \
71 $(DIST
)/lib
/$(LIB_PREFIX
)nss3.
$(IMPORT_LIB_SUFFIX
) \
72 $(DIST
)/lib
/$(LIB_PREFIX
)nssutil3.
$(IMPORT_LIB_SUFFIX
) \
73 $(DIST
)/lib
/$(LIB_PREFIX
)softokn3.
$(IMPORT_LIB_SUFFIX
) \
77 $(DIST
)/lib
/$(LIB_PREFIX
)crmf.
$(LIB_SUFFIX
) \
78 $(DIST
)/lib
/$(LIB_PREFIX
)smime.
$(LIB_SUFFIX
) \
79 $(DIST
)/lib
/$(LIB_PREFIX
)ssl.
$(LIB_SUFFIX
) \
80 $(DIST
)/lib
/$(LIB_PREFIX
)nss.
$(LIB_SUFFIX
) \
81 $(DIST
)/lib
/$(LIB_PREFIX
)nssutil.
$(LIB_SUFFIX
) \
82 $(DIST
)/lib
/$(LIB_PREFIX
)softokn.
$(LIB_SUFFIX
) \
90 # 32-bit HP-UX PA-RISC
91 ifeq ($(OS_ARCH
), HP-UX
)
92 ifneq ($(OS_TEST
), ia64
)
95 HAVE_FREEBL_LIBS_32
= 1
101 ifeq ($(OS_ARCH
), SunOS
)
102 ifneq (86,$(findstring 86,$(OS_TEST
)))
105 HAVE_FREEBL_LIBS_64
= 1
108 HAVE_FREEBL_LIBS_32
= 1
109 HAVE_FREEBL_LIBS_32INT64
= 1
114 ifdef HAVE_FREEBL_LIBS
115 FREEBL_LIB
= $(DLL_PREFIX
)freebl3
$(DLL_SUFFIX
)
116 FREEBL_CHK
= $(DLL_PREFIX
)freebl3.chk
118 ifdef HAVE_FREEBL_LIBS_32
119 FREEBL_32INT_LIB
= libfreebl_32int_3
$(DLL_SUFFIX
)
120 FREEBL_32INT_CHK
= libfreebl_32int_3.chk
121 FREEBL_32FPU_LIB
= libfreebl_32fpu_3
$(DLL_SUFFIX
)
122 FREEBL_32FPU_CHK
= libfreebl_32fpu_3.chk
124 ifdef HAVE_FREEBL_LIBS_32INT64
125 FREEBL_32INT64_LIB
= libfreebl_32int64_3
$(DLL_SUFFIX
)
126 FREEBL_32INT64_CHK
= libfreebl_32int64_3.chk
128 ifdef HAVE_FREEBL_LIBS_64
129 FREEBL_64INT_LIB
= libfreebl_64int_3
$(DLL_SUFFIX
)
130 FREEBL_64INT_CHK
= libfreebl_64int_3.chk
131 FREEBL_64FPU_LIB
= libfreebl_64fpu_3
$(DLL_SUFFIX
)
132 FREEBL_64FPU_CHK
= libfreebl_64fpu_3.chk
135 ABS_DIST
:= $(shell cd
$(DIST
) && pwd
)
136 ifeq ($(HOST_OS_ARCH
),WINNT
)
138 ABS_DIST
:= $(shell cygpath
-w
$(ABS_DIST
) | sed
-e
's|\\|/|g')
140 ifneq (,$(filter mingw
%,$(host_os
)))
141 ABS_DIST
:= $(shell cd
$(DIST
) && pwd
-W
)
144 NSPR_INCLUDE_DIR
= $(firstword $(filter -I
%,$(NSPR_CFLAGS
)))
145 ifneq (,$(strip $(NSPR_INCLUDE_DIR
)))
146 NSPR_INCLUDE_DIR
:= $(subst -I
,,$(subst -I
$(DIST
),-I
$(ABS_DIST
),$(NSPR_INCLUDE_DIR
)))
148 NSPR_INCLUDE_DIR
= $(ABS_DIST
)/include/nspr
150 NSPR_LIB_DIR
= $(firstword $(filter -L
%,$(NSPR_LIBS
)))
151 ifneq (,$(strip $(NSPR_LIB_DIR
)))
152 NSPR_LIB_DIR
:= $(subst -L
,,$(subst -L
$(DIST
),-L
$(ABS_DIST
),$(NSPR_LIB_DIR
)))
154 NSPR_LIB_DIR
= $(ABS_DIST
)/lib
156 # Can't pass this in DEFAULT_GMAKE_FLAGS because that overrides
157 # definitions in NSS, so just export it into the sub-make's environment.
158 ifeq (WINNT_1
,$(OS_TARGET
)_
$(MOZ_MEMORY
))
161 # NSS makefiles are not safe for parallel execution.
162 DEFAULT_GMAKE_FLAGS
= MAKE
="$(MAKE) -j1" -j1
163 DEFAULT_GMAKE_FLAGS
+= CC
="$(CC)"
164 DEFAULT_GMAKE_FLAGS
+= SOURCE_MD_DIR
=$(ABS_DIST
)
165 DEFAULT_GMAKE_FLAGS
+= DIST
=$(ABS_DIST
)
166 DEFAULT_GMAKE_FLAGS
+= NSPR_INCLUDE_DIR
=$(NSPR_INCLUDE_DIR
)
167 DEFAULT_GMAKE_FLAGS
+= NSPR_LIB_DIR
=$(NSPR_LIB_DIR
)
168 DEFAULT_GMAKE_FLAGS
+= MOZILLA_CLIENT
=1
169 DEFAULT_GMAKE_FLAGS
+= NO_MDUPDATE
=1
170 DEFAULT_GMAKE_FLAGS
+= NSS_ENABLE_ECC
=1
171 ifdef NSS_DISABLE_DBM
172 DEFAULT_GMAKE_FLAGS
+= NSS_DISABLE_DBM
=1
174 ABS_topsrcdir
:= $(shell cd
$(topsrcdir
); pwd
)
175 ifneq ($(ABS_topsrcdir
),$(MOZ_BUILD_ROOT
))
176 DEFAULT_GMAKE_FLAGS
+= BUILD_TREE
=$(MOZ_BUILD_ROOT
)
179 DEFAULT_GMAKE_FLAGS
+= BUILD_OPT
=1 OPT_CODE_SIZE
=1
182 DEFAULT_GMAKE_FLAGS
+= NS_USE_GCC
=1 NS_USE_NATIVE
=
184 DEFAULT_GMAKE_FLAGS
+= NS_USE_GCC
= NS_USE_NATIVE
=1
187 # It is not really necessary to specify USE_PTHREADS=1. USE_PTHREADS
188 # merely adds _PTH to coreconf's OBJDIR name.
189 DEFAULT_GMAKE_FLAGS
+= USE_N32
=1 USE_PTHREADS
=1
192 DEFAULT_GMAKE_FLAGS
+= USE_64
=1
194 ifeq ($(OS_ARCH
),WINNT
)
195 DEFAULT_GMAKE_FLAGS
+= OS_TARGET
=WIN95
197 ifndef MOZ_NO_DEBUG_RTL
198 DEFAULT_GMAKE_FLAGS
+= USE_DEBUG_RTL
=1
202 ifeq ($(OS_ARCH
),OS2
)
203 ifdef MOZ_OS2_HIGH_MEMORY
204 DEFAULT_GMAKE_FLAGS
+= MOZ_OS2_HIGH_MEMORY
=1
207 # OS_CFLAGS needs to be passed on down.
208 ifeq ($(OS_ARCH
),OpenVMS
)
209 DEFAULT_GMAKE_FLAGS
+= XCFLAGS
="$(OS_CFLAGS)"
211 ifeq ($(OS_ARCH
),Darwin
)
212 # Make nsinstall use absolute symlinks by default when building NSS
213 # for Mozilla on Mac OS X. (Bugzilla bug 193164)
215 DEFAULT_GMAKE_FLAGS
+= NSDISTMODE
=absolute_symlink
218 DEFAULT_GMAKE_FLAGS
+= MACOS_SDK_DIR
=$(MACOS_SDK_DIR
)
224 DEFAULT_GMAKE_FLAGS
+= \
225 NSINSTALL
="$(NSINSTALL)" \
226 NATIVE_CC
="$(HOST_CC)" \
227 CC
="arm-wince-gcc.exe" \
228 CCC
="arm-wince-gcc.exe" \
229 LINK
="arm-wince-link.exe" \
230 LD
="arm-wince-link.exe -DLL" \
231 AS
="arm-wince-as.exe -Cp -Sn -Zi -coff $(INCLUDES)" \
232 AR
='arm-wince-lib -NOLOG0 -OUT:$$@' \
234 RC
="arm-wince-res.exe $(RCFLAGS)" \
235 OS_ARCH
="$(OS_ARCH)" \
236 OS_TEST
="$(OS_TEST)" \
242 DEFAULT_GMAKE_FLAGS
+= \
243 NSINSTALL
="$(NSINSTALL)" \
244 NATIVE_CC
="$(HOST_CC)" \
249 AR
='$(AR) $(AR_FLAGS:$@=$$@)' \
251 RC
="$(RC) $(RCFLAGS)" \
252 OS_ARCH
="$(OS_ARCH)" \
253 OS_TEST
="$(OS_TEST)" \
254 CPU_ARCH
="$(TARGET_CPU)" \
260 SUBMAKEFILES
= boot
/Makefile ssl
/Makefile pki
/Makefile locales
/Makefile
262 include $(topsrcdir
)/config
/rules.mk
264 # Attempt to properly handle NSS' refusal to implement a dependency system
265 export:: .nss.cleaned
267 .nss.cleaned
: .nss.checkout
268 ifndef MOZ_NATIVE_NSS
269 $(MAKE
) -C
$(topsrcdir
)/security
/coreconf
$(DEFAULT_GMAKE_FLAGS
) clean
270 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/lib
$(DEFAULT_GMAKE_FLAGS
) clean
272 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/lib
$(DEFAULT_GMAKE_FLAGS
) clean
273 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/shlibsign
$(DEFAULT_GMAKE_FLAGS
) clean
278 GARBAGE
+= .nss.cleaned
281 ifndef MOZ_NATIVE_NSS
285 dependclean
export packages chrome
::
288 $(MAKE
) -C locales
$@
294 ifndef MOZ_NATIVE_NSS
295 $(MAKE
) -C
$(topsrcdir
)/security
/coreconf
$(DEFAULT_GMAKE_FLAGS
)
296 ifndef NSS_DISABLE_DBM
297 $(MAKE
) -C
$(topsrcdir
)/security
/dbm
$(DEFAULT_GMAKE_FLAGS
)
299 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/lib
$(DEFAULT_GMAKE_FLAGS
)
301 # Need certutil binary for mochitest certificates generation
302 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/lib
$(DEFAULT_GMAKE_FLAGS
)
303 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/certutil
$(DEFAULT_GMAKE_FLAGS
)
304 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/pk12util
$(DEFAULT_GMAKE_FLAGS
)
307 ifndef ENABLE_TESTS
# Just avoid secondary compile
308 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/lib
$(DEFAULT_GMAKE_FLAGS
)
310 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/shlibsign
$(DEFAULT_GMAKE_FLAGS
)
312 $(INSTALL
) -m
755 $(DIST
)/lib
/$(LOADABLE_ROOT_MODULE
) $(DIST
)/bin
314 $(INSTALL
) -m
644 $(DIST
)/lib
/$(SOFTOKEN3_CHK
) $(DIST
)/bin
316 $(INSTALL
) -m
755 $(DIST
)/lib
/$(SOFTOKEN3_LIB
) $(DIST
)/bin
317 ifndef NSS_DISABLE_DBM
318 $(INSTALL
) -m
755 $(DIST
)/lib
/$(NSSDBM3_LIB
) $(DIST
)/bin
320 $(INSTALL
) -m
755 $(DIST
)/lib
/$(NSS3_LIB
) $(DIST
)/bin
321 $(INSTALL
) -m
755 $(DIST
)/lib
/$(NSSUTIL3_LIB
) $(DIST
)/bin
322 $(INSTALL
) -m
755 $(DIST
)/lib
/$(SSL3_LIB
) $(DIST
)/bin
323 $(INSTALL
) -m
755 $(DIST
)/lib
/$(SMIME3_LIB
) $(DIST
)/bin
324 $(INSTALL
) -m
755 $(SDK_LIBS
) $(DIST
)/sdk
/lib
325 ifdef HAVE_FREEBL_LIBS
327 $(INSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_CHK
) $(DIST
)/bin
329 $(INSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_LIB
) $(DIST
)/bin
331 ifdef HAVE_FREEBL_LIBS_32
333 $(INSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_32INT_CHK
) $(DIST
)/bin
334 $(INSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_32FPU_CHK
) $(DIST
)/bin
336 $(INSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_32INT_LIB
) $(DIST
)/bin
337 $(INSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_32FPU_LIB
) $(DIST
)/bin
339 ifdef HAVE_FREEBL_LIBS_32INT64
341 $(INSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_32INT64_CHK
) $(DIST
)/bin
343 $(INSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_32INT64_LIB
) $(DIST
)/bin
345 ifdef HAVE_FREEBL_LIBS_64
347 $(INSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_64INT_CHK
) $(DIST
)/bin
348 $(INSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_64FPU_CHK
) $(DIST
)/bin
350 $(INSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_64INT_LIB
) $(DIST
)/bin
351 $(INSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_64FPU_LIB
) $(DIST
)/bin
354 ifndef MOZ_NATIVE_NSS
355 # NSS installs headers to dist/public and we want them in dist/include
356 $(NSINSTALL
) -D
$(DIST
)/include/nss
357 (cd
$(DIST
)/public
/nss
&& tar $(TAR_CREATE_FLAGS
) - .
) | \
358 (cd
$(DIST
)/include/nss
&& tar -xf
-)
359 (cd
$(DIST
)/public
/nss
&& tar $(TAR_CREATE_FLAGS
) - .
) | \
360 (cd
$(DIST
)/sdk
/include && tar -xf
-)
364 $(MAKE
) -C locales
$@
373 ifndef MOZ_NATIVE_NSS
374 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(LOADABLE_ROOT_MODULE
) $(DESTDIR
)$(mozappdir
)
376 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(SOFTOKEN3_CHK
) $(DESTDIR
)$(mozappdir
)
378 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(SOFTOKEN3_LIB
) $(DESTDIR
)$(mozappdir
)
379 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(NSSDBM3_LIB
) $(DESTDIR
)$(mozappdir
)
380 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(NSS3_LIB
) $(DESTDIR
)$(mozappdir
)
381 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(NSSUTIL3_LIB
) $(DESTDIR
)$(mozappdir
)
382 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(SSL3_LIB
) $(DESTDIR
)$(mozappdir
)
383 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(SMIME3_LIB
) $(DESTDIR
)$(mozappdir
)
384 ifdef HAVE_FREEBL_LIBS
386 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_CHK
) $(DESTDIR
)$(mozappdir
)
388 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_LIB
) $(DESTDIR
)$(mozappdir
)
390 ifdef HAVE_FREEBL_LIBS_32
392 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_32INT_CHK
) $(DESTDIR
)$(mozappdir
)
393 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_32FPU_CHK
) $(DESTDIR
)$(mozappdir
)
395 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_32INT_LIB
) $(DESTDIR
)$(mozappdir
)
396 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_32FPU_LIB
) $(DESTDIR
)$(mozappdir
)
398 ifdef HAVE_FREEBL_LIBS_32INT64
400 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_32INT64_CHK
) $(DESTDIR
)$(mozappdir
)
402 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_32INT64_LIB
) $(DESTDIR
)$(mozappdir
)
404 ifdef HAVE_FREEBL_LIBS_64
406 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_64INT_CHK
) $(DESTDIR
)$(mozappdir
)
407 $(SYSINSTALL
) -m
644 $(DIST
)/lib
/$(FREEBL_64FPU_CHK
) $(DESTDIR
)$(mozappdir
)
409 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_64INT_LIB
) $(DESTDIR
)$(mozappdir
)
410 $(SYSINSTALL
) -m
755 $(DIST
)/lib
/$(FREEBL_64FPU_LIB
) $(DESTDIR
)$(mozappdir
)
415 $(MAKE
) -C locales
$@
420 clean clobber clobber_all
realclean distclean depend
::
423 $(MAKE
) -C locales
$@
427 ifndef MOZ_NATIVE_NSS
428 $(MAKE
) -C
$(topsrcdir
)/security
/coreconf
$(DEFAULT_GMAKE_FLAGS
) clean
429 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/lib
$(DEFAULT_GMAKE_FLAGS
) clean
431 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/lib
$(DEFAULT_GMAKE_FLAGS
) clean
432 $(MAKE
) -C
$(topsrcdir
)/security
/nss
/cmd
/shlibsign
$(DEFAULT_GMAKE_FLAGS
) clean
436 echo-requires-recursive
::
440 $(MAKE
) -C locales
$@