#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk #export DH_VERBOSE=1 upstream_commit = $(shell v="$(DEB_VERSION_UPSTREAM)"; echo $${v\#\#*~}) # take from control? SOVERSION = 0 SONAME = libgnucap.so.${SOVERSION} # upstream_commit_short = $(shell echo $(upstream_commit) | sed -e 's/\(........\).*/\1/') # UPSTREAM_REPO=git://git.savannah.gnu.org/gnucap.git ORIG_TARBALL=../gnucap_${DEB_VERSION_UPSTREAM}.orig.tar.gz DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) CFLAGS := $(shell dpkg-buildflags --get CFLAGS) CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) LN_S = ln -sf libdir = /usr/lib/$(DEB_HOST_MULTIARCH) pkglibdir = ${libdir}/gnucap${SOVERSION} pcdir = ${libdir}/pkgconfig %: dh $@ override_dh_auto_configure: ./configure --prefix=/usr sed -e '/GNUCAP_PLUGPATH/s#/lib/gnucap#'/lib/${DEB_HOST_MULTIARCH}/gnucap0'#' -i main/config.h sed -e '/^$$/s##triplet=$$\( g++ --print-multiarch \)#' -i main/gnucap.conf sed -e '/^libdir/s#=.*#=/usr/lib/$${triplet}#' -i main/gnucap.conf sed -e '/^pkglibdir/s#=.*#=$${libdir}/gnucap'${SOVERSION}'#' -i main/gnucap.conf sed -e '/^sysconfdir/s#=.*#=/etc#' -i main/gnucap-conf sed -e '/^sysconfdir/s#=.*#=/etc#' -i main/gnucap.conf sed -e 's#-ltermcap##' -i lib/Make2 sed -i '/SYSTEMSTARTPATH/s/OS::getenv("PATH")/"\/etc"/' main/config.h # workaround: these are hardwired, need to pass them back LIB_LDFLAGS = -shared EXEC_LDFLAGS = -rdynamic -L../../lib/O override_dh_auto_build: $(MAKE) -C lib \ LDFLAGS="$(LIB_LDFLAGS) \ -Wl,-soname -Wl,${SONAME} \ $(LDFLAGS)" \ CPPFLAGS="$(CPPFLAGS)" \ CXXFLAGS="$(CXXFLAGS)" cd $(CURDIR)/lib/O; $(LN_S) libgnucap.so ${SONAME} $(MAKE) -C modelgen \ LDFLAGS="$(EXEC_LDFLAGS) $(LDFLAGS)" \ CPPFLAGS="$(CPPFLAGS)" \ CXXFLAGS="$(CXXFLAGS)" $(MAKE) -C apps \ LDFLAGS="$(LIB_LDFLAGS) $(LDFLAGS)" \ CPPFLAGS="$(CPPFLAGS)" \ CXXFLAGS="$(CXXFLAGS)" dh_auto_build --parallel -- \ LDFLAGS="$(EXEC_LDFLAGS) $(LDFLAGS)" \ CPPFLAGS="$(CPPFLAGS)" \ CXXFLAGS="$(CXXFLAGS)" # #$(MAKE) -C man html/index.html # pick subdirectories one by one. options do not propagate correctly # (this is a terrible mess...) override_dh_auto_install: $(MAKE) install -C lib \ DESTDIR=$(CURDIR)/debian/tmp mkdir -p $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) mv $(CURDIR)/debian/tmp/usr/lib/libgnucap.so \ $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/${SONAME} cd $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH); $(LN_S) ${SONAME} libgnucap.so $(MAKE) install -C modelgen \ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) install -C apps \ INSTALL_DIR=${pkglibdir} install \ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) install -C include \ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) install -C main \ DESTDIR=$(CURDIR)/debian/tmp mkdir -p $(CURDIR)/debian/tmp/etc mv $(CURDIR)/debian/tmp/usr/etc/gnucap.conf \ $(CURDIR)/debian/tmp/etc/gnucap.conf # mv $(CURDIR)/debian/tmp/usr/bin/gnucap-conf $(CURDIR)/debian/tmp/${pkglibdir}/ mkdir -p $(CURDIR)/debian/tmp/usr/share/doc/gnucap/examples cp tests/*.gc $(CURDIR)/debian/tmp/usr/share/doc/gnucap/examples cp tests/*.ckt $(CURDIR)/debian/tmp/usr/share/doc/gnucap/examples # workaround: some are duplicate (reported upstream, trivial), # remove a superset, for now. rm $(CURDIR)/debian/tmp/usr/share/doc/gnucap/examples/d_mos6*.ckt rm $(CURDIR)/debian/tmp/usr/share/doc/gnucap/examples/d_mos49.nand1.ckt override_dh_auto_clean: dh_auto_clean rm -rf main/gnucap-conf rm -rf main/gnucap.conf rm -rf main/config.h rm -rf */Makefile -f rm -rf */Make2 -f rm -rf */O/ -rf override_dh_installdocs: dh_installdocs # Remove LaTeX sources from HTML documentation: ##rm debian/gnucap/usr/share/doc/gnucap/html/*.hi?? # Remove un-necessary docs installed by upstream: #rm debian/gnucap/usr/share/doc/gnucap/COPYING #rm debian/gnucap/usr/share/doc/gnucap/INSTALL #rm debian/gnucap/usr/share/doc/gnucap/history override_dh_compress: dh_compress -X.pdf -X.ckt # disable debugging symbol packages, for now # - these don't really help (-O2) # - and they do not work with the current build system # (switch to autotools planned anyways..) override_dh_strip: dh_strip --no-ddebs # create tarball equivalent to upstream. use # tar -xOzf ../gnucap-20171003.tar.gz | sort | sha1sum # to check. get-orig-source: @echo creating tarball from ${upstream_commit} [ -d .git ] && git archive ${upstream_commit} | \ gzip > $(ORIG_TARBALL) || : [ -d .git ] || git archive --format=tar \ --remote=$(UPSTREAM_REPO) ${upstream_commit} | \ tar -xzf > $(ORIG_TARBALL) .PHONY: get-orig-source