# http://rsync.samba.org/
# ftp://rsync.samba.org/pub/rsync/

BUILDDIR    = rsync-2.3.1

DESTDIR     = ${TOPDIR}/pkg 

BASEDIR     = /opt/FSFrsync
BASEDIREXISTS=/opt

CONFOPTS    = 

PKGNAME     = FSFrsync
NAME        = rsync
DESC        = a utility that provides fast incremental file transfer
ARCH:sh     = uname -p
VERSIONSH   = echo ${BUILDDIR} | sed 's/^[^-]*-//'
VERSION     = ${VERSIONSH:sh}
CATEGORY    = application
MAXINST     = 1000
VENDOR      = Free Software Foundation
EMAIL       = dj@gregor.com
CLASSES     = none

PKGPROTO    = /usr/bin/pkgproto
PKGMK       = /usr/bin/pkgmk
PKGTRANS    = /usr/bin/pkgtrans

INSTUSER    = root
INSTGROUP   = root

TOPDIR:sh   = pwd

SPOOLDIR    = /var/spool/pkg

OTHERFILES  = ${DESTDIR}${BASEDIR}/COPYING ${DESTDIR}/copyright
INSTALLFILES= pkginfo copyright


all: pkg

pkg: ${BUILDDIR}.pkg

${BUILDDIR}.pkg:  ${DESTDIR}/prototype
	( cd ${DESTDIR} ; ${PKGMK} -d ${SPOOLDIR} -or . )
	( cd ${SPOOLDIR}/${PKGNAME}/reloc ; find . -depth -print | \
		grep -v '^\.$$' | cpio -odm | compress > ../reloc.cpio.Z )
	rm -rf ${SPOOLDIR}/${PKGNAME}/reloc
	$(PKGTRANS) ${SPOOLDIR} ${TOPDIR}/${BUILDDIR}.pkg ${PKGNAME}

${DESTDIR}/prototype: ${DESTDIR}/pkginfo
	@( cd ${DESTDIR} ; \
	 find . -print | \
		$(PKGPROTO) | nawk -v instuser="${INSTUSER}" \
		-v instgroup="${INSTGROUP}" -v basedirexists="${BASEDIREXISTS}"\
		-v installfiles="${INSTALLFILES}" \
		'BEGIN { \
			n = split(installfiles, setupinstallfiles); \
			for ( i = 1; i <= n; i++ ) { \
				print "i", setupinstallfiles[i]; \
			} \
		} \
		{ \
			if ( match($$3, "^prototype$$") ) { \
				next; \
 			} \
			checkbasedir = basedirexists; \
			sub("^/", "", checkbasedir); \
			while ( checkbasedir != "" ) { \
				if ( match($$3, "^"checkbasedir"$$") ) { \
					sub("[^/]*$$", "", checkbasedir); \
					sub("/$$", "", checkbasedir); \
					print $$1, $$2, $$3, "?", "?", "?"; \
					next; \
 				} \
				sub("[^/]*$$", "", checkbasedir); \
				sub("/$$", "", checkbasedir); \
			} \
			n = split(installfiles, checkinstallfiles); \
			for ( i = 1; i <= n; i++ ) { \
				if (match($$3, "^"checkinstallfiles[i]"$$")) { \
					next; \
 				} \
			} \
			\
			print $$1, $$2, $$3, $$4, instuser, instgroup; \
		}' \
	 ) > ${DESTDIR}/prototype

${DESTDIR}/pkginfo: .package-installed.${BUILDDIR}
	rm -f ${DESTDIR}/pkginfo
	@echo "PKG=\"${PKGNAME}\"" >> ${DESTDIR}/pkginfo
	@echo "NAME=\"${NAME}\"" >> ${DESTDIR}/pkginfo
	@echo "DESC=\"${DESC}\"" >> ${DESTDIR}/pkginfo
	@echo "ARCH=\"${ARCH}\"" >> ${DESTDIR}/pkginfo
	@echo "MAXINST=\"${MAXINST}\"" >> ${DESTDIR}/pkginfo
	@echo "VERSION=\"${VERSION} (`uname -s`-`uname -r`)\"" >> ${DESTDIR}/pkginfo
	@echo "CATEGORY=\"${CATEGORY}\"" >> ${DESTDIR}/pkginfo
	@echo "VENDOR=\"${VENDOR}\"" >> ${DESTDIR}/pkginfo
	@echo "EMAIL=\"${EMAIL}\"" >> ${DESTDIR}/pkginfo
	@echo "BASEDIR=\"/\"" >> ${DESTDIR}/pkginfo
	@echo "CLASSES=\"${CLASSES}\"" >> ${DESTDIR}/pkginfo

.package-installed.${BUILDDIR}: build clean.${DESTDIR} ${DESTDIR}${BASEDIR} \
		${OTHERFILES}
	cd ${BUILDDIR} ; ${MAKE} prefix=${DESTDIR}${BASEDIR} \
		INSTALL=/usr/ucb/install install
	touch $@

${DESTDIR}${BASEDIR}/COPYING: ${BUILDDIR}/COPYING
	cp $? $@

${DESTDIR}/copyright:
	@echo "This is free software; you can redistribute it and/or" > $@
	@echo "modify it under the terms of the GNU General Public" >> $@
	@echo "License, see the file ${BASEDIR}/COPYING." >> $@


clean.${DESTDIR}:
	rm -rf ${DESTDIR}


${DESTDIR}${BASEDIR}:
	mkdir -p $@

build: .configured.${BUILDDIR}
	cd ${BUILDDIR} ; ${MAKE} all

clean:
	rm -rf ${BUILDDIR} ${DESTDIR} .configured.${BUILDDIR} \
		.untarred.${BUILDDIR} .package-installed.${BUILDDIR} \
		${SPOOLDIR}/${PKGNAME}

distclean: clean
	rm -f ${BUILDDIR}.pkg

install:
	cd ${BUILDDIR} ; ${MAKE} install

.untarred.${BUILDDIR}:: ${BUILDDIR}.tar.gz 
	gzip -cd $? | tar xvf -
	touch $@

.configured.${BUILDDIR}: .untarred.${BUILDDIR}
	cd ${BUILDDIR} ; ./configure --prefix=${BASEDIR} \
		${CONFOPTS} 
	touch $@

veryclean: distclean
	rm -rf .revision

