b2g/app/Makefile.in
author Mike Shal <mshal@mozilla.com>
Tue, 23 Apr 2013 17:54:15 -0400
changeset 144532 6e45e9f62d2171419a8d8780ad4779ff0488ccb5
parent 143396 875188dad4bf6bb08114ebfbcbc82858594d4c1b
child 144999 ccff1558f51ba04931b87e0414c0af846062c81f
permissions -rw-r--r--
Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey CLOSED TREE From 9e0ba7f425143f545eb6c4b26a9a96b5ade4d8e9 Mon Sep 17 00:00:00 2001

# 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
USE_RCS_MK := 1
include $(topsrcdir)/config/makefiles/rcs.mk

PREF_JS_EXPORTS = $(srcdir)/b2g.js

ifdef ENABLE_MARIONETTE
DEFINES += -DENABLE_MARIONETTE=1
endif

ifndef LIBXUL_SDK

ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
LIBS += \
  -lui \
  -lEGL \
  -lhardware_legacy \
  -lhardware \
  -lcutils \
  $(DEPTH)/media/libpng/$(LIB_PREFIX)mozpng.$(LIB_SUFFIX) \
  $(DEPTH)/widget/gonk/libdisplay/$(LIB_PREFIX)display.$(LIB_SUFFIX) \
  $(MOZ_ZLIB_LIBS) \
  $(NULL)
ifeq (17,$(ANDROID_VERSION))
LIBS += \
  -lgui \
  -lsuspend \
  $(NULL)
endif
OS_LDFLAGS += -Wl,--export-dynamic
LOCAL_INCLUDES += -I$(topsrcdir)/widget/gonk/libdisplay
endif

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

DEFINES += -DXPCOM_GLUE
STL_FLAGS=

LIBS += $(JEMALLOC_LIBS)

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

ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
LIBS += \
  -lbinder \
  -lutils \
  $(NULL)
endif

ifeq ($(OS_ARCH),WINNT)
OS_LIBS += $(call EXPAND_LIBNAME,version)
endif

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

# Make sure the standalone glue doesn't try to get libxpcom.so from b2g/app.
NSDISTMODE = copy

include $(topsrcdir)/config/rules.mk

APP_ICON = b2g

DEFINES += \
  -DAPP_NAME=$(MOZ_APP_NAME) \
  -DAPP_VERSION=$(MOZ_APP_VERSION) \
  -DMOZ_UPDATER=$(MOZ_UPDATER) \
  $(NULL)

source_repo ?= $(call getSourceRepo,$(srcdir)/..)
ifneq (,$(filter http%,$(source_repo)))
  DEFINES += -DMOZ_SOURCE_REPO="$(source_repo)"
endif

ifeq ($(OS_ARCH),WINNT)
REDIT_PATH = $(LIBXUL_DIST)/bin
endif

APP_BINARY = $(MOZ_APP_NAME)$(BIN_SUFFIX)

ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))

APP_NAME = $(MOZ_APP_DISPLAYNAME)
APP_VERSION = $(MOZ_APP_VERSION)

ifdef MOZ_DEBUG
APP_NAME := $(APP_NAME)Debug
endif

AB_CD = $(MOZ_UI_LOCALE)

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

clean clobber repackage::
	rm -rf $(DIST)/$(APP_NAME).app

ifdef LIBXUL_SDK
APPFILES = Resources
else
APPFILES = MacOS
endif

libs-preqs = \
  $(call mkdir_deps,$(DIST)/$(APP_NAME).app/Contents/MacOS) \
  $(call mkdir_deps,$(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj) \
  $(NULL)

.PHONY: repackage
libs repackage:: $(libs-preqs)
	rsync -a --exclude "*.in" $(srcdir)/macbuild/Contents $(DIST)/$(APP_NAME).app --exclude English.lproj
	rsync -a --exclude "*.in" $(srcdir)/macbuild/Contents/Resources/English.lproj/ $(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj
	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
	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
	rsync -a $(DIST)/bin/ $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)
	$(RM) $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)/mangle $(DIST)/$(APP_NAME).app/Contents/$(APPFILES)/shlibsign
ifdef LIBXUL_SDK
	cp $(LIBXUL_DIST)/bin/xulrunner$(BIN_SUFFIX) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(APP_BINARY)
	rsync -a --exclude nsinstall --copy-unsafe-links $(LIBXUL_DIST)/XUL.framework $(DIST)/$(APP_NAME).app/Contents/Frameworks
else
	$(RM) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(PROGRAM)
	rsync -aL $(PROGRAM) $(DIST)/$(APP_NAME).app/Contents/MacOS
endif
	printf "APPLMOZB" > $(DIST)/$(APP_NAME).app/Contents/PkgInfo

else # MOZ_WIDGET_TOOLKIT != cocoa

libs::
ifdef LIBXUL_SDK
	cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY)
endif
ifndef SKIP_COPY_XULRUNNER
ifdef LIBXUL_SDK
	$(NSINSTALL) -D $(DIST)/bin/xulrunner
	(cd $(LIBXUL_SDK)/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DIST)/bin/xulrunner && tar -xf -)
endif
endif # SKIP_COPY_XULRUNNER

	$(NSINSTALL) -D $(DIST)/bin/chrome/icons/default

# Copy the app icon for b2g-desktop
ifeq ($(OS_ARCH),WINNT)
	cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/$(APP_ICON).ico
	$(REDIT_PATH)/redit$(HOST_BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) $(srcdir)/$(APP_ICON).ico
	cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/default.ico
else ifneq (gonk,$(MOZ_WIDGET_TOOLKIT))
	cp $(srcdir)/default.png $(DIST)/bin/chrome/icons/default/default.png
endif

endif