#!/usr/bin/make -f

.PHONY: build

PKG  = netbase
PVER = 2.06-1
ARCH := $(shell dpkg --print-architecture)

# BASEDIR must not be a relative path! Always use an absolute path!
# export BASEDIR = /tmp/debian-tmp
export BASEDIR = $(shell pwd)/debian-tmp


SUBDIRS = inetd-5.30 net-tools-1.2.0 net-tools-1.32-alpha ping-5.9 tcp_wrappers_7.4 portmap-5.4s3 ipfwadm-2.3.0
DATADIRS = etc-${PKG}

build:
	@for i in $(SUBDIRS) $(DATADIRS); do \
	 ( if [ -f $$i.tar.gz -a ! -d $$i ]; then \
	     echo -e "\nExtracting \`$$i.tar.gz' ...\n" && tar xvfz $$i.tar.gz && rm -f $$i.tar.gz; \
	   fi ) || exit 1; \
	done
	@for i in $(SUBDIRS); do \
	 ( cd ./$$i && echo -e "\nMaking all in \`$$i':\n" && make ) || exit 1; \
	done

install: dir
	@for i in $(SUBDIRS); do \
	 ( cd ./$$i && echo -e "\nMaking install in \`$$i':\n" && make install ) || exit 1; \
	done

clean:
	@for i in $(SUBDIRS); do \
	 ( cd ./$$i && echo -e "\nMaking clean in \`$$i':\n" && make clean ) || exit 1; \
	done
	rm -rf ${BASEDIR}

binary: install
	sed -e 's/=V/$(PVER)/' -e 's/=A/$(ARCH)/' \
		debian.control > debian-tmp/DEBIAN/control
	chmod 644 debian-tmp/DEBIAN/control
#	install -o root -g root -m 0644 debian.control ${BASEDIR}/DEBIAN/control
	install -o root -g root -m 0644 debian.conffiles ${BASEDIR}/DEBIAN/conffiles
	install -o root -g root -m 0755 debian.preinst ${BASEDIR}/DEBIAN/preinst
	install -o root -g root -m 0755 debian.postinst ${BASEDIR}/DEBIAN/postinst
	install -o root -g root -m 0755 debian.prerm ${BASEDIR}/DEBIAN/prerm
	install -o root -g root -m 0755 debian.postrm ${BASEDIR}/DEBIAN/postrm
	install -o root -g root -m 0644 COPYRIGHT ${BASEDIR}/usr/doc/copyright/${PKG}
	install -o root -g root -m 0644 etc-${PKG}/* ${BASEDIR}/etc
	install -o root -g root -m 0755 rc.netbase ${BASEDIR}/etc/init.d/netbase
	install -o root -g root -m 0755 cron.netbase ${BASEDIR}/etc/cron.daily/netbase
	install -o root -g root -m 0644 DebianNet.pm ${BASEDIR}/usr/lib/perl5
	install -o root -g root -m 0644 DebianNet.3pm ${BASEDIR}/usr/man/man3
	install -o root -g root -m 0755 update-inetd ${BASEDIR}/usr/sbin
	install -o root -g root -m 0644 update-inetd.8 ${BASEDIR}/usr/man/man8
	install -o root -g root -m 0644 resolv+.8 ${BASEDIR}/usr/man/man8
	dpkg --build ${BASEDIR}
	dpkg-name --subdir .. ${BASEDIR}.deb

source:
# Makes a source package.
	chmod +x debian.rules
	(cd .. && tar cvf ${PKG}_${PVER}.orig.tar ${PKG}.orig) || exit 1;
	gzip -9fv ../${PKG}_${PVER}.orig.tar
	install -d ../net-tmp
	@for i in $(SUBDIRS) $(DATADIRS); do \
	 ( echo -e "\nCreating \`$$i.tar' ...\n" && tar cvf ../net-tmp/$$i.tar $$i ) || exit 1; \
	done
	gzip -9fv ../net-tmp/*.tar
	cp update-inetd update-inetd.8 DebianNet.pm DebianNet.3pm resolv+.8 COPYRIGHT cron.netbase rc.netbase debian.* ../net-tmp
	(cd ../net-tmp && tar cvf ../${PKG}_${PVER}.tar *) || exit 1;
	gzip -1v ../${PKG}_${PVER}.tar
	rm -rf ../net-tmp
 
diff:
# Makes a diff package.
	install -m 755 -d ../${PKG}.diffs
	@for i in $(SUBDIRS) $(DATADIRS); do \
	 ( cd ..; \
	   if [ -d ${PKG}.orig/$$i.orig ]; then \
	     echo -e "Creating diff for $$i ..."; \
	     diff -c -P --recursive --exclude=COPYRIGHT \
		--exclude=COPYING ${PKG}.orig/$$i.orig/ ${PKG}/$$i/ >${PKG}.diffs/$$i.diff || \
	     true; \
	   fi ) || exit 1; \
	done
	gzip -9fv ../${PKG}.diffs/*.diff
	(cd ../${PKG}.diffs && tar cvf ../${PKG}_${PVER}.diff.tar *) || exit 1;
	gzip -1v ../${PKG}_${PVER}.diff.tar


dist: source diff binary
# Make source, diff and binary packages

dchanges:
	perl -ane '$$a+=/^[A-Z].*/;s/^\t//;\
		print if ($$a<2 and $$_ ne "\n" and !/\* Version \d+(\.\d+)+ released/ \
		and !/^[A-Z]/)' debian.Changelog >../netbase.changelog.tmp
	(cd ..; dchanges ce=netbase.changelog.tmp sf=${PKG}_${PVER}.tar.gz sf=${PKG}_${PVER}.diff.tar.gz ${PKG}_${PVER}*.deb )
	-rm -f ../netbase.changelog.tmp


dir:
	rm -rf ${BASEDIR}
	install -o root -g root -m 0755 -d ${BASEDIR}
	install -o root -g root -m 0755 -d ${BASEDIR}/DEBIAN
	install -o root -g root -m 0755 -d ${BASEDIR}/bin
	install -o root -g root -m 0755 -d ${BASEDIR}/etc/init.d
	install -o root -g root -m 0755 -d ${BASEDIR}/etc/cron.daily
	install -o root -g root -m 0755 -d ${BASEDIR}/sbin
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/doc/copyright
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/doc/net
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/include
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/lib/perl5
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/sbin
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/man/man3
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/man/man4
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/man/man5
	install -o root -g root -m 0755 -d ${BASEDIR}/usr/man/man8

