#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 #export DH_OPTIONS=-v TCLVERSIONS = 9.0 8.6 # Hardening export DEB_BUILD_MAINT_OPTIONS = hardening=+all # Multiarch support DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) %: dh $@ # 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) # Extract version information from autoconf meta-data VERSION=$(shell grep -m 1 AC_INIT configure.ac | sed -e 's/AC_INIT(\[tdom\],\[//g' -e 's/\])//g') # Convenient vars DEV=$(CURDIR)/debian/tdom-dev ARCH_DEPENDENT=$(CURDIR)/debian/tdom/usr/lib/tcltk/$(DEB_HOST_MULTIARCH) STUB_LIBDIR=/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION) override_dh_autoreconf: [ -f configure.backup ] || cp configure configure.backup dh_autoreconf override_dh_auto_configure: for v in $(TCLVERSIONS) ; do \ mkdir -p debian/$$v ; \ done # # Configure tDOM" # for v in $(TCLVERSIONS) ; do \ mkdir -p debian/$$v/unix ; \ ( cd debian/$$v/unix ; \ ../../../configure --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=$(CURDIR)/debian/tdom/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ --with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/tcl$$v \ --libdir=\$${prefix}/lib/tcltk/$(DEB_HOST_MULTIARCH) \ --enable-threads \ --includedir=$(DEV)/usr/include/tdom \ --with-expat=/usr \ --enable-html5 ) ; \ done # # Configure tnc extension # for v in $(TCLVERSIONS) ; do \ mkdir -p debian/$$v/extensions/tnc ; \ ( cd debian/$$v/extensions/tnc ; \ ../../../../extensions/tnc/configure \ --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=$(CURDIR)/debian/tdom/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ --with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/tcl$$v \ --libdir=\$${prefix}/lib/tcltk/$(DEB_HOST_MULTIARCH) \ --enable-threads \ --includedir=$(DEV)/usr/include/tdom ) ; \ done # # Configure tdomhtml extension # for v in $(TCLVERSIONS) ; do \ mkdir -p debian/$$v/extensions/tdomhtml ; \ ( cd debian/$$v/extensions/tdomhtml ; \ ../../../../extensions/tdomhtml/configure \ --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=$(CURDIR)/debian/tdom/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ --libdir=\$${prefix}/lib/tcltk/$(DEB_HOST_MULTIARCH) \ --includedir=$(DEV)/usr/include/tdom ) ; \ done override_dh_auto_build: # # Build tDOM and extensions # for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/unix ; $(MAKE) ) ; \ done for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/extensions/tnc ; $(MAKE) ) ; \ done for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/extensions/tdomhtml ; $(MAKE) ) ; \ done override_dh_clean: # # Cleanup # for v in $(TCLVERSIONS) ; do \ rm -rf debian/$$v ; \ done [ ! -f configure.backup ] || mv configure.backup configure dh_clean config.log config.status config.cache config.guess config.sub override_dh_auto_install: # # Install the package into debian/tdom. # for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/unix ; $(MAKE) install ) ; \ done for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/extensions/tnc ; $(MAKE) install ) ; \ done for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/extensions/tdomhtml ; $(MAKE) install) ; \ done # # Remove >empty< man page for tdomhtml extension (note, there is no # --without-man target available) # rm -f $(CURDIR)/debian/tdom/usr/share/man/mann/tdomhtml.n # # Fix man pages (mann > man3) # mv $(CURDIR)/debian/tdom/usr/share/man/mann \ $(CURDIR)/debian/tdom/usr/share/man/man3 (cd $(CURDIR)/debian/tdom/usr/share/man/man3 && \ for f in ./*; do \ f2=$$(echo $$f | sed -e 's/\.n/\.3tcl/'); \ cat $$f | sed -e 's/^\.TH \([^ ]\+\|"[^"]\+"\) \(3\|n\)/.TH \1 3tcl/' > $$f2; \ rm $$f; \ done) # # Move tdomConfig # install -d -m 755 $(DEV)$(STUB_LIBDIR) mv $(ARCH_DEPENDENT)/tdomConfig.sh $(DEV)$(STUB_LIBDIR)/ # # Add stub lib paths to tdomConfig # perl -i -p \ -e "s|^(TDOM_BUILD_STUB_LIB_SPEC)=.*$$|\1='-L$(STUB_LIBDIR) -ltdomstub$(VERSION)'|;" \ -e "s|^(TDOM_BUILD_STUB_LIB_PATH)=.*$$|\1='$(STUB_LIBDIR)/libtdomstub$(VERSION).a'|;" \ -e "s|^(TDOM_STUB_LIB_SPEC)=.*$$|\1='-L$(STUB_LIBDIR) -ltdomstub$(VERSION)'|;" \ -e "s|^(TDOM_STUB_LIB_PATH)=.*$$|\1='$(STUB_LIBDIR)/libtdomstub$(VERSION).a'|;" \ $(DEV)$(STUB_LIBDIR)/tdomConfig.sh # # Wrapper for tdomConfig on /usr/lib/$(DEB_HOST_MULTIARCH) # sed -i "s/TDOM_VERSION/$(VERSION)/" $(CURDIR)/debian/tdomConfig.sh install -d -m 755 $(DEV)/usr/lib/$(DEB_HOST_MULTIARCH) install $(CURDIR)/debian/tdomConfig.sh $(DEV)/usr/lib/$(DEB_HOST_MULTIARCH)/ # # Move tDOM stub library # mv $(ARCH_DEPENDENT)/tdom$(VERSION)/*.a $(DEV)$(STUB_LIBDIR)/ override_dh_installchangelogs: dh_installchangelogs ChangeLog override_dh_installdeb: dh_installdeb tcltk-depends override_dh_auto_test: ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) for v in $(TCLVERSIONS) ; do \ ( cd debian/$$v/unix ; $(MAKE) test) ; \ done endif