summaryrefslogtreecommitdiff
path: root/browser/app/Makefile.in
blob: 9a92a426019e6e1ece591381cfec305790fa5789 (plain)
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
191
192
193
194
195
196
197
198
199
# 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

dist_dest   = $(DIST)/$(MOZ_MACBUNDLE_NAME)

ifdef ENABLE_MARIONETTE
DEFINES += -DENABLE_MARIONETTE=1
endif

PREF_JS_EXPORTS = $(srcdir)/profile/firefox.js \
		  $(NULL)


# hardcode en-US for the moment
AB_CD = en-US

DEFINES += \
  -DAB_CD=$(AB_CD) \
  -DAPP_VERSION="$(MOZ_APP_VERSION)" \
  -DFIREFOX_ICO=\"$(DIST)/branding/firefox.ico\" \
  -DDOCUMENT_ICO=\"$(DIST)/branding/document.ico\" \
  -DNEWWINDOW_ICO=\"$(DIST)/branding/newwindow.ico\" \
  -DNEWTAB_ICO=\"$(DIST)/branding/newtab.ico\" \
  -DPBMODE_ICO=\"$(DIST)/branding/pbmode.ico\" \
  $(NULL)

ifdef MOZILLA_OFFICIAL
DEFINES += -DMOZILLA_OFFICIAL
endif

ifdef LIBXUL_SDK #{
PREF_JS_EXPORTS += $(srcdir)/profile/channel-prefs.js
DEFINES += -DLIBXUL_SDK
endif #} LIBXUL_SDK

# Build a binary bootstrapping with XRE_main

LOCAL_INCLUDES += \
  -I$(topsrcdir)/toolkit/xre \
  -I$(topsrcdir)/xpcom/base \
  -I$(topsrcdir)/xpcom/build \
  -I$(DEPTH)/build \
  $(NULL)

DEFINES += -DXPCOM_GLUE
STL_FLAGS=

LIBS += \
	$(XPCOM_STANDALONE_GLUE_LDOPTS) \
	$(NULL)

ifdef MOZ_LINKER
LIBS += $(MOZ_ZLIB_LIBS)
endif

ifdef HAVE_CLOCK_MONOTONIC
LIBS += $(REALTIME_LIBS)
endif

ifndef MOZ_WINCONSOLE
ifdef MOZ_DEBUG
MOZ_WINCONSOLE = 1
else
MOZ_WINCONSOLE = 0
endif
endif

# This switches $(INSTALL) to copy mode, like $(SYSINSTALL), so things that
# shouldn't get 755 perms need $(IFLAGS1) for either way of calling nsinstall.
NSDISTMODE = copy

include $(topsrcdir)/config/config.mk

ifdef _MSC_VER
# Always enter a Windows program through wmain, whether or not we're
# a console application.
WIN32_EXE_LDFLAGS += -ENTRY:wmainCRTStartup
endif

ifeq ($(OS_ARCH),WINNT)
RCINCLUDE = splash.rc
# Rebuild firefox.exe if the manifest changes - it's included by splash.rc.
# (this dependency should really be just for firefox.exe, not other targets)
EXTRA_DEPS += $(PROGRAM).manifest
ifndef GNU_CC
RCFLAGS += -DMOZ_PHOENIX -I$(srcdir)
else
RCFLAGS += -DMOZ_PHOENIX --include-dir $(srcdir)
endif
endif

PROGRAMS_DEST = $(DIST)/bin

include $(topsrcdir)/config/rules.mk

ifeq ($(OS_ARCH),WINNT) #{
#
# Control the default heap size.
# This is the heap returned by GetProcessHeap().
# As we use the CRT heap, the default size is too large and wastes VM.
#
# The default heap size is 1MB on Win32.
# The heap will grow if need be.
#
# Set it to 256k.  See bug 127069.
#
ifndef GNU_CC #{
LDFLAGS += /HEAP:0x40000
endif #}
endif #}

ifneq (,$(filter-out WINNT,$(OS_ARCH)))

libs:: 
	cp -p $(MOZ_APP_NAME)$(BIN_SUFFIX) $(DIST)/bin/$(MOZ_APP_NAME)-bin$(BIN_SUFFIX)

GARBAGE += $(addprefix $(FINAL_TARGET)/defaults/pref/, firefox.js)

endif

ifdef MOZ_WIDGET_GTK
libs::
	$(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(FINAL_TARGET)/icons
	$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png  $(FINAL_TARGET)/chrome/icons/default
	$(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png  $(FINAL_TARGET)/chrome/icons/default
	$(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png  $(FINAL_TARGET)/chrome/icons/default
endif

libs:: $(srcdir)/profile/prefs.js
	$(INSTALL) $(IFLAGS1) $^ $(FINAL_TARGET)/defaults/profile

ifndef LIBXUL_SDK
# channel-prefs.js is handled separate from other prefs due to bug 756325
libs:: $(srcdir)/profile/channel-prefs.js
	$(NSINSTALL) -D $(DIST)/bin/defaults/pref
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(PREF_PPFLAGS) $(ACDEFINES) $^ > $(DIST)/bin/defaults/pref/channel-prefs.js
endif

libs:: $(srcdir)/blocklist.xml
	$(INSTALL) $(IFLAGS1) $^ $(FINAL_TARGET)

ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))

MAC_APP_NAME = $(MOZ_APP_DISPLAYNAME)

ifdef MOZ_DEBUG
MAC_APP_NAME := $(MAC_APP_NAME)Debug
endif

AB_CD = $(MOZ_UI_LOCALE)

AB := $(firstword $(subst -, ,$(AB_CD)))

clean clobber repackage::
	$(RM) -r $(dist_dest)

ifdef LIBXUL_SDK
APPFILES = Resources
else
APPFILES = MacOS
endif

MAC_BUNDLE_VERSION = $(shell $(PYTHON) $(srcdir)/macversion.py --version=$(MOZ_APP_VERSION) --buildid=$(DEPTH)/config/buildid)

.PHONY: repackage
libs repackage:: $(PROGRAM)
	$(MKDIR) -p $(dist_dest)/Contents/MacOS
	$(MKDIR) -p $(dist_dest)/Contents/Resources/$(AB).lproj
	rsync -a --exclude "*.in" $(srcdir)/macbuild/Contents $(dist_dest) --exclude English.lproj
	rsync -a --exclude "*.in" $(srcdir)/macbuild/Contents/Resources/English.lproj/ $(dist_dest)/Contents/Resources/$(AB).lproj
	sed -e "s/%APP_VERSION%/$(MOZ_APP_VERSION)/" -e "s/%MAC_APP_NAME%/$(MAC_APP_NAME)/" -e "s/%MOZ_MACBUNDLE_ID%/$(MOZ_MACBUNDLE_ID)/" -e "s/%MAC_BUNDLE_VERSION%/$(MAC_BUNDLE_VERSION)/" $(srcdir)/macbuild/Contents/Info.plist.in > $(dist_dest)/Contents/Info.plist
	sed -e "s/%MAC_APP_NAME%/$(MAC_APP_NAME)/" $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > $(dist_dest)/Contents/Resources/$(AB).lproj/InfoPlist.strings
	rsync -a $(DIST)/bin/ $(dist_dest)/Contents/$(APPFILES)
	$(RM) $(dist_dest)/Contents/MacOS/$(PROGRAM)
	rsync -aL $(PROGRAM) $(dist_dest)/Contents/MacOS
	cp -RL $(DIST)/branding/firefox.icns $(dist_dest)/Contents/Resources/firefox.icns
	cp -RL $(DIST)/branding/document.icns $(dist_dest)/Contents/Resources/document.icns
	printf APPLMOZB > $(dist_dest)/Contents/PkgInfo
endif

ifdef LIBXUL_SDK #{
ifndef SKIP_COPY_XULRUNNER #{
libs::
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) #{
	rsync -a --copy-unsafe-links $(LIBXUL_DIST)/XUL.framework $(dist_dest)/Contents/Frameworks
else
	$(NSINSTALL) -D $(DIST)/bin/xulrunner
	(cd $(LIBXUL_SDK)/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DIST)/bin/xulrunner && tar -xf -)
endif #} cocoa
endif #} SKIP_COPY_XULRUNNER
endif #} LIBXUL_SDK