#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # NOTE: Unsetting $TERM is necessary since the # PPA build servers have a broken curses setup. # They have $TERM set but do not include the corresponding # terminal definitions. # This lets SciTECO choose a reasonable default # and we've also added some terminal definitions to the # build dependencies. export TERM= # Build with link-time-optimizations # FIXME: This is not passed down to Scintilla. # Once we support an --enable-lto site-config-option, we should rather use that. export DEB_CFLAGS_MAINT_APPEND=-flto export DEB_CXXFLAGS_MAINT_APPEND=-flto export DEB_LDFLAGS_MAINT_APPEND=-flto # Since we override a few `dh` commands, it cannot care about # parallel builds. ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(NUMJOBS) endif # In case `make check` fails, there will be a complete log. export TESTSUITEFLAGS="--verbose" %: dh $@ build build-arch build-indep: build-curses-stamp build-gtk-stamp; # NOTE: The datadir will be relative to the binary location at runtime. # This makes the binary relocateable, which is important when creating # AppImages from the Debian packages. build-curses-stamp: dh_testdir rm -rf build-curses dh_auto_configure -Bbuild-curses -- \ --with-interface=ncurses \ --with-scitecodatadir=../share/sciteco dh_auto_build -Bbuild-curses dh_auto_test -Bbuild-curses --no-parallel touch $@ # NOTE: This does not depend on install-curses-stamp and uses # --disable-bootstrap to speed up builds since that would prevent parallel builds. build-gtk-stamp: dh_testdir rm -rf build-gtk dh_auto_configure -Bbuild-gtk -- \ --program-prefix=g \ --with-interface=gtk \ --with-scitecodatadir=../share/sciteco # NOTE: Since the Gtk+ version of SciTECO is called during the build, # we need an XServer which may be missing on the build server. # That's why we use xvfb. xvfb-run -a dh_auto_build -Bbuild-gtk xvfb-run -a dh_auto_test -Bbuild-gtk --no-parallel touch $@ install: xvfb-run -a dh install -Bbuild-gtk -psciteco-gtk dh install -Bbuild-curses -psciteco-curses -psciteco-common # NOTE: This skips the dh_install* commands of `dh binary-arch` # which would ignore `-p...`. define custom_binary_arch dh_testroot -a $(1) dh_prep -a $(1) dh_bugfiles -a $(1) dh_ucf -a $(1) dh_lintian -a $(1) dh_icons -a $(1) dh_perl -a $(1) dh_usrlocal -a $(1) dh_link -a $(1) dh_strip_nondeterminism -a $(1) dh_compress -a $(1) dh_fixperms -a $(1) dh_missing -a $(1) dh_strip -a $(1) dh_makeshlibs -a $(1) dh_shlibdeps -a $(1) dh_installdeb -a $(1) dh_gencontrol -a $(1) dh_md5sums -a $(1) dh_builddeb -a $(1) endef binary-arch: $(call custom_binary_arch,-O-Bbuild-gtk -O-psciteco-gtk) $(call custom_binary_arch,-O-Bbuild-curses -O-psciteco-curses) binary-indep: dh binary-indep -Bbuild-curses clean: dh clean -Bbuild-gtk dh clean -Bbuild-curses