#!/usr/bin/make -f ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(NUMJOBS) endif DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) ifneq (,$(findstring amd64,$(DEB_HOST_ARCH))) LTO=y endif ifneq (,$(findstring x32,$(DEB_HOST_ARCH))) LTO=y endif ifneq (,$(findstring i386,$(DEB_HOST_ARCH))) LTO=y endif ifneq (,$(findstring arm64,$(DEB_HOST_ARCH))) LTO=y endif CFOPTIMIZE = $(shell dpkg-buildflags --get CXXFLAGS || echo -g -O2) \ $(shell dpkg-buildflags --get LDFLAGS) \ $(shell dpkg-buildflags --get CPPFLAGS) ifneq ($(LTO),) ifeq ($(shell g++ -x c++ /dev/null -flto=jobserver -fwhole-program 2>&1 | grep 'unrecognized command line option'),) CFOPTIMIZE += -flto=jobserver -fwhole-program endif ifeq ($(shell g++ -x c++ /dev/null -fno-fat-lto-objects 2>&1 | grep 'unrecognized command line option'),) CFOPTIMIZE += -fno-fat-lto-objects endif endif ifeq (,$(filter terse%,$(DEB_BUILD_OPTIONS))$(filter quiet%,$(DEB_BUILD_OPTIONS))) VERBOSE=V=y endif tree-stamp: dh_testdir mkdir build-console cp -ldpR docs settings source CREDITS.txt build-console/ mkdir build-tiles cp -ldpR docs settings source CREDITS.txt build-tiles/ touch tree-stamp DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) CROSS=CROSSHOST=$(DEB_HOST_GNU_TYPE) endif # The makefile is unorthodox, requiring all options to be specified on every invocation. ARGS_CONSOLE = prefix=/usr CFOPTIMIZE="$(CFOPTIMIZE)" STRIP=: $(CROSS) $(VERBOSE) ARGS_TILES = $(ARGS_CONSOLE) TILES=y GAME=crawl-tiles \ PROPORTIONAL_FONT=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf \ MONOSPACED_FONT=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf build-arch build-indep: build-stamp build-stamp: tree-stamp dh_testdir cd build-console/source && $(MAKE) $(ARGS_CONSOLE) cd build-tiles/source && $(MAKE) $(ARGS_TILES) touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp tree-stamp rm -rf build-console build-tiles git clean -dfX || true dh_clean install: build dh_testdir dh_testroot dh_prep dh_installdirs cd build-console/source && $(MAKE) $(ARGS_CONSOLE) install install-xdg-data DESTDIR=../../debian/crawl-common rm -rf debian/crawl-common/usr/share/crawl/docs/license mkdir -p debian/crawl/usr/share mv debian/crawl-common/usr/games debian/crawl/usr/games mv debian/crawl-common/usr/share/applications debian/crawl/usr/share mv debian/crawl-common/usr/share/icons debian/crawl/usr/share mv debian/crawl-common/usr/share/metainfo debian/crawl/usr/share cd build-tiles/source && $(MAKE) $(ARGS_TILES) install install-xdg-data DESTDIR=../../debian/crawl-tiles rm -rf debian/crawl-tiles/var cd debian/crawl-tiles/usr/share/crawl/ && rm -rf docs settings mkdir -p debian/crawl-tiles-data/usr/share/crawl/dat mv debian/crawl-tiles/usr/share/crawl/dat/tiles debian/crawl-tiles-data/usr/share/crawl/dat/ rm -rf debian/crawl-tiles/usr/share/crawl mkdir -p debian/crawl/usr/share/man/man6 cp docs/crawl.6 debian/crawl/usr/share/man/man6/ mkdir -p debian/crawl-tiles/usr/share/man/man6 cp docs/crawl.6 debian/crawl-tiles/usr/share/man/man6/crawl-tiles.6 mkdir -p debian/crawl-common/usr/share/doc/crawl-common/examples cp settings/init.txt debian/crawl-common/usr/share/doc/crawl-common/examples/crawlrc for i in docs/*.txt; do \ ln -sf /usr/share/crawl/$$i debian/crawl-common/usr/share/doc/crawl-common/; \ done mkdir -p debian/crawl/usr/share/doc ln -sf crawl-common debian/crawl/usr/share/doc/crawl mkdir -p debian/crawl-tiles/usr/share/doc ln -sf crawl-common debian/crawl-tiles/usr/share/doc/crawl-tiles mkdir -p debian/crawl-tiles-data/usr/share/doc ln -sf crawl-common debian/crawl-tiles-data/usr/share/doc/crawl-tiles-data # Build architecture-independent files here. binary-indep: install dh_testdir dh_testroot dh_installdocs -pcrawl-common -Xcrawl_manual.txt -Xaptitudes.txt -Xquickstart.txt -Xmacros_guide.txt -Xoptions_guide.txt -Xtiles_help.txt dh_installchangelogs -pcrawl-common docs/changelog.txt dh_link -i dh_compress -i -Xaptitudes.txt dh_fixperms -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: install dh_testdir dh_testroot dh_link -a dh_compress -a -Xaptitudes.txt dh_strip -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a build: build-indep build-arch binary: binary-indep binary-arch .PHONY: build-indep build-arch build clean binary-indep binary-arch binary install