|
1 # This Source Code Form is subject to the terms of the Mozilla Public |
|
2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
4 |
|
5 USE_RCS_MK := 1 |
|
6 include $(topsrcdir)/config/makefiles/rcs.mk |
|
7 |
|
8 PREF_JS_EXPORTS = $(srcdir)/b2g.js |
|
9 |
|
10 ifndef LIBXUL_SDK |
|
11 |
|
12 ifeq (gonk,$(MOZ_WIDGET_TOOLKIT)) |
|
13 LIBS += \ |
|
14 -lui \ |
|
15 -lEGL \ |
|
16 -lhardware_legacy \ |
|
17 -lhardware \ |
|
18 -lcutils \ |
|
19 $(DEPTH)/media/libpng/$(LIB_PREFIX)mozpng.$(LIB_SUFFIX) \ |
|
20 $(DEPTH)/widget/gonk/libdisplay/$(LIB_PREFIX)display.$(LIB_SUFFIX) \ |
|
21 $(MOZ_ZLIB_LIBS) \ |
|
22 $(NULL) |
|
23 ifeq ($(ANDROID_VERSION),$(findstring $(ANDROID_VERSION),17 18 19)) |
|
24 LIBS += \ |
|
25 -lgui \ |
|
26 -lsuspend \ |
|
27 $(NULL) |
|
28 endif |
|
29 endif |
|
30 |
|
31 LIBS += $(JEMALLOC_LIBS) |
|
32 |
|
33 LIBS += \ |
|
34 $(XPCOM_STANDALONE_GLUE_LDOPTS) \ |
|
35 $(NULL) |
|
36 |
|
37 ifeq (gonk,$(MOZ_WIDGET_TOOLKIT)) |
|
38 LIBS += \ |
|
39 -lbinder \ |
|
40 -lutils \ |
|
41 $(NULL) |
|
42 endif |
|
43 |
|
44 ifeq ($(OS_ARCH),WINNT) |
|
45 OS_LIBS += $(call EXPAND_LIBNAME,version) |
|
46 endif |
|
47 endif #LIBXUL_SDK |
|
48 |
|
49 UA_UPDATE_FILE = ua-update.json |
|
50 |
|
51 $(UA_UPDATE_FILE): % : %.in |
|
52 # strip out comment lines, which are not valid in JSON |
|
53 sed -e '/^ *\/\//d' -e '/^ *$$/d' $^ > $@ |
|
54 |
|
55 UA_UPDATE_FILES = $(UA_UPDATE_FILE) |
|
56 UA_UPDATE_DEST = $(FINAL_TARGET) |
|
57 INSTALL_TARGETS += UA_UPDATE |
|
58 |
|
59 # Make sure the standalone glue doesn't try to get libxpcom.so from b2g/app. |
|
60 NSDISTMODE = copy |
|
61 |
|
62 include $(topsrcdir)/config/rules.mk |
|
63 |
|
64 APP_ICON = b2g |
|
65 |
|
66 source_repo ?= $(call getSourceRepo,$(srcdir)/..) |
|
67 ifneq (,$(filter http%,$(source_repo))) |
|
68 DEFINES += -DMOZ_SOURCE_REPO='$(source_repo)' |
|
69 endif |
|
70 |
|
71 ifeq ($(OS_ARCH),WINNT) |
|
72 REDIT_PATH = $(LIBXUL_DIST)/bin |
|
73 endif |
|
74 |
|
75 APP_BINARY = $(MOZ_APP_NAME)$(BIN_SUFFIX) |
|
76 |
|
77 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) |
|
78 |
|
79 APP_NAME = $(MOZ_APP_DISPLAYNAME) |
|
80 APP_VERSION = $(MOZ_APP_VERSION) |
|
81 |
|
82 ifdef MOZ_DEBUG |
|
83 APP_NAME := $(APP_NAME)Debug |
|
84 endif |
|
85 |
|
86 AB_CD = $(MOZ_UI_LOCALE) |
|
87 |
|
88 AB := $(firstword $(subst -, ,$(AB_CD))) |
|
89 |
|
90 clean clobber repackage:: |
|
91 rm -rf $(DIST)/$(APP_NAME).app |
|
92 |
|
93 ifdef LIBXUL_SDK |
|
94 APPFILES = Resources |
|
95 else |
|
96 APPFILES = MacOS |
|
97 endif |
|
98 |
|
99 libs-preqs = \ |
|
100 $(call mkdir_deps,$(DIST)/$(APP_NAME).app/Contents/MacOS) \ |
|
101 $(call mkdir_deps,$(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj) \ |
|
102 $(NULL) |
|
103 |
|
104 .PHONY: repackage |
|
105 tools repackage:: $(libs-preqs) |
|
106 rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents $(DIST)/$(APP_NAME).app --exclude English.lproj |
|
107 rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ $(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj |
|
108 sed -e 's/%MOZ_APP_VERSION%/$(MOZ_APP_VERSION)/' -e 's/%MOZ_APP_NAME%/$(MOZ_APP_NAME)/' -e 's/%APP_VERSION%/$(APP_VERSION)/' -e 's/%APP_NAME%/$(APP_NAME)/' -e 's/%APP_BINARY%/$(APP_BINARY)/' $(srcdir)/macbuild/Contents/Info.plist.in > $(DIST)/$(APP_NAME).app/Contents/Info.plist |
|
109 sed -e 's/%APP_VERSION%/$(APP_VERSION)/' -e 's/%APP_NAME%/$(APP_NAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > $(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj/InfoPlist.strings |
|
110 rsync -a $(DIST)/bin/ $(DIST)/$(APP_NAME).app/Contents/$(APPFILES) |
|
111 $(RM) $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)/mangle $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)/shlibsign |
|
112 ifdef LIBXUL_SDK |
|
113 cp $(LIBXUL_DIST)/bin/xulrunner$(BIN_SUFFIX) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(APP_BINARY) |
|
114 rsync -a --exclude nsinstall --copy-unsafe-links $(LIBXUL_DIST)/XUL.framework $(DIST)/$(APP_NAME).app/Contents/Frameworks |
|
115 else |
|
116 $(RM) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(PROGRAM) |
|
117 rsync -aL $(PROGRAM) $(DIST)/$(APP_NAME).app/Contents/MacOS |
|
118 endif |
|
119 cp -RL $(srcdir)/b2g.icns $(DIST)/$(APP_NAME).app/Contents/Resources/$(MOZ_APP_NAME).icns |
|
120 printf APPLMOZB > $(DIST)/$(APP_NAME).app/Contents/PkgInfo |
|
121 |
|
122 else # MOZ_WIDGET_TOOLKIT != cocoa |
|
123 |
|
124 libs:: |
|
125 ifdef LIBXUL_SDK |
|
126 cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) |
|
127 endif |
|
128 ifndef SKIP_COPY_XULRUNNER |
|
129 ifdef LIBXUL_SDK |
|
130 $(NSINSTALL) -D $(DIST)/bin/xulrunner |
|
131 (cd $(LIBXUL_SDK)/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DIST)/bin/xulrunner && tar -xf -) |
|
132 endif |
|
133 endif # SKIP_COPY_XULRUNNER |
|
134 |
|
135 $(NSINSTALL) -D $(DIST)/bin/chrome/icons/default |
|
136 |
|
137 # Copy the app icon for b2g-desktop |
|
138 ifeq ($(OS_ARCH),WINNT) |
|
139 cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/$(APP_ICON).ico |
|
140 $(REDIT_PATH)/redit$(HOST_BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) $(srcdir)/$(APP_ICON).ico |
|
141 cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/default.ico |
|
142 else ifneq (gonk,$(MOZ_WIDGET_TOOLKIT)) |
|
143 cp $(srcdir)/default.png $(DIST)/bin/chrome/icons/default/default.png |
|
144 endif |
|
145 |
|
146 endif |