#!/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

# 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

	eval `dpkg-buildflags --export=sh` && CC=$(MCC) CFLAGS="$$CFLAGS $(CFLAGS_APPEND)" ./configure \
		--host=$$(dpkg-architecture -qDEB_HOST_GNU_TYPE) \
		$(DEBUG) \
		--prefix=/usr \
		--mandir=\$${prefix}/share/man \
		--enable-infodir=\$${prefix}/share/info \
		--enable-emacsdir=\$${prefix}/share/emacs/site-lisp

	touch $@


build-stamp: configure-stamp
	dh_testdir
	PEXT=${EXT} $(MAKE)
	touch $@

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
	touch $@

install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	PEXT=${EXT} $(MAKE) install DESTDIR=$$(pwd)/debian/tmp
	touch $@


debian/control: debian/control_$(EXT)
	cp $< $@

clean: debian/control debian/gcl.templates
	dh_testdir
	dh_testroot
	rm -f *stamp
	debconf-updatepo

	$(MAKE) clean

	dh_clean
	rm -rf debian/gprof debian/ansi-gprof debian/trad debian/ansi $(INS) debian/substvars debian.upstream
	rm -rf *stamp build-indep
	rm -f debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el

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 's,@EXT@,$(EXT),g' >$@

install: DH_OPTIONS:=
install: install-stamp debian/control $(INS)

	dh_installdirs

	rm -rf debian/tmp/usr/lib/gcl-$(VERS)/info

	dh_install

	mkdir -p debian/gcl$(EXT)-tk/usr/lib/gcl-$(VERS)/
	mv debian/gcl$(EXT)/usr/lib/gcl-$(VERS)/gcl-tk debian/gcl$(EXT)-tk/usr/lib/gcl-$(VERS)/

	mkdir -p debian/gcl$(EXT)-tk-doc/usr/share/doc/gcl$(EXT)/
	mv debian/gcl$(EXT)-doc/usr/share/doc/gcl$(EXT)/gcl$(EXT)-tk_html debian/gcl$(EXT)-tk-doc/usr/share/doc/gcl$(EXT)/

# 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  -XRELEASE-2.6.2.html
	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
