#!/usr/bin/make -f
# Luis Francisco Gonzalez 
# Based on the rules file by Ian Jackson.
#
name=imlib
base-package=$(name)-base
package=$(name)1
dev-package=$(name)-dev
nf_package=$(name)-nonfree1
nf_dev-package=$(name)-nonfree-dev

library=libImlib

version=$(shell expr `pwd` : '.*-\([0-9.]*\)')
version_major=$(shell expr `pwd` : '.*-\([0-9]*\).[0-9.]*')

INSTALL=/usr/bin/install
LN=/bin/ln

#
# To make this work I edited Makefile.in to add a flag called DEB_FLAGS
# that is defaulted to valid values so that make will work as expected
# when called from the topdir
#
build:
	$(checkdir)
	./configure --prefix=/usr
	-mkdir shared static
	#
	# Build the shared libraries
	#
	cd shared; \
	$(MAKE) -f ../Makefile VPATH=".." srcdir=".." \
		DEB_FLAGS='-fPIC -D_REENTRANT -I.. -shared -pipe' \
		SYS_CONFIG=/etc/im LDFLAGS="-lc -Wl,-soname,$(library).so.1"
	#
	# Build the static libraries
	#
	cd static ; \
	    $(MAKE) -f ../Makefile VPATH=".." srcdir=".." \
		DEB_FLAGS="-D_REENTRANT -I.. -pipe"  \
		SYS_CONFIG=/etc/im \
		LDFLAGS="-s -lc" \
		`ls ../shared/*.o | sed -e 's/..\/shared\///g'` ;\
	ar cr $(library).a `ls *.o` ;\
	ranlib $(library).a 

	#
	# Building the non-free versions
	#
	./configure --prefix=/usr --with-gif
	-mkdir nf_shared nf_static
	#
	# Build the shared libraries
	#
	cd nf_shared; \
	$(MAKE) -f ../Makefile VPATH=".." srcdir=".." \
		DEB_FLAGS='-fPIC -D_REENTRANT -I.. -shared -pipe' \
		SYS_CONFIG=/etc/im LDFLAGS="-lc -Wl,-soname,$(library).so.1 -lgif"
	#
	# Build the static libraries
	#
	cd nf_static ; \
	    $(MAKE) -f ../Makefile VPATH=".." srcdir=".." \
		DEB_FLAGS="-D_REENTRANT -I.. -pipe"  \
		SYS_CONFIG=/etc/im \
		LDFLAGS="-s -lc -lgif" \
		`ls ../nf_shared/*.o | sed -e 's/..\/nf_shared\///g'` ;\
	ar cr $(library).a `ls *.o` ;\
	ranlib $(library).a 
	touch build

clean:
	$(checkdir)
	-rm -f build
	-make distclean
	-rm -rf ./{shared,static,nf_shared,nf_static}
	find . -name Makefile -exec rm {} \;
	-rm -f `find . -name "*~"`
	-rm -rf debian/$(package) debian/$(dev-package) \
		debian/$(nf_package) debian/$(nf_dev-package) \
		debian/$(base-package) debian/substvars

binary-indep:	checkroot build
	$(checkdir)
# Clear dependency files
	-rm debian/substvars
# Create directory structure (it assumes the package names above)
	cd debian && install -d `cat dirs \
		| sed "s/%package%/$(name)/g"`
# Install the conffiles 
	$(INSTALL) -m 644 config/imrc debian/$(base-package)/etc/im/imrc
	$(INSTALL) -m 644 config/im_palette.pal \
		debian/$(base-package)/etc/im/im_palette.pal
# Install the documentation
	find ./doc -exec \
		$(INSTALL) -m 644 \{\} \
		debian/$(base-package)/usr/doc/$(base-package)/html \;
#	$(INSTALL) -m 644 README \
#		debian/$(base-package)/usr/doc/$(base-package)
	find TEST/ -exec $(INSTALL) -m 644 \{\} \
		debian/$(base-package)/usr/doc/$(base-package)/examples \;
	$(INSTALL) -m 644 debian/README.debian \
		debian/$(base-package)/usr/doc/$(base-package)
	$(INSTALL) -m 644 debian/changelog \
		debian/$(base-package)/usr/doc/$(base-package)/changelog.Debian
	find debian/$(base-package)/usr/doc/$(base-package) -size 4k -exec \
		gzip -v --best \{\} \;
	$(INSTALL) -m 644 debian/copyright \
		debian/$(base-package)/usr/doc/$(base-package)
# Install the control files
	$(INSTALL) -d debian/$(base-package)/DEBIAN
	$(INSTALL) -m 644 debian/control debian/$(base-package)/DEBIAN
	$(INSTALL) -m 644 debian/conffiles debian/$(base-package)/DEBIAN
	touch debian/substvars
	chown -R root.root debian/$(base-package)
	chmod -R go=rX debian/$(base-package)
	chmod -R u+w debian/$(base-package)
	dpkg-gencontrol -p$(base-package) -Pdebian/$(base-package)
# Work out the md5sums (Taken from debstd)
	cd debian/$(base-package) && \
		find . -type f ! -regex "./DEBIAN/.*" -print0 | \
		xargs -0 md5sum | \
		sed -e '/\.\//s///' > DEBIAN/md5sums && \
		chmod 644 DEBIAN/md5sums
# Build the package
	dpkg --build debian/$(base-package) ..

binary-arch:	checkroot build
	$(checkdir)
# Clear dependency files
	-rm debian/substvars
# Create directory structure (it assumes the package names above)
	cd debian && install -d `cat dirs \
		| sed "s/%package%/$(name)/g"`
#
# install free imlib
#
	strip --strip-unneeded shared/$(library).so.$(version)
	$(INSTALL) -m 644 shared/$(library).so.$(version) \
		debian/$(package)/usr/lib
	cd debian/$(package)/usr/lib && \
		$(LN) -sf $(library).so.$(version) \
			$(library).so.$(version_major)
	cd debian/$(package)/usr/doc/ && \
		$(LN) -sf imlib-base \
			$(package)
# Install the control files
	$(INSTALL) -d debian/$(package)/DEBIAN
	$(INSTALL) -m 644 debian/control debian/$(package)/DEBIAN
	$(INSTALL) -m 755 debian/postinst debian/$(package)/DEBIAN
#Build the shlib file
	echo "$(library) $(version_major) $(package) (>=$(version)) | $(nf_package) (>=$(version))" > \
		debian/$(package)/DEBIAN/shlibs
#
# install non-free imlib
#
	strip --strip-unneeded nf_shared/$(library).so.$(version)
	$(INSTALL) -m 644 nf_shared/$(library).so.$(version) \
		debian/$(nf_package)/usr/lib
	cd debian/$(nf_package)/usr/lib && \
		$(LN) -sf $(library).so.$(version) \
			$(library).so.$(version_major)
	cd debian/$(nf_package)/usr/doc/ && \
		$(LN) -sf imlib-base \
			$(nf_package)
# Install the control files
	$(INSTALL) -d debian/$(nf_package)/DEBIAN
	$(INSTALL) -m 644 debian/control debian/$(nf_package)/DEBIAN
	$(INSTALL) -m 755 debian/postinst debian/$(nf_package)/DEBIAN
#Build the shlib file
	echo "$(library) $(version_major) $(nf_package) (>=$(version)) | $(nf_package) (>=$(version))" > \
		debian/$(nf_package)/DEBIAN/shlibs
#
# install free imlib-dev
#
	$(INSTALL) -m 644 Imlib.h \
		debian/$(dev-package)/usr/include/Imlib.h
	$(INSTALL) -m 644 Imlib_private.h \
		debian/$(dev-package)/usr/include/Imlib_private.h
	$(INSTALL) -m 644 Imlib_types.h \
		debian/$(dev-package)/usr/include/Imlib_types.h
	$(INSTALL) -m 644 static/$(library).a \
			debian/$(dev-package)/usr/lib
	cd debian/$(dev-package)/usr/lib && \
		$(LN) -sf $(library).so.$(version_major) \
			$(library).so
	cd debian/$(dev-package)/usr/doc/ && \
		$(LN) -sf imlib-base \
			$(dev-package)
# Install the control files
	$(INSTALL) -d debian/$(dev-package)/DEBIAN
	$(INSTALL) -m 644 debian/control debian/$(dev-package)/DEBIAN
#
# install non-free imlib-dev
#
	$(INSTALL) -m 644 Imlib.h \
		debian/$(nf_dev-package)/usr/include/Imlib.h
	$(INSTALL) -m 644 Imlib_private.h \
		debian/$(nf_dev-package)/usr/include/Imlib_private.h
	$(INSTALL) -m 644 Imlib_types.h \
		debian/$(nf_dev-package)/usr/include/Imlib_types.h
	$(INSTALL) -m 644 static/$(library).a \
			debian/$(nf_dev-package)/usr/lib
	cd debian/$(nf_dev-package)/usr/lib && \
		$(LN) -sf $(library).so.$(version_major) \
			$(library).so
	cd debian/$(nf_dev-package)/usr/doc/ && \
		$(LN) -sf imlib-base \
			$(nf_dev-package)
# Install the control files
	$(INSTALL) -d debian/$(nf_dev-package)/DEBIAN
	$(INSTALL) -m 644 debian/control debian/$(nf_dev-package)/DEBIAN
#
# End the package building process
# Set ownerships and rights
	chown -R root.root debian/$(package) \
		debian/$(dev-package)        \
		debian/$(nf_package)         \
		debian/$(nf_dev-package)
	chmod -R go=rX 	debian/$(package)    \
		debian/$(dev-package)        \
		debian/$(nf_package)         \
		debian/$(nf_dev-package)
	chmod -R u+w debian/$(package)       \
		debian/$(dev-package)        \
		debian/$(nf_package)         \
		debian/$(nf_dev-package)
#
# Build free imlib
#
# Clear dependency files
	-rm debian/substvars
# Calculate Dependencies
	dpkg-shlibdeps \
		debian/$(package)/usr/lib/$(library).so.$(version)
	dpkg-gencontrol -p$(package) -Pdebian/$(package)
	cd debian/$(package) && \
		find . -type f ! -regex "./DEBIAN/.*" -print0 | \
		xargs -0 md5sum | \
		sed -e '/\.\//s///' > DEBIAN/md5sums && \
		chmod 644 DEBIAN/md5sums
	dpkg --build debian/$(package) ..
#
# Build free imlib-dev
#
	dpkg-gencontrol -p$(dev-package) -Pdebian/$(dev-package)
	cd debian/$(dev-package) && \
		find . -type f ! -regex "./DEBIAN/.*" -print0 | \
		xargs -0 md5sum | \
		sed -e '/\.\//s///' > DEBIAN/md5sums && \
		chmod 644 DEBIAN/md5sums
	dpkg --build debian/$(dev-package) ..
#
# Build non-free imlib
#
# Calculate Dependencies
	dpkg-shlibdeps \
		debian/$(nf_package)/usr/lib/$(library).so.$(version)
	dpkg-gencontrol -p$(nf_package) -Pdebian/$(nf_package)
	cd debian/$(nf_package) && \
		find . -type f ! -regex "./DEBIAN/.*" -print0 | \
		xargs -0 md5sum | \
		sed -e '/\.\//s///' > DEBIAN/md5sums && \
		chmod 644 DEBIAN/md5sums
	dpkg --build debian/$(nf_package) ..
#
# Build non-free imlib-dev
#
	dpkg-gencontrol -p$(nf_dev-package) -Pdebian/$(nf_dev-package)
	cd debian/$(nf_dev-package) && \
		find . -type f ! -regex "./DEBIAN/.*" -print0 | \
		xargs -0 md5sum | \
		sed -e '/\.\//s///' > DEBIAN/md5sums && \
		chmod 644 DEBIAN/md5sums
	dpkg --build debian/$(nf_dev-package) ..

define checkdir
	test -f debian/rules
endef

# Below here is fairly generic really

binary:	binary-indep binary-arch

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

checkroot:
	$(checkdir)
	test root = "`whoami`"

.PHONY: binary binary-arch binary-indep clean checkroot
