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

library=libgdk_imlib

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 -lgif -Wl,-soname,$(library).so.1"
	#
	# 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/substvars debian/$(package) debian/$(dev-package) \
		debian/$(nf_package) debian/$(nf_dev-package)

binary-indep:	checkroot build
	$(checkdir)
# There are no binary-indep targets in this package

binary-arch:	checkroot build
	$(checkdir)
# Create directory structure (it assumes the package names above)
	cd debian && install -d `cat dirs \
		| sed "s/%package%/$(name)/g"`
#
# install free gdk-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 gdk-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)) | $(package) (>=$(version)) " > \
		debian/$(nf_package)/DEBIAN/shlibs
#
# install free gdkimlib-dev
#
	$(INSTALL) -m 644 gdk_imlib.h \
		debian/$(dev-package)/usr/include/gdk_imlib.h
	$(INSTALL) -m 644 gdk_imlib_private.h \
		debian/$(dev-package)/usr/include/gdk_imlib_private.h
	$(INSTALL) -m 644 gdk_imlib_types.h \
		debian/$(dev-package)/usr/include/gdk_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 gdkimlib-dev
#
	$(INSTALL) -m 644 gdk_imlib.h \
		debian/$(nf_dev-package)/usr/include/gdk_imlib.h
	$(INSTALL) -m 644 gdk_imlib_private.h \
		debian/$(nf_dev-package)/usr/include/gdk_imlib_private.h
	$(INSTALL) -m 644 gdk_imlib_types.h \
		debian/$(nf_dev-package)/usr/include/gdk_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 gdk-imlib
#
# 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 gdk-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 gdk-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 gdk-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
