#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 include /usr/share/dpatch/dpatch.make # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) DEBIAN_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: *\(.*\)$$/\1/ p') DEBIAN_REV_CODE := $(shell echo $(DEBIAN_VERSION) | sed 's/^.*-\([0-9]*\)[^-]*$$/0\1/ ; s/^.*\(..\)$$/\1/') MOZILLA_PACKAGES := $(shell awk '/^Package: mozilla/ { print $$2 }' $(CURDIR)/debian/control ) BUILD_DATE=$(shell perl -e '($$s,$$m,$$h,$$d,$$M,$$y) = gmtime((stat("client.mk"))[9]); printf "%04d%02d%02d\n",$$y + 1900,$$M + 1,$$d;') export BUILD_OFFICIAL=1 export MOZ_BUILD_DATE=$(BUILD_DATE)$(DEBIAN_REV_CODE) CFLAGS = -Wall -pipe ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) OPTFLAGS = -O0 else OPTFLAGS = -O2 -fno-strict-aliasing endif OPTFLAGS += -g ifeq ($(DEB_BUILD_ARCH),ppc64) OPTFLAGS = -mminimal-toc endif ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) DEBUGFLAGS = --enable-debug endif # Let's give it a try without that #ifneq ($(DEB_BUILD_ARCH),mips) #ifneq ($(DEB_BUILD_ARCH),mipsel) # CONFIGURE_OPTIONS = --enable-static --disable-shared #endif #endif SHELL=/bin/bash # I use bashisms TMP_DIR = $(CURDIR)/debian/tmp APPLICATIONS_DIR = $(TMP_DIR)/usr/share/applications DIST = $(CURDIR)/dist MAINTAINER_SCRIPTS = $(subst .in,,$(wildcard debian/iceape*.p*.in)) debian/mozilla-runner DESKTOP_FILES = $(subst .in,,$(wildcard debian/*.desktop.in)) MENU_FILES = $(subst .in,,$(wildcard debian/*.menu.in)) config.status: patch-stamp ./configure debian/mozconfig dh_testdir LDFLAGS="-Wl,--as-needed" \ MOZCONFIG=debian/mozconfig \ CFLAGS="$(CFLAGS)" \ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-optimize="$(OPTFLAGS)" #cp -f debian/localstart.html debian/README.Debian $(CURDIR)/xpfe/global/resources/content/ #cp -f debian/mailstart.xhtml $(CURDIR)/mailnews/base/resources/content/start.xhtml build: build-stamp build-stamp: config.status dh_testdir # icons cd debian/extras && uudecode *.uue # generate branding from svg to proper places rsvg-convert -w 274 -h 256 -o \ $(CURDIR)/debian/extras/logo200.png \ $(CURDIR)/debian/extras/iceape_logo_plain.svg touch $(CURDIR)/suite/branding/icons/gtk/seamonkey.png rsvg-convert -w 128 -h 128 -o \ $(CURDIR)/debian/extras/iceape128.png \ $(CURDIR)/debian/extras/iceape_icon_plain.svg rsvg-convert -w 64 -h 64 -o \ $(CURDIR)/debian/extras/iceape64.png \ $(CURDIR)/debian/extras/iceape_icon_plain.svg rsvg-convert -w 48 -h 48 -o \ $(CURDIR)/debian/extras/iceape48.png \ $(CURDIR)/debian/extras/iceape_icon_plain.svg rsvg-convert -w 32 -h 32 -o \ $(CURDIR)/debian/extras/iceape.png \ $(CURDIR)/debian/extras/iceape_icon_plain.svg rsvg-convert -w 16 -h 16 -o \ $(CURDIR)/debian/extras/iceape16.png \ $(CURDIR)/debian/extras/iceape_icon_plain.svg cp -f $(CURDIR)/debian/extras/logo200.png \ $(CURDIR)/suite/branding/content/logo.png convert $(CURDIR)/debian/extras/iceape.png \ $(CURDIR)/suite/branding/icons/gtk/default.xpm convert $(CURDIR)/debian/extras/iceape.png \ $(CURDIR)/xpfe/bootstrap/icons/gtk/main-window.xpm convert $(CURDIR)/debian/extras/iceape16.png \ $(CURDIR)/suite/branding/icons/gtk/default16.xpm convert $(CURDIR)/debian/extras/iceape16.png \ $(CURDIR)/xpfe/bootstrap/icons/gtk/main-window16.xpm cp -f $(CURDIR)/debian/extras/Throbber-small.gif \ $(CURDIR)/themes/classic/communicator/brand/throbber-anim.gif convert $(CURDIR)/debian/extras/Throbber-small.png \ $(CURDIR)/themes/classic/communicator/brand/throbber-single.gif cp -f $(CURDIR)/debian/extras/Throbber-small.gif \ $(CURDIR)/themes/classic/communicator/brand/throbber16-anim.gif convert $(CURDIR)/debian/extras/Throbber-small.png \ $(CURDIR)/themes/classic/communicator/brand/throbber16-single.gif cp -f $(CURDIR)/debian/extras/Throbber-small.gif \ $(CURDIR)/themes/modern/communicator/brand/throbber-anim.gif convert $(CURDIR)/debian/extras/Throbber-small.png \ $(CURDIR)/themes/modern/communicator/brand/throbber-single.gif cp -f $(CURDIR)/debian/extras/Throbber-small.gif \ $(CURDIR)/themes/modern/communicator/brand/throbber16-anim.gif convert $(CURDIR)/debian/extras/Throbber-small.png \ $(CURDIR)/themes/modern/communicator/brand/throbber16-single.gif # copy debian iceape splash cp -f $(CURDIR)/debian/extras/iceape_logo_splash.xpm \ $(CURDIR)/xpfe/bootstrap/splash.xpm # generate calendar images #rsvg-convert -w 48 -h 48 -o \ # $(CURDIR)/debian/extras/calendar48.png \ # $(CURDIR)/debian/extras/calendar.svg #convert $(CURDIR)/debian/extras/calendar48.png \ # $(CURDIR)/calendar/sunbird/app/default.xpm #cp -f $(CURDIR)/debian/extras/calendar48.png \ # $(CURDIR)/calendar/resources/content/sunbird_small.png # full build $(MAKE) BUILD_MODULES=all touch build-stamp clean:: clean-patched unpatch clean-patched: dh_testdir dh_testroot rm -f build-stamp install-stamp debian/*.png debian/extras/*.gif debian/extras/*.png MPL rm -f $(CURDIR)/suite/branding/icons/gtk/seamonkey.png rm -f $(CURDIR)/themes/classic/communicator/brand/throbber-anim.gif \ $(CURDIR)/themes/classic/communicator/brand/throbber16-anim.gif \ $(CURDIR)/themes/classic/communicator/brand/throbber-single.gif \ $(CURDIR)/themes/classic/communicator/brand/throbber16-single.gif rm -f $(CURDIR)/themes/modern/communicator/brand/throbber-anim.gif \ $(CURDIR)/themes/modern/communicator/brand/throbber16-anim.gif \ $(CURDIR)/themes/modern/communicator/brand/throbber-single.gif \ $(CURDIR)/themes/modern/communicator/brand/throbber16-single.gif rm -f $(CURDIR)/calendar/resources/content/sunbird_small.png \ $(CURDIR)/suite/branding/content/logo.png # Add here commands to clean up after the build process. -$(MAKE) distclean dh_clean install: install-stamp install-stamp: build-stamp dh_testdir dh_testroot dh_clean -k dh_installdirs -a $(MAKE) install DESTDIR=$(TMP_DIR) install -d -m 755 $(TMP_DIR)/usr/share/pixmaps install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/main-window.xpm $(TMP_DIR)/usr/share/pixmaps/iceape.xpm install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/editorWindow.xpm $(TMP_DIR)/usr/share/pixmaps/iceape-composer.xpm install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/chatzilla-window.xpm $(TMP_DIR)/usr/share/pixmaps/chatzilla.xpm install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/addressbookWindow.xpm $(TMP_DIR)/usr/share/pixmaps/iceape-addressbook.xpm install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/messengerWindow.xpm $(TMP_DIR)/usr/share/pixmaps/iceape-mailnews.xpm install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/msgcomposeWindow.xpm $(TMP_DIR)/usr/share/pixmaps/iceape-mail-compose.xpm #install -m 644 $(TMP_DIR)/usr/lib/iceape/chrome/icons/default/calendar-window.xpm $(TMP_DIR)/usr/share/pixmaps/iceape-calendar.xpm $(foreach size,16x16 32x32 48x48 64x64 128x128 scalable,\ install -d -m 755 $(TMP_DIR)/usr/share/icons/hicolor/$(size)/apps;) $(foreach size,16 32 48 64 128,\ install -m 644 $(CURDIR)/debian/extras/iceape$(size).png $(TMP_DIR)/usr/share/icons/hicolor/$(size)x$(size)/apps/iceape.png;) install -m 644 $(CURDIR)/debian/extras/iceape_icon_plain.svg $(TMP_DIR)/usr/share/icons/hicolor/scalable/apps/iceape.svg install -d -m 755 $(TMP_DIR)/usr/share/applications install -m 644 $(CURDIR)/debian/menu_dir/*.desktop $(TMP_DIR)/usr/share/applications install -m 644 $(CURDIR)/debian/extras/*.src $(CURDIR)/debian/extras/*.gif $(TMP_DIR)/usr/lib/iceape/searchplugins install -d -m 755 $(TMP_DIR)/usr/sbin install -m 755 $(CURDIR)/debian/update-*-chrome $(TMP_DIR)/usr/sbin install -m 755 $(CURDIR)/debian/iceape-runner $(TMP_DIR)/usr/bin/iceape install -m 644 $(CURDIR)/dist/bin/.autoreg $(CURDIR)/debian/iceape.cfg $(TMP_DIR)/usr/lib/iceape install -d -m 755 $(TMP_DIR)/etc/iceape/pref install -m 644 $(CURDIR)/debian/base.js $(TMP_DIR)/etc/iceape/pref install -m 644 $(CURDIR)/debian/iceaperc $(TMP_DIR)/etc/iceape install -m 644 $(CURDIR)/debian/homepagereset.js $(CURDIR)/debian/about_debian.js $(TMP_DIR)/usr/lib/iceape/components echo // Debian package version \ > debian/tmp/usr/lib/iceape/defaults/pref/vendor.js echo "pref(\"general.useragent.product\",\"Gecko\");" \ >> debian/tmp/usr/lib/iceape/defaults/pref/vendor.js echo "pref(\"general.useragent.productSub\",\"$(BUILD_DATE)\");" \ >> debian/tmp/usr/lib/iceape/defaults/pref/vendor.js echo "pref(\"general.useragent.extra.iceapeComment\",\"(Debian-$(DEBIAN_VERSION))\");" \ >> debian/tmp/usr/lib/iceape/defaults/pref/vendor.js cp -f LICENSE MPL touch install-stamp define DO_CHROME install -d -m 755 $(CURDIR)/debian/$(1)/var/lib/iceape/chrome.d ; find $(CURDIR)/debian/$(1)/usr/share/iceape/chrome -maxdepth 1 -name "*.jar" -printf "chrome/%P\n" | while read file; do grep $$file $(TMP_DIR)/usr/lib/iceape/chrome/installed-chrome.txt ; done > $(CURDIR)/debian/$(1)/var/lib/iceape/chrome.d/00$(subst iceape-,,$(1)) endef # Build architecture-independent files here. binary-indep: build install dh_testdir dh_testroot dh_installchangelogs -i dh_installdocs -A -i MPL #dh_installmime -i dh_installmenu -i dh_install -i --sourcedir=debian/tmp $(call DO_CHROME,iceape-chatzilla) dh_installman -i dh_link -i dh_compress -i dh_fixperms -i dh_installdeb -i dh_gencontrol -i $(foreach pkg,$(MOZILLA_PACKAGES),-N$(pkg) ) dh_gencontrol $(foreach pkg,$(MOZILLA_PACKAGES),-p$(pkg) ) -- -v2:1.8+$(DEBIAN_VERSION) dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs -a dh_installdocs -A -a MPL dh_installexamples -a dh_installmime -a dh_installmenu -a dh_install -a --sourcedir=debian/tmp $(call DO_CHROME,iceape-browser) grep -v \.jar $(TMP_DIR)/usr/lib/iceape/chrome/installed-chrome.txt >> $(CURDIR)/debian/iceape-browser/var/lib/iceape/chrome.d/00browser # $(call DO_CHROME,iceape-calendar) $(call DO_CHROME,iceape-dom-inspector) $(call DO_CHROME,iceape-mailnews) dh_installman -a dh_desktop -a dh_link -a dh_strip -a --dbg-package=iceape-dbg for lib in $(CURDIR)/debian/iceape-browser/usr/lib/iceape/libsoftokn3.so $(CURDIR)/debian/iceape-browser/usr/lib/iceape/libfreebl*.so; do \ LD_LIBRARY_PATH=$(CURDIR)/debian/tmp/usr/lib/iceape $(CURDIR)/security/nss/cmd/shlibsign/*/shlibsign -v -i $$lib; \ done dh_compress -a dh_fixperms -a #dh_makeshlibs -a -n dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a source: clean sh $(CURDIR)/debian/remove.nonfree tar -C .. -zcf ../`dpkg-parsechangelog | sed -n '/Source:/ N; s/Source: \(.*\)\nVersion: \(.*:\|\)\(.*\)-[0-9][0-9]*$$/\1_\3/ p'`.orig.tar.gz --exclude=`basename $(CURDIR)`/debian `basename $(CURDIR)` binary: binary-indep binary-arch find debian/tmp -printf %P\\n | sort -u > debian/tmp.list find `grep Package: debian/control | awk '{print "debian/"$$2}'` -printf %P\\n | sed 's,usr/share/iceape,usr/lib/iceape,' | sort -u > debian/pkg.list diff debian/tmp.list debian/pkg.list | grep "^[<>]" | grep -v "^> DEBIAN" | sort rm -f debian/tmp.list debian/pkg.list .PHONY: build clean clean-patched binary-indep binary-arch binary install source