#!/usr/bin/make -f # Sample debian/rules that uses debhelper. # GNU copyright 1997 by Joey Hess. # GNU copyright 2024 Camm Maguire # # This version is for a hypothetical package that builds an # architecture-dependant package, as well as an architecture-independent # package. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 #export GCL_MEM_MULTIPLE=0.1 # This has to be exported to make some magic below work. export DH_OPTIONS ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) endif ifneq (,$(NUMJOBS)) MAKEFLAGS+=-j $(NUMJOBS) GCL_MULTIPROCESS_MEMORY_POOL?=$(shell pwd) export GCL_MULTIPROCESS_MEMORY_POOL endif # This is the debhelper compatability version to use. ARCHT:=$(shell dpkg-architecture -qDEB_HOST_ARCH) MCC?=gcc # ifeq ($(ARCHT),alpha) # MCC:=gcc-4.6 # endif CFLAGS_APPEND?= #ifeq ($(ARCHT),ppc64) #CFLAGS_APPEND:=$(CFLAGS_APPEND) -O1 #endif DEBUG?= #ifeq ($(ARCHT),hppa) #DEBUG=--enable-debug #endif VERS=$(shell echo $$(cat majvers).$$(cat minvers)) EXT=$(shell echo $(VERS) | sed 's,\([0-9]\)\.\([0-9]\)\..*,\1\2,') debian/elpa-gcl$(EXT).elpa: debian/gcl$(EXT)-pkg.el find elisp -name "*.el" >$@ # echo debian/gcl$(EXT).el >> debian/elpa-gcl$(EXT).elpa echo debian/gcl$(EXT)-pkg.el >> debian/elpa-gcl$(EXT).elpa echo debian/debian-autoloads.el >> debian/elpa-gcl$(EXT).elpa VR:=$(shell awk '{if (i) next;i=1;a=$$2;gsub("[()]","",a);split(a,A,"-");print A[1];}' debian/changelog) debian/gcl$(EXT)-pkg.el: debian/gcl-pkg.el.in cat $< | sed "s,@VR@,$$(echo $(VR) | sed 's,[a-zA-Z]*,,g'),g" | sed "s,@EXT@,$(EXT),g" > $@ configure-stamp: dh_testdir dh_autoreconf eval `dpkg-buildflags --export=sh` && \ CC=$(MCC) CFLAGS="$$CFLAGS $(CFLAGS_APPEND)" ./configure \ --host=$$(dpkg-architecture -qDEB_HOST_GNU_TYPE) \ $(DEBUG) \ --prefix=/usr touch $@ build-stamp: configure-stamp dh_testdir $(MAKE) $(MAKEFLAGS) $(MAKE) $(MAKEFLAGS) check touch $@ build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp touch $@ DOC_STUBS=gcl$(EXT) gcl$(EXT)-si gcl$(EXT)-tk gcl$(EXT)-dwdoc DOC_FILES=$(addsuffix .info,$(DOC_STUBS)) DOC_FILES+=$(addsuffix .dvi,$(DOC_STUBS)) DOC_FILES+=$(addsuffix .pdf,$(DOC_STUBS)) DOC_FILES+=$(addsuffix .html,$(DOC_STUBS)) DOC_FFILES=$(addprefix info/,$(DOC_FILES)) EXT_TARGS=$(DOC_FFILES) man/man1/gcl$(EXT).1 bin/gcl$(EXT) install-stamp: build-stamp dh_testdir dh_testroot dh_prep $(MAKE) $(MAKEFLAGS) install-all DESTDIR=$$(pwd)/debian/tmp $(MAKE) $(MAKEFLAGS) $(EXT_TARGS) for i in $(EXT_TARGS); do \ for j in $$i*; do \ if [ -d $$j ] ; then l=d ; r=-r ; else l=f ; fi ; \ k=$$(find debian/tmp -type $$l -name $$(echo $$(basename $$j) | sed 's,$(EXT),,g')); \ [ "$$k" = "" ] || cp $$r $$j $$(dirname $$k) ; \ echo $$i $$j $$k; \ [ "$$k" = "" ] || chmod $$(dirname $$k)/$$(basename $$j) --reference=$$k ; \ [ "$$k" = "" ] || rm $$r $$k ; \ done ; \ done mv debian/tmp/usr/share/doc/gcl debian/tmp/usr/share/doc/gcl$(EXT) touch $@ INS:=$(shell for i in `find debian -name "in.*"` ; do \ echo $$i | sed 's,in.,,1' ; \ done |\ sed "s,\([^x]gcl\),\1$(EXT),g") gcl$(EXT)% : in.gcl% cat $< | sed -e 's,@EXT@,$(EXT),g' -e 's,@VERS@,$(VERS),g' >$@ debian/control: debian/control_$(EXT) cp $< $@ install: DH_OPTIONS:= install: install-stamp debian/control $(INS) dh_installdirs dh_install clean: debian/control debian/gcl.templates dh_testdir dh_testroot debconf-updatepo ! [ -e Makefile ] || $(MAKE) $(MAKEFLAGS) distclean dh_autoreconf_clean dh_clean rm -rf $(INS) debian/substvars debian.upstream rm -rf *stamp build-indep rm -f debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el rm -rf $(EXT_TARGS) info/gcl$(EXT)*.info* gcl_pool debian-clean: debian/control debian/gcl.templates dh_testdir dh_testroot debconf-updatepo dh_clean rm -rf $(INS) debian/substvars debian.upstream rm -rf *stamp build-indep rm -f debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el rm -rf $(EXT_TARGS) info/gcl$(EXT)*.info* gcl_pool # Build architecture-independent files here. # Pass -i to all debhelper commands in this target to reduce clutter. binary-indep: DH_OPTIONS:=-i binary-indep: build install debian/elpa-gcl$(EXT).elpa dh_testdir dh_testroot dh_elpa dh_installdocs dh_installinfo dh_installchangelogs ChangeLog dh_link dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb binary-arch: DH_OPTIONS=-a binary-arch: build install #debian/substvars dh_testdir dh_testroot dh_installdocs dh_installdebconf sed -i -e 's,@EXT@,$(EXT),g' debian/gcl$(EXT)/DEBIAN/templates dh_installchangelogs ChangeLog dh_strip -Xlibgcl -Xlibansi_gcl -Xlibgcl_gprof -Xlibansi_gcl_gprof dh_lintian dh_link dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol -u"-Vgcc=$(MCC)" dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure .PRECIOUS: configure-trad-stamp configure-ansi-stamp configure-gprof-stamp configure-ansi-gprof-stamp