#!/usr/bin/make -f DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) # start by saving the path to debian/rules (useful in get-orig-source) PATH_TO_DEBIAN := $(shell dirname $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) ifneq (,$(filter $(DEB_HOST_ARCH), ia64)) DEB_CPPFLAGS_MAINT_APPEND = -DMM_MIN_ALIGNMENT=16 endif DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/buildflags.mk CFLAGS += $(CPPFLAGS) export CFLAGS # Fixes FTBFSes of plug-ins under Hurd ifneq (,$(filter $(DEB_HOST_ARCH), hurd-i386)) LDFLAGS += -lpthread endif export LDFLAGS # This has to be exported to make some magic below work. export DH_OPTIONS check: dh_testdir ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) # Bug 580524: ia64 hurd-i386 mips # xvfb-run failing too often: arm64 armhf i386 ppc64el powerpc x32 ifeq (,$(filter $(DEB_HOST_ARCH), ia64 hurd-i386 mips)) xvfb-run relocate/bin/yorick -batch debian/check.i endif endif configure: configure-stamp configure-stamp: dh_testdir make Y_HOME=relocate ysite chmod a+x debian/helpers/*.i touch configure-stamp BUILDDIR=../../build/ build: build-arch build-indep build-arch: build-stamp build-mpy-stamp build-indep: build-indep-stamp build-indep-stamp: build-stamp sed 's/^.*Printed: .*$$//' -i build/doc/*.doc cp debian/helpers/README build/doc convert icons/yicon32.png build/yorick32x32.xpm convert icons/yicon16.png build/yorick16x16.xpm $(MAKE) -C doc/html BUILDDIR=$(BUILDDIR) manual refcard $(BUILDDIR)doc/README.html $(BUILDDIR)doc/images/triangle3.jpg $(BUILDDIR)doc/skull.css cp doc/html/packinfo.txt build/00yorick.packinfo cp doc/html/keywords.txt build/00yorick.keywords cp doc/html/aliases.txt build/00yorick.aliases find build/doc/manual -name "*.html" -not -name yorick_prt.html | xargs sed -e 's|^
|' -e 's||
&|' -i sed 's|yorick_1.html|index.html|' -i build/doc/*.html build/doc/*/*.html touch build-indep-stamp build-stamp: configure-stamp dh_testdir $(MAKE) CDG_FLAGS="$(CFLAGS) $(LDFLAGS)" install -rm relocate/LICENSE.md $(MAKE) -C doc yorick.info mkdir -p build/share mkdir -p build/lib/yorick cp -a relocate build/share/yorick mv build/share/yorick/doc build mkdir -p build/share/yorick/packages/installed mv build/share/yorick/bin build/lib/yorick/ mv build/share/yorick/lib build/lib/yorick/ mkdir -p build/yorick-dev/share/yorick/ mkdir -p build/yorick-dev/lib/yorick/lib/ mv build/share/yorick/Make* build/yorick-dev/share/yorick/ mv build/share/yorick/include build/yorick-dev/share/yorick/ cd build/lib/yorick/lib; \ mv codger install.grp install.sh libdep.sh libyor.a main.o \ $(CURDIR)/build/yorick-dev/lib/yorick/lib cp emacs/yorick-auto.el build/50yorick-auto.el touch build-stamp build-mpy-stamp: build-stamp ifeq ($(wildcard /usr/bin/mpicc.mpich), /usr/bin/mpicc.mpich) cp -a mpy mpy.mpich2 (cd mpy.mpich2 ; \ ./configure --yorick=../relocate/bin/yorick --mpicc=mpicc.mpich ; \ $(MAKE)) mv mpy.mpich2/mpy mpy.mpich2/mpy.mpich2 mv mpy.mpich2/libmpy.a mpy.mpich2/libmpy.mpich2.a mv mpy.mpich2/Makempy mpy.mpich2/Makempy.mpich2 mv mpy.mpich2/mpymain.o mpy.mpich2/mpymain.mpich2.o endif ifeq ($(wildcard /usr/bin/mpicc.openmpi), /usr/bin/mpicc.openmpi) cp -a mpy mpy.openmpi (cd mpy.openmpi ; \ ./configure --yorick=../relocate/bin/yorick --mpicc=mpicc.openmpi ; \ $(MAKE)) mv mpy.openmpi/mpy mpy.openmpi/mpy.openmpi mv mpy.openmpi/libmpy.a mpy.openmpi/libmpy.openmpi.a mv mpy.openmpi/Makempy mpy.openmpi/Makempy.openmpi mv mpy.openmpi/mpymain.o mpy.openmpi/mpymain.openmpi.o endif touch build-mpy-stamp clean-mpy: rm -Rf build-mpy-stamp mpy.mpich2 mpy.openmpi clean: configure-stamp clean-mpy dh_testdir rm -Rf build-stamp build-indep-stamp configure-stamp build relocate touch Make.cfg $(MAKE) -C doc/html clean $(MAKE) distclean # $(MAKE) Y_HOME=. ysite dh_clean # Must not depend on anything. This is to be called by # binary-arch/binary-indep # in another 'make' thread. binary-common: dh_testdir dh_testroot dh_prep dh_installdirs dh_install dh_installchangelogs dh_installdocs dh_installexamples dh_installmenu dh_installinfo dh_installdebconf dh_installman dh_link dh_strip -pyorick --dbgsym-migration='yorick-dbg (<< 2.2.04+dfsg1-7~)' dh_strip -pyorick-dev -pyorick-mpy-openmpi -pyorick-mpy-mpich2 dh_usrlocal dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb # Build architecture independant packages using the common target. #binary-indep: build-indep install-indep binary-indep: build-indep $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common # Build architecture dependant packages using the common target. binary-arch: build-arch check $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common ###### Getting the original source: Y_FULL_VERS:=$(shell dpkg-parsechangelog -l$(PATH_TO_DEBIAN)/changelog | grep Version | sed 's/Version: //' | sed 's/-[0-9].*//') Y_VERS:=$(subst +dfsg,,$(Y_FULL_VERS)) GIT_TAG:=y_$(subst .,_,$(Y_VERS)) GIT_REPO=git://github.com/dhmunro/yorick.git # Non-DFSG-free files (see copyright): PRUNEFILES:=play/hacks/hack103.c i/idlsave.i opengl # make orig.tar.bz2 from current source dir, pruning PRUNEFILES orig-txz: rm -Rf $(PRUNEFILES) cd .. ; \ mv `basename $(CURDIR)` yorick-$(Y_FULL_VERS) ; \ tar cvf - yorick-$(Y_FULL_VERS) --exclude=.pc --exclude=.git \ --exclude=yorick-$(Y_FULL_VERS)/debian --exclude=.gitignore \ | xz > yorick_$(Y_FULL_VERS).orig.tar.xz get-orig-source: -rm -Rf ../orig-sources mkdir ../orig-sources cd ../orig-sources ; \ git clone $(GIT_REPO) ; \ cd yorick ; \ git checkout $(GIT_TAG) ; \ rm -Rf $(PRUNEFILES) -rm -Rf ../yorick-$(Y_VERS) mv ../orig-sources/yorick ../yorick-$(Y_VERS)+dfsg rm -Rf ../orig-sources cd ..; tar cf - --exclude=.git --exclude=.gitignore \ yorick-$(Y_VERS)+dfsg | \ xz > yorick_$(Y_VERS)+dfsg.orig.tar.xz gitclean: clean -quilt pop -a if test -e .pc ; then \ cd .pc ; \ rm .quilt_patches .quilt_series .version ; \ cd .. ; rmdir .pc ; \ fi binary: binary-arch binary-indep .PHONY: build-arch build-indep build clean binary-indep binary-arch binary \ configure clean-mpy gitclean