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 # Robert Ginda <rginda@netscape.com>
24 # John Taylor <jtaylor@netscape.com>
26 # Alternatively, the contents of this file may be used under the terms of
27 # either of the GNU General Public License Version 2 or later (the "GPL"),
28 # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 # in which case the provisions of the GPL or the LGPL are applicable instead
30 # of those above. If you wish to allow use of your version of this file only
31 # under the terms of either the GPL or the LGPL, and not to allow others to
32 # use your version of this file under the terms of the MPL, indicate your
33 # decision by deleting the provisions above and replace them with the notice
34 # and other provisions required by the GPL or the LGPL. If you do not delete
35 # the provisions above, a recipient may use your version of this file under
36 # the terms of any one of the MPL, the GPL or the LGPL.
38 # ***** END LICENSE BLOCK *****
41 topsrcdir
= @top_srcdir@
45 include $(DEPTH
)/config
/autoconf.mk
47 # For sanity's sake, we compile nsinstall without the wrapped system
48 # headers, so that we can use it to set up the wrapped system headers.
51 HOST_PROGRAM
= nsinstall
$(HOST_BIN_SUFFIX
)
53 ifeq (WINNT
,$(HOST_OS_ARCH
))
54 HOST_CSRCS
= nsinstall_win.c
56 HOST_CSRCS
= nsinstall.c pathsub.c
61 TARGETS
= $(HOST_PROGRAM
) $(PLSRCS
:.pl
=) $(SIMPLE_PROGRAMS
)
64 ifdef USE_ELF_DYNSTR_GC
65 TARGETS
+= elf-dynstr-gc
66 # Compiling the above will create dependency files.
71 # IMPORTANT: Disable NSBUILDROOT for this directory only, otherwise we have
72 # a recursive rule for finding nsinstall and the Perl scripts.
74 override NSBUILDROOT
:=
78 MODULE_OPTIMIZE_FLAGS
= -O3
81 ifndef COMPILER_DEPEND
82 ifndef MOZ_NATIVE_MAKEDEPEND
87 include $(topsrcdir
)/config
/config.mk
89 # Do not install util programs
92 include $(topsrcdir
)/config
/rules.mk
94 HOST_CFLAGS
+= -DUNICODE
-D_UNICODE
96 ifeq ($(OS_CONFIG
),SunOS4.1
)
97 NSPR_CFLAGS
+= -I
$(srcdir)/..
/nsprpub
/pr
/include/md
101 $(DEPTH
)/mozilla-config.h \
102 $(srcdir)/nsStaticComponents.h \
105 export:: $(TARGETS
) $(HEADERS
)
106 $(INSTALL
) $(IFLAGS1
) $(HEADERS
) $(DIST
)/include
107 -rm -f
$(FINAL_LINK_COMPS
) $(FINAL_LINK_LIBS
) $(FINAL_LINK_COMP_NAMES
)
108 -rm -f
$(DIST
)/bin
/chrome
/chromelist.txt
110 $(INSTALL
) $(HOST_PROGRAM
) $(DIST
)/bin
113 # Generate a new buildid every time we "export" in config... that's only
114 # supposed to be once per-build!
117 printf
"%s" $(MOZ_BUILD_DATE
) > buildid
119 $(PYTHON
) $(topsrcdir
)/toolkit
/xre
/make-platformini.py
--print-buildid
> buildid
122 ifdef WRAP_SYSTEM_INCLUDES
124 if
test ! -d system_wrappers
; then mkdir system_wrappers
; fi
125 $(PERL
) $(topsrcdir
)/config
/preprocessor.pl
$(DEFINES
) $(ACDEFINES
) \
126 -DBUILD_STATIC_LIBS
=$(BUILD_STATIC_LIBS
) \
127 -DMOZ_TREE_CAIRO
=$(MOZ_TREE_CAIRO
) \
128 -DMOZ_ENABLE_LIBXUL
=$(MOZ_ENABLE_LIBXUL
) \
129 -DMOZ_NATIVE_HUNSPELL
=$(MOZ_NATIVE_HUNSPELL
) \
130 -DMOZ_NATIVE_BZ2
=$(MOZ_NATIVE_BZ2
) \
131 -DMOZ_NATIVE_ZLIB
=$(MOZ_NATIVE_ZLIB
) \
132 -DMOZ_NATIVE_PNG
=$(MOZ_NATIVE_PNG
) \
133 -DMOZ_NATIVE_JPEG
=$(MOZ_NATIVE_JPEG
) \
134 -DMOZ_NATIVE_LIBEVENT
=$(MOZ_NATIVE_LIBEVENT
) \
135 $(srcdir)/system-headers |
$(PERL
) $(topsrcdir
)/nsprpub
/config
/make-system-wrappers.pl system_wrappers
136 $(INSTALL
) system_wrappers
$(DIST
)
138 GARBAGE_DIRS
+= system_wrappers
141 ifdef WRAP_STL_INCLUDES
152 STL_WRAPPERS_SENTINEL
= $(DIST
)/stl_wrappers
/sentinel
154 $(STL_WRAPPERS_SENTINEL
): $(srcdir)/make-stl-wrappers.py
$(srcdir)/$(stl_compiler
)-stl-wrapper.template.h
$(srcdir)/stl-headers
$(GLOBAL_DEPS
)
155 $(PYTHON
) $(srcdir)/make-stl-wrappers.py stl_wrappers
$(stl_compiler
) $(srcdir)/$(stl_compiler
)-stl-wrapper.template.h
$(srcdir)/stl-headers
156 $(PYTHON
) $(srcdir)/nsinstall.py stl_wrappers
$(DIST
)
157 touch
$(STL_WRAPPERS_SENTINEL
)
159 export:: $(STL_WRAPPERS_SENTINEL
)
161 GARBAGE
+= $(STL_WRAPPERS_SENTINEL
)
162 GARBAGE_DIRS
+= stl_wrappers
166 $(SYSINSTALL
) $(IFLAGS1
) $(DEPTH
)/mozilla-config.h
$(DESTDIR
)$(includedir)
169 $(FINAL_LINK_COMPS
) $(FINAL_LINK_LIBS
) $(FINAL_LINK_COMP_NAMES
) buildid
$(srcdir)/*.pyc
172 ifdef USE_ELF_DYNSTR_GC
173 elf-dynstr-gc
: elf-dynstr-gc.c
$(GLOBAL_DEPS
)
174 $(CC
) $(COMPILE_CFLAGS
) $(GLIB_CFLAGS
) -o
$@
$< $(LDFLAGS
) $(GLIB_LIBS
)
181 clean clobber realclean clobber_all
::
182 cd
$(MKDEPEND_DIR
); $(MAKE
) $@
187 unit-Preprocessor.py \
189 unit-printprereleasesuffix.py \
194 check:: check-python-modules check-jar-mn
196 check-python-modules
::
198 for
test in
$(PYUNITS
); do \
199 $(PYTHON
) $(srcdir)/tests
/$$test ; \
203 $(MAKE
) -C tests
/src-simple check-jar
204 $(MAKE
) -C tests
/src-simple check-flat
205 $(MAKE
) -C tests
/src-simple check-flat USE_EXTENSION_MANIFEST
=1
206 ifneq (,$(filter-out WINNT OS2
,$(OS_ARCH
)))
207 $(MAKE
) -C tests
/src-simple check-symlink