michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: USE_RCS_MK := 1 michael@0: include $(topsrcdir)/config/makefiles/rcs.mk michael@0: michael@0: PREF_JS_EXPORTS = $(srcdir)/b2g.js michael@0: michael@0: ifndef LIBXUL_SDK michael@0: michael@0: ifeq (gonk,$(MOZ_WIDGET_TOOLKIT)) michael@0: LIBS += \ michael@0: -lui \ michael@0: -lEGL \ michael@0: -lhardware_legacy \ michael@0: -lhardware \ michael@0: -lcutils \ michael@0: $(DEPTH)/media/libpng/$(LIB_PREFIX)mozpng.$(LIB_SUFFIX) \ michael@0: $(DEPTH)/widget/gonk/libdisplay/$(LIB_PREFIX)display.$(LIB_SUFFIX) \ michael@0: $(MOZ_ZLIB_LIBS) \ michael@0: $(NULL) michael@0: ifeq ($(ANDROID_VERSION),$(findstring $(ANDROID_VERSION),17 18 19)) michael@0: LIBS += \ michael@0: -lgui \ michael@0: -lsuspend \ michael@0: $(NULL) michael@0: endif michael@0: endif michael@0: michael@0: LIBS += $(JEMALLOC_LIBS) michael@0: michael@0: LIBS += \ michael@0: $(XPCOM_STANDALONE_GLUE_LDOPTS) \ michael@0: $(NULL) michael@0: michael@0: ifeq (gonk,$(MOZ_WIDGET_TOOLKIT)) michael@0: LIBS += \ michael@0: -lbinder \ michael@0: -lutils \ michael@0: $(NULL) michael@0: endif michael@0: michael@0: ifeq ($(OS_ARCH),WINNT) michael@0: OS_LIBS += $(call EXPAND_LIBNAME,version) michael@0: endif michael@0: endif #LIBXUL_SDK michael@0: michael@0: UA_UPDATE_FILE = ua-update.json michael@0: michael@0: $(UA_UPDATE_FILE): % : %.in michael@0: # strip out comment lines, which are not valid in JSON michael@0: sed -e '/^ *\/\//d' -e '/^ *$$/d' $^ > $@ michael@0: michael@0: UA_UPDATE_FILES = $(UA_UPDATE_FILE) michael@0: UA_UPDATE_DEST = $(FINAL_TARGET) michael@0: INSTALL_TARGETS += UA_UPDATE michael@0: michael@0: # Make sure the standalone glue doesn't try to get libxpcom.so from b2g/app. michael@0: NSDISTMODE = copy michael@0: michael@0: include $(topsrcdir)/config/rules.mk michael@0: michael@0: APP_ICON = b2g michael@0: michael@0: source_repo ?= $(call getSourceRepo,$(srcdir)/..) michael@0: ifneq (,$(filter http%,$(source_repo))) michael@0: DEFINES += -DMOZ_SOURCE_REPO='$(source_repo)' michael@0: endif michael@0: michael@0: ifeq ($(OS_ARCH),WINNT) michael@0: REDIT_PATH = $(LIBXUL_DIST)/bin michael@0: endif michael@0: michael@0: APP_BINARY = $(MOZ_APP_NAME)$(BIN_SUFFIX) michael@0: michael@0: ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) michael@0: michael@0: APP_NAME = $(MOZ_APP_DISPLAYNAME) michael@0: APP_VERSION = $(MOZ_APP_VERSION) michael@0: michael@0: ifdef MOZ_DEBUG michael@0: APP_NAME := $(APP_NAME)Debug michael@0: endif michael@0: michael@0: AB_CD = $(MOZ_UI_LOCALE) michael@0: michael@0: AB := $(firstword $(subst -, ,$(AB_CD))) michael@0: michael@0: clean clobber repackage:: michael@0: rm -rf $(DIST)/$(APP_NAME).app michael@0: michael@0: ifdef LIBXUL_SDK michael@0: APPFILES = Resources michael@0: else michael@0: APPFILES = MacOS michael@0: endif michael@0: michael@0: libs-preqs = \ michael@0: $(call mkdir_deps,$(DIST)/$(APP_NAME).app/Contents/MacOS) \ michael@0: $(call mkdir_deps,$(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj) \ michael@0: $(NULL) michael@0: michael@0: .PHONY: repackage michael@0: tools repackage:: $(libs-preqs) michael@0: rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents $(DIST)/$(APP_NAME).app --exclude English.lproj michael@0: rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ $(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj michael@0: 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 michael@0: 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 michael@0: rsync -a $(DIST)/bin/ $(DIST)/$(APP_NAME).app/Contents/$(APPFILES) michael@0: $(RM) $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)/mangle $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)/shlibsign michael@0: ifdef LIBXUL_SDK michael@0: cp $(LIBXUL_DIST)/bin/xulrunner$(BIN_SUFFIX) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(APP_BINARY) michael@0: rsync -a --exclude nsinstall --copy-unsafe-links $(LIBXUL_DIST)/XUL.framework $(DIST)/$(APP_NAME).app/Contents/Frameworks michael@0: else michael@0: $(RM) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(PROGRAM) michael@0: rsync -aL $(PROGRAM) $(DIST)/$(APP_NAME).app/Contents/MacOS michael@0: endif michael@0: cp -RL $(srcdir)/b2g.icns $(DIST)/$(APP_NAME).app/Contents/Resources/$(MOZ_APP_NAME).icns michael@0: printf APPLMOZB > $(DIST)/$(APP_NAME).app/Contents/PkgInfo michael@0: michael@0: else # MOZ_WIDGET_TOOLKIT != cocoa michael@0: michael@0: libs:: michael@0: ifdef LIBXUL_SDK michael@0: cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) michael@0: endif michael@0: ifndef SKIP_COPY_XULRUNNER michael@0: ifdef LIBXUL_SDK michael@0: $(NSINSTALL) -D $(DIST)/bin/xulrunner michael@0: (cd $(LIBXUL_SDK)/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DIST)/bin/xulrunner && tar -xf -) michael@0: endif michael@0: endif # SKIP_COPY_XULRUNNER michael@0: michael@0: $(NSINSTALL) -D $(DIST)/bin/chrome/icons/default michael@0: michael@0: # Copy the app icon for b2g-desktop michael@0: ifeq ($(OS_ARCH),WINNT) michael@0: cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/$(APP_ICON).ico michael@0: $(REDIT_PATH)/redit$(HOST_BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) $(srcdir)/$(APP_ICON).ico michael@0: cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/default.ico michael@0: else ifneq (gonk,$(MOZ_WIDGET_TOOLKIT)) michael@0: cp $(srcdir)/default.png $(DIST)/bin/chrome/icons/default/default.png michael@0: endif michael@0: michael@0: endif