~ubuntu-branches/ubuntu/quantal/enigmail/quantal-security

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# -*- Makefile -*-
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

DEPTH		= @DEPTH@
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@

include $(DEPTH)/config/autoconf.mk

# For sanity's sake, we compile nsinstall without the wrapped system
# headers, so that we can use it to set up the wrapped system headers.
VISIBILITY_FLAGS =

# STDCXX_COMPAT is not needed here, and will actually fail because
# libstdc++-compat is not built yet.
STDCXX_COMPAT =

ifneq (WINNT,$(HOST_OS_ARCH))
HOST_PROGRAM	= nsinstall$(HOST_BIN_SUFFIX)
HOST_CSRCS	= nsinstall.c pathsub.c
endif

TARGETS		= $(HOST_PROGRAM) $(SIMPLE_PROGRAMS)

ifndef CROSS_COMPILE
ifdef USE_ELF_DYNSTR_GC
TARGETS		+= elf-dynstr-gc
# Compiling the above will create dependency files.
NEED_MDDEPDIR	= 1
endif
endif

# IMPORTANT: Disable NSBUILDROOT for this directory only, otherwise we have
# a recursive rule for finding nsinstall and the Perl scripts.
ifdef NSBUILDROOT
override NSBUILDROOT :=
endif

ifdef GNU_CC
MODULE_OPTIMIZE_FLAGS = -O3
endif

ifndef COMPILER_DEPEND
ifndef MOZ_NATIVE_MAKEDEPEND
DIRS		+= mkdepend
endif
endif

include $(topsrcdir)/config/config.mk

# Do not install util programs
NO_INSTALL=1

include $(topsrcdir)/config/rules.mk

HOST_CFLAGS += -DUNICODE -D_UNICODE

ifeq ($(OS_CONFIG),SunOS4.1)
NSPR_CFLAGS	+= -I$(srcdir)/../nsprpub/pr/include/md
endif

HEADERS = \
	$(DEPTH)/mozilla-config.h \
	$(srcdir)/nsStaticComponents.h \
	$(NULL)

export:: $(TARGETS) $(HEADERS)
	$(INSTALL) $(IFLAGS1) $(HEADERS) $(DIST)/include
	-$(RM) $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES)
ifdef HOST_PROGRAM
	$(INSTALL) $(HOST_PROGRAM) $(DIST)/bin
endif

# Generate a new buildid every time we "export" in config... that's only
# supposed to be once per-build!
export::
ifdef MOZ_BUILD_DATE
	printf "%s" $(MOZ_BUILD_DATE) > buildid
else
	$(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid > buildid
endif

ifdef WRAP_SYSTEM_INCLUDES
export-preqs = \
  $(call mkdir_deps,system_wrappers) \
  $(NULL)

export:: $(export-preqs)
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $(ACDEFINES) \
		-DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \
		-DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
		-DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
		-DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
		-DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
		-DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
		-DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
		-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
		-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
		$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
	$(INSTALL) system_wrappers $(DIST)

GARBAGE_DIRS += system_wrappers
endif

ifdef WRAP_STL_INCLUDES
ifdef GNU_CXX
stl_compiler = gcc
else
ifdef _MSC_VER
stl_compiler = msvc
endif
endif
endif

ifdef stl_compiler
STL_WRAPPERS_SENTINEL = $(DIST)/stl_wrappers/sentinel

$(STL_WRAPPERS_SENTINEL): $(srcdir)/make-stl-wrappers.py $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers $(GLOBAL_DEPS)
	$(PYTHON) $(srcdir)/make-stl-wrappers.py stl_wrappers $(stl_compiler) $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers
	$(PYTHON) $(srcdir)/nsinstall.py stl_wrappers $(DIST)
	touch $(STL_WRAPPERS_SENTINEL)

export:: $(STL_WRAPPERS_SENTINEL)

GARBAGE += $(STL_WRAPPERS_SENTINEL)
GARBAGE_DIRS += stl_wrappers
endif

install::
	$(SYSINSTALL) $(IFLAGS1) $(DEPTH)/mozilla-config.h $(DESTDIR)$(includedir)

GARBAGE += \
  $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES) buildid $(srcdir)/*.pyc *.pyc

ifndef CROSS_COMPILE
ifdef USE_ELF_DYNSTR_GC
elf-dynstr-gc: elf-dynstr-gc.c $(GLOBAL_DEPS)
	$(CC) $(COMPILE_CFLAGS) $(GLIB_CFLAGS) -o $@ $< $(LDFLAGS) $(GLIB_LIBS) 
endif
endif

FORCE:

ifndef COMPILER_DEPEND
ifdef MKDEPEND_DIR
clean clobber realclean clobber_all::
	cd $(MKDEPEND_DIR); $(MAKE) $@
endif
endif

PYUNITS := \
  unit-Expression.py \
  unit-Preprocessor.py \
  unit-nsinstall.py \
  unit-printprereleasesuffix.py \
  unit-JarMaker.py \
  unit-buildlist.py \
  unit-expandlibs.py \
  unit-writemozinfo.py \
  unit-mozunit.py \
  $(NULL)

check-preqs = \
  check-python-modules \
  check-jar-mn \
  check-makefiles \
  $(NULL)

check:: $(check-preqs)

check-python-modules::
	@$(EXIT_ON_ERROR) \
	for test in $(PYUNITS); do \
	  $(PYTHON) $(srcdir)/tests/$$test ; \
	done

check-jar-mn::
	$(MAKE) -C tests/src-simple check-jar
	$(MAKE) -C tests/src-simple check-flat
	$(MAKE) -C tests/src-simple check-flat USE_EXTENSION_MANIFEST=1
ifneq (,$(filter-out WINNT OS2,$(OS_ARCH)))
	$(MAKE) -C tests/src-simple check-symlink
endif

check-makefiles:
	$(MAKE) -C tests/makefiles/autodeps check