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 Communicator client code, released
18 # The Initial Developer of the Original Code is
19 # Netscape Communications Corporation.
20 # Portions created by the Initial Developer are Copyright (C) 1998
21 # the Initial Developer. All Rights Reserved.
25 # Alternatively, the contents of this file may be used under the terms of
26 # either of the GNU General Public License Version 2 or later (the "GPL"),
27 # or 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
48 ifeq (,$(filter WINCE WINNT OS2
,$(OS_ARCH
)))
52 ifeq (WINNT
,$(OS_ARCH
))
57 # We need jemalloc built before the shunt
59 DIRS
+= wince
/tools
$(DEPTH
)/memory
/jemalloc wince
/shunt
61 DIRS
+= wince
/tools wince
/shunt
67 include $(topsrcdir
)/config
/rules.mk
69 # we install to _leaktest/
71 include $(srcdir)/automation-build.mk
73 _LEAKTEST_DIR
= $(DEPTH
)/_leaktest
80 $(topsrcdir
)/build
/pgo
/server-locations.txt \
83 leaktest.py
: leaktest.py.in
84 $(PYTHON
) $(topsrcdir
)/config
/Preprocessor.py
$^
> $@
87 libs
:: $(_LEAKTEST_FILES
)
88 $(INSTALL
) $^
$(_LEAKTEST_DIR
)
91 # Install bloaturls.txt file for tinderbox bloat test.
93 $(INSTALL
) $< $(DIST
)/bin
95 # Install bloatcycle.html into dist/bin/res, for auto-cycling
96 # of bloaturls.txt. This is for browsers that can't do -f
97 # autocycling of URLs.
98 libs
:: bloatcycle.html
99 $(INSTALL
) $< $(DIST
)/bin
/res
101 ifeq ($(OS_ARCH
),Darwin
)
102 libs
:: $(topsrcdir
)/tools
/rb
/fix-macosx-stack.pl
103 $(INSTALL
) $< $(DIST
)/bin
104 libs
:: $(topsrcdir
)/tools
/rb
/fix_macosx_stack.py
105 $(INSTALL
) $< $(DIST
)/bin
107 # Basic unit tests for some stuff in the unify script
109 # build ppc/i386 binaries, and unify them
110 rm -f unify-test-ppc unify-test-i386 unify-test-universal
111 $(HOST_CC
) -arch ppc
$(srcdir)/unify-test.c
-o unify-test-ppc
112 $(HOST_CC
) -arch i386
$(srcdir)/unify-test.c
-o unify-test-i386
113 @if
! $(srcdir)/macosx
/universal
/unify .
/unify-test-ppc .
/unify-test-i386 \
114 .
/unify-test-universal
; then \
115 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to produce a universal binary!"; \
118 @if
! test -f .
/unify-test-universal
; then \
119 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to produce a universal binary!"; \
122 @if
! file
-b .
/unify-test-universal | head
-n1 | grep
-q
"^Mach-O universal binary"; then \
123 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to produce a universal binary!"; \
126 echo
"TEST-PASS | build/ | unify produced a universal binary!"; \
128 # try unifying two identical Java class files
129 rm -f unifytesta.class unifytestb.class unifytestc.class
130 cp
$(srcdir)/unifytest.class .
/unifytesta.class
131 cp
$(srcdir)/unifytest.class .
/unifytestb.class
132 @if
! $(srcdir)/macosx
/universal
/unify .
/unifytesta.class .
/unifytestb.class \
133 .
/unifytestc.class
; then \
134 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to unify a Java class file!"; \
137 @if
! test -f .
/unifytestc.class
; then \
138 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to unify a Java class file!"; \
141 @if
! diff
-q .
/unifytesta.class .
/unifytestc.class
; then \
142 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to unify a Java class file!"; \
145 echo
"TEST-PASS | build/ | unify unified a Java class file!"; \
147 # try unifying some files that differ only in line ordering
148 rm -rf unify-sort-test
149 mkdir unify-sort-test unify-sort-test
/a unify-sort-test
/b
150 printf
"lmn\nabc\nxyz\n" > unify-sort-test
/a
/file.foo
151 printf
"xyz\nlmn\nabc\n" > unify-sort-test
/b
/file.foo
152 printf
"abc\nlmn\nxyz\n" > unify-sort-test
/expected-result
153 @if
! $(srcdir)/macosx
/universal
/unify
--unify-with-sort
"\.foo$$" \
154 .
/unify-sort-test
/a .
/unify-sort-test
/b \
155 .
/unify-sort-test
/c
; then \
156 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to unify files with differing line ordering!"; \
159 @if
! diff
-q .
/unify-sort-test
/expected-result .
/unify-sort-test
/c
/file.foo
; then \
160 echo
"TEST-UNEXPECTED-FAIL | build/ | unify failed to unify files with differing line ordering!"; \
163 echo
"TEST-PASS | build/ | unify unified files with differing line ordering!"; \
167 ifeq ($(OS_ARCH
),Linux
)
168 libs
:: $(topsrcdir
)/tools
/rb
/fix-linux-stack.pl
169 $(INSTALL
) $< $(DIST
)/bin