pjs/camino/Makefile.in

190 строки
7.8 KiB
Makefile

# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is
# Netscape Communications.
# Portions created by the Initial Developer are Copyright (C) 2003
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Brian Ryner <bryner@brianryner.com>
# Mark Mentovai <mark@moxienet.com>
# Smokey Ardisson <alqahira@ardisson.org>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = \
flashblock \
$(NULL)
APP_NAME = Camino
PYTHON ?= python
CM_APP_VERSION_FILE = $(srcdir)/config/version.txt
CM_APP_VERSION := $(shell cat $(CM_APP_VERSION_FILE))
CM_COPYRIGHT_YEAR_FILE = $(srcdir)/config/year.txt
CM_COPYRIGHT_YEAR := $(shell cat $(CM_COPYRIGHT_YEAR_FILE))
FOX_APP_VERSION_FILE = $(topsrcdir)/browser/config/version.txt
FOX_APP_VERSION := $(shell cat $(FOX_APP_VERSION_FILE))
PLATFORM_VERSION_FILE = $(topsrcdir)/config/milestone.txt
PLATFORM_VERSION := $(shell egrep "^[^\#]+" $(PLATFORM_VERSION_FILE))
PLATFORM_BUILD_ID_FILE = generated/platform_build_id
PLATFORM_BUILD_ID := $(shell $(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid)
PLATFORM_INI_FILE = ../toolkit/xre/platform.ini
STRINGS_FILES = resources/localized/English.lproj/CertificateDialogs.strings \
resources/localized/English.lproj/Localizable.strings \
PreferencePanes/Appearance/English.lproj/Localizable.strings \
PreferencePanes/Appearance/English.lproj/RegionNames.strings \
PreferencePanes/Downloads/English.lproj/Localizable.strings \
PreferencePanes/General/English.lproj/Localizable.strings \
PreferencePanes/History/English.lproj/Localizable.strings \
PreferencePanes/Privacy/English.lproj/Localizable.strings \
PreferencePanes/Security/English.lproj/Localizable.strings \
PreferencePanes/Tabs/English.lproj/Localizable.strings \
PreferencePanes/WebFeatures/English.lproj/Localizable.strings \
$(NULL)
GENERATED_STRINGS_FILES = $(patsubst %,generated/%,$(STRINGS_FILES))
ifdef MOZ_DEBUG
BUILDSTYLE = Development
else
BUILDSTYLE = Deployment
endif
ifdef BUILD_STATIC_LIBS
TARGET = CaminoStatic
else
TARGET = Camino
endif
GARBAGE_DIRS += build \
$(DIST)/$(APP_NAME).app \
embed-replacements.tmp \
generated \
sparkle/build \
$(NULL)
include $(topsrcdir)/config/rules.mk
unexport CC CXX
ABS_topsrcdir := $(shell cd $(topsrcdir); pwd)
export::
mkdir -p ./wallet/tables && ln -sf $(ABS_topsrcdir)/extensions/wallet/src/*.tbl ./wallet/tables
ifneq ($(ABS_topsrcdir),$(MOZ_BUILD_ROOT))
rsync -a --exclude .DS_Store --exclude "CVS/" --exclude "*.mode1" --exclude "*.pbxuser" $(srcdir)/Camino.xcodeproj .
ln -fs $(srcdir)/src
ln -fs $(srcdir)/resources
ln -fs $(srcdir)/config
mkdir -p sparkle
rm -rf sparkle/Sparkle.xcodeproj
ln -fs $(ABS_topsrcdir)/camino/sparkle/* sparkle
rm -rf sparkle/Sparkle.xcodeproj
rsync -aC $(ABS_topsrcdir)/camino/sparkle/Sparkle.xcodeproj sparkle
ln -fs $(srcdir)/PreferencePanes
ln -fs $(srcdir)/Info-*.plist .
endif
generated:
mkdir -p $@
# Generate files which need to pull version numbers or dates from other files in the tree
generated/resources/application/all-camino.js: $(srcdir)/resources/application/all-camino.js.in $(FOX_APP_VERSION_FILE) $(CM_APP_VERSION_FILE) generated
mkdir -p $(dir $@)
sed -e "s/%FOX_APP_VERSION%/$(FOX_APP_VERSION)/" \
-e "s/%CM_APP_VERSION%/$(CM_APP_VERSION)/" $< > $@
generated/Info-Camino.plist: $(srcdir)/Info-Camino.plist.in $(CM_APP_VERSION_FILE) $(CM_COPYRIGHT_YEAR_FILE) generated
mkdir -p $(dir $@)
sed -e "s/%CM_APP_VERSION%/$(CM_APP_VERSION)/" \
-e "s/%CM_COPYRIGHT_YEAR%/$(CM_COPYRIGHT_YEAR)/" $< > $@
generated/resources/localized/English.lproj/InfoPlist.strings: $(srcdir)/resources/localized/English.lproj/InfoPlist.strings.in $(CM_APP_VERSION_FILE) $(CM_COPYRIGHT_YEAR_FILE) generated
mkdir -p $(dir $@)
sed -e "s/%CM_APP_VERSION%/$(CM_APP_VERSION)/" \
-e "s/%CM_COPYRIGHT_YEAR%/$(CM_COPYRIGHT_YEAR)/" $< | \
iconv -f UTF-8 -t UTF-16 > $@
# Generate UTF-16 with BOM strings files from UTF-8 strings.in files. On Mac OS
# X, iconv seems always to output big-endian when asked for UTF-16 with a BOM,
# which is what AppleGlot seems to require.
$(GENERATED_STRINGS_FILES): generated/%.strings: $(srcdir)/%.strings.in generated
mkdir -p $(dir $@)
iconv -f UTF-8 -t UTF-16 $< > $@
# This will only touch the build ID file if the build ID has changed. The
# file's timestamp will be preserved when the build ID hasn't changed,
# reducing unnecessary build activity.
$(PLATFORM_BUILD_ID_FILE): FORCE
grep -lFx "$(PLATFORM_BUILD_ID)" $@ >& /dev/null || \
echo $(PLATFORM_BUILD_ID) > $@
# Put platform.ini into toolkit/xre and dist/bin, because that's where
# Tinderbox looks to figure out the build ID. It currently doesn't need
# to be distributed with the application.
$(PLATFORM_INI_FILE): $(PLATFORM_BUILD_ID_FILE) $(PLATFORM_VERSION_FILE)
mkdir -p `dirname $@`
echo [Build] > $@
echo BuildID=$(PLATFORM_BUILD_ID) >> $@
echo Milestone=$(PLATFORM_VERSION) >> $@
$(INSTALL) $@ $(DIST)/bin
clean clobber::
rm -rf $(PLATFORM_INI_FILE) $(DIST)/bin/platform.ini
generated/CmXULAppData.h: $(srcdir)/src/embedding/CmXULAppData.h.in $(PLATFORM_BUILD_ID_FILE) $(PLATFORM_VERSION_FILE) $(CM_APP_VERSION_FILE)
sed -e "s/%PLATFORM_BUILD_ID%/$(PLATFORM_BUILD_ID)/" \
-e "s/%PLATFORM_VERSION%/$(PLATFORM_VERSION)/" \
-e "s/%CM_APP_VERSION%/$(CM_APP_VERSION)/" $< > $@
# The embed-replacements rsync is done for both srcdir and objdir builds
# to avoid adding CVS stuff to embed.jar.
libs:: generated/resources/application/all-camino.js generated/Info-Camino.plist generated/resources/localized/English.lproj/InfoPlist.strings $(GENERATED_STRINGS_FILES) generated/CmXULAppData.h $(PLATFORM_INI_FILE)
rsync -aC --delete $(srcdir)/embed-replacements/ embed-replacements.tmp
cd embed-replacements.tmp && $(ZIP) -r0DX ../../dist/Embed/chrome/embed.jar *
$(PBBUILD) -project Camino.xcodeproj -target $(TARGET) -configuration $(BUILDSTYLE) $(PBBUILD_SETTINGS)
libs::
rsync -a --copy-unsafe-links $(XCODE_PRODUCT_DIR)/Camino.app/ $(DIST)/$(APP_NAME).app
$(RM) $(DIST)/$(APP_NAME).app/Contents/MacOS/components/camino.xpt
$(XPIDL_LINK) $(DIST)/$(APP_NAME).app/Contents/MacOS/camino.xpt $(DIST)/$(APP_NAME).app/Contents/MacOS/components/*.xpt
$(RM) $(DIST)/$(APP_NAME).app/Contents/MacOS/components/*.xpt
mv $(DIST)/$(APP_NAME).app/Contents/MacOS/camino.xpt $(DIST)/$(APP_NAME).app/Contents/MacOS/components/camino.xpt
# convenience target for PB script build phases
echo_srcdir:
@echo $(srcdir)