#!/usr/bin/make -f # Generic Haskell cabal library debian/rules v0.7 by Ian Lynagh, # based on the example by Joey Hess. # This file is public domain software. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # Get the Cabal package name. Assumes that the Debian package name is standard. CABAL_PACKAGE = $(shell dpkg-parsechangelog | sed "1s/source: haskell-//i; q") GHC6_PACKAGE = libghc6-$(CABAL_PACKAGE)-dev GHC6_PROF_PACKAGE = libghc6-$(CABAL_PACKAGE)-prof GHC6_DOC_PACKAGE = libghc6-$(CABAL_PACKAGE)-doc # Find ghc. The ghc in the path might point to some other version of # GHC, so use ghc6 if it exists (which it ought to when building for # Debian) GHC := $(firstword $(shell bash -c "type -p ghc6 ghc")) CONFIGURE_OPTS = --enable-library-vanilla \ --enable-library-profiling \ --enable-library-for-ghci ifneq '$(findstring $(shell dpkg-architecture -qDEB_HOST_ARCH), i386 amd64)' '' CONFIGURE_OPTS += --enable-split-objs endif build: build-stamp build-stamp: dh_testdir update-haskell-control --check $(GHC) --make Setup.hs -o setup-ghc ./setup-ghc configure --ghc --with-compiler=$(GHC) --prefix=/usr $(CONFIGURE_OPTS) ./setup-ghc build ./setup-ghc haddock touch $@ FILES = -type f PROF_FILE = \( -name "*.p_*" -o -name "lib*_p.a" \) install: install-stamp install-stamp: build-stamp dh_testdir dh_testroot dh_clean -k dh_installdirs ./setup-ghc copy --destdir=debian/tmp/ find debian/tmp/usr/lib -type f ! $(PROF_FILE) \ > debian/$(GHC6_PACKAGE).install find debian/tmp -type d -empty >> debian/$(GHC6_PACKAGE).install find debian/tmp/usr/lib -type f $(PROF_FILE) \ > debian/$(GHC6_PROF_PACKAGE).install echo "debian/tmp/usr/share/*/doc/html/* \ /usr/share/doc/ghc6-doc/html/libraries/$(CABAL_PACKAGE)" \ > debian/$(GHC6_DOC_PACKAGE).install ./setup-ghc register --gen-script ./setup-ghc unregister --gen-script mkdir -p debian/$(GHC6_PACKAGE)/usr/lib/$(GHC6_PACKAGE) mv register.sh debian/$(GHC6_PACKAGE)/usr/lib/$(GHC6_PACKAGE) mv unregister.sh debian/$(GHC6_PACKAGE)/usr/lib/$(GHC6_PACKAGE) touch $@ update-generated-files: update-haskell-control sed "s/@PACKAGE@/$(GHC6_PACKAGE)/g" debian/$(GHC6_PACKAGE).prerm.in \ > debian/$(GHC6_PACKAGE).prerm sed "s/@PACKAGE@/$(GHC6_PACKAGE)/g" debian/$(GHC6_PACKAGE).postinst.in \ > debian/$(GHC6_PACKAGE).postinst clean: dh_testdir dh_testroot rm -f build-stamp install-stamp binary-common-stamp -./setup-ghc clean rm -f Setup.o Setup.hi setup-ghc rm -f debian/*.install dh_clean # Build architecture-dependent files here. binary-common: binary-common-stamp binary-common-stamp: install-stamp dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installexamples dh_install --fail-missing # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installcatalogs # dh_installpam # dh_installmime # dh_installinit # dh_installcron # dh_installinfo # dh_undocumented dh_installman dh_link dh_strip dh_compress -X.haddock dh_fixperms # dh_perl # dh_python # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb # binary-indep and binary-arch both build everything, as otherwise # # "dh_install --fail-missing" falls over # Build architecture-independent files here. binary-indep: binary-common-stamp # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: binary-common-stamp binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary-common binary install