Merge mozilla-central and tracemonkey. (a=blockers)
[mozilla-central.git] / config / Makefile.in
blobbbb67b5969560726b840c9c928dcd1723ff01755
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
13 # License.
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.
22 # Contributor(s):
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 *****
40 DEPTH = ..
41 topsrcdir = @top_srcdir@
42 srcdir = @srcdir@
43 VPATH = @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.
49 VISIBILITY_FLAGS =
51 HOST_PROGRAM = nsinstall$(HOST_BIN_SUFFIX)
53 ifeq (WINNT,$(HOST_OS_ARCH))
54 HOST_CSRCS = nsinstall_win.c
55 else
56 HOST_CSRCS = nsinstall.c pathsub.c
57 endif
59 PLSRCS = nfspwd.pl
61 TARGETS = $(HOST_PROGRAM) $(PLSRCS:.pl=) $(SIMPLE_PROGRAMS)
63 ifndef CROSS_COMPILE
64 ifdef USE_ELF_DYNSTR_GC
65 TARGETS += elf-dynstr-gc
66 # Compiling the above will create dependency files.
67 NEED_MDDEPDIR = 1
68 endif
69 endif
71 # IMPORTANT: Disable NSBUILDROOT for this directory only, otherwise we have
72 # a recursive rule for finding nsinstall and the Perl scripts.
73 ifdef NSBUILDROOT
74 override NSBUILDROOT :=
75 endif
77 ifdef GNU_CC
78 MODULE_OPTIMIZE_FLAGS = -O3
79 endif
81 ifndef COMPILER_DEPEND
82 ifndef MOZ_NATIVE_MAKEDEPEND
83 DIRS += mkdepend
84 endif
85 endif
87 include $(topsrcdir)/config/config.mk
89 # Do not install util programs
90 NO_INSTALL=1
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
98 endif
100 HEADERS = \
101 $(DEPTH)/mozilla-config.h \
102 $(srcdir)/nsStaticComponents.h \
103 $(NULL)
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
109 ifdef HOST_PROGRAM
110 $(INSTALL) $(HOST_PROGRAM) $(DIST)/bin
111 endif
113 # Generate a new buildid every time we "export" in config... that's only
114 # supposed to be once per-build!
115 export::
116 ifdef MOZ_BUILD_DATE
117 printf "%s" $(MOZ_BUILD_DATE) > buildid
118 else
119 $(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid > buildid
120 endif
122 ifdef WRAP_SYSTEM_INCLUDES
123 export::
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_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
129 -DMOZ_ENABLE_LIBXUL=$(MOZ_ENABLE_LIBXUL) \
130 -DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
131 -DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
132 -DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
133 -DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
134 -DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
135 -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
136 -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
137 $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
138 $(INSTALL) system_wrappers $(DIST)
140 GARBAGE_DIRS += system_wrappers
141 endif
143 ifdef WRAP_STL_INCLUDES
144 ifdef GNU_CXX
145 stl_compiler = gcc
146 else
147 ifdef _MSC_VER
148 stl_compiler = msvc
149 endif
150 endif
151 endif
153 ifdef stl_compiler
154 STL_WRAPPERS_SENTINEL = $(DIST)/stl_wrappers/sentinel
156 $(STL_WRAPPERS_SENTINEL): $(srcdir)/make-stl-wrappers.py $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers $(GLOBAL_DEPS)
157 $(PYTHON) $(srcdir)/make-stl-wrappers.py stl_wrappers $(stl_compiler) $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers
158 $(PYTHON) $(srcdir)/nsinstall.py stl_wrappers $(DIST)
159 touch $(STL_WRAPPERS_SENTINEL)
161 export:: $(STL_WRAPPERS_SENTINEL)
163 GARBAGE += $(STL_WRAPPERS_SENTINEL)
164 GARBAGE_DIRS += stl_wrappers
165 endif
167 install::
168 $(SYSINSTALL) $(IFLAGS1) $(DEPTH)/mozilla-config.h $(DESTDIR)$(includedir)
170 GARBAGE += \
171 $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES) buildid $(srcdir)/*.pyc
173 ifndef CROSS_COMPILE
174 ifdef USE_ELF_DYNSTR_GC
175 elf-dynstr-gc: elf-dynstr-gc.c $(GLOBAL_DEPS)
176 $(CC) $(COMPILE_CFLAGS) $(GLIB_CFLAGS) -o $@ $< $(LDFLAGS) $(GLIB_LIBS)
177 endif
178 endif
180 FORCE:
182 ifdef MKDEPEND_DIR
183 clean clobber realclean clobber_all::
184 cd $(MKDEPEND_DIR); $(MAKE) $@
185 endif
187 PYUNITS := \
188 unit-Expression.py \
189 unit-Preprocessor.py \
190 unit-nsinstall.py \
191 unit-printprereleasesuffix.py \
192 unit-JarMaker.py \
193 unit-buildlist.py \
194 $(NULL)
196 check:: check-python-modules check-jar-mn
198 check-python-modules::
199 @$(EXIT_ON_ERROR) \
200 for test in $(PYUNITS); do \
201 $(PYTHON) $(srcdir)/tests/$$test ; \
202 done
204 check-jar-mn::
205 $(MAKE) -C tests/src-simple check-jar
206 $(MAKE) -C tests/src-simple check-flat
207 $(MAKE) -C tests/src-simple check-flat USE_EXTENSION_MANIFEST=1
208 ifneq (,$(filter-out WINNT OS2,$(OS_ARCH)))
209 $(MAKE) -C tests/src-simple check-symlink
210 endif