#### Makefile --- Makefile for libxml-clisp download area

### N. Raghavendra <raghu@retrotexts.net>
### 
### Created: 2009-09-14
### 
### $Hg$

AWK=		/usr/bin/awk
GPG=		/usr/local/bin/gpg
GPG_AGENT=	/usr/local/bin/gpg-agent
HG=		/usr/local/bin/hg
LN=		/bin/ln
RM=		/bin/rm
RSYNC=		/usr/local/bin/rsync
SETENV=		/usr/bin/env

PROG=		libxml-clisp
PROG_DIR=	${.CURDIR}/../${PROG}
DOWNLOAD_DIR=	${.CURDIR}

GPG_AGENT_FILE=	${.CURDIR}/.gpg-agent
GPG_AGENT_PID=	`${AWK} -F ':' '{ print $$2 }' ${GPG_AGENT_FILE}`
GPG_AGENT_ENV=	`cat ${GPG_AGENT_FILE}`

UPLOAD_USER=	raghu
UPLOAD_HOST=	dl.sv.nongnu.org
UPLOAD_DIR=	/releases/libxml-clisp/
UPLOAD_URI=	${UPLOAD_USER}@${UPLOAD_HOST}:${UPLOAD_DIR}

.if defined(RELEASE) && !empty(RELEASE)
REVISION=	RELEASE_${RELEASE:S|.|_|g}
LINK_NAME=	LATEST_RELEASE.tar.gz
SUFFIX=		${RELEASE}
.else
LINK_NAME=	LATEST_SNAPSHOT.tar.gz
SUFFIX=		${CHANGESET}
.endif

.if defined(REVISION) && !empty(REVISION)
CHANGESET=	${REVISION}
.else
CHANGESET!=	cd ${PROG_DIR} && ${HG} identify | awk '{ print $$1 }'
.endif

TARBALL_NAME=	${PROG}-${SUFFIX}.tar.gz
TARBALL=	${DOWNLOAD_DIR}/${TARBALL_NAME}
LINK=		${DOWNLOAD_DIR}/${LINK_NAME}

.PHONY: all clean signature tarball upload verify

.MAIN: all

all: signature

${TARBALL}:
	cd ${PROG_DIR} && ${HG} archive -t tgz -r ${CHANGESET} ${.TARGET}
	cd ${DOWNLOAD_DIR} && ln -sf ${TARBALL_NAME} ${LINK_NAME}

tarball: ${TARBALL}

${TARBALL}.sig: ${TARBALL}
	${GPG_AGENT} --write-env-file ${GPG_AGENT_FILE} --daemon
	${SETENV} ${GPG_AGENT_ENV} ${GPG} -b ${TARBALL}
	cd ${DOWNLOAD_DIR} && ln -sf ${TARBALL_NAME}.sig ${LINK_NAME}.sig
	kill -s SIGTERM ${GPG_AGENT_PID}
	${RM} -f ${GPG_AGENT_FILE}

signature: ${TARBALL}.sig

verify: signature
	${GPG} --verify ${TARBALL}.sig

upload: signature
	${RSYNC} -avvz -e ssh --no-perms --chmod=go-w,u+rw,go+r \
		${DOWNLOAD_DIR}/* ${UPLOAD_URI}

### One can use sftp(1) instead of rsync(1), e.g., as follows:
###
### 	echo -e "put ${TARBALL} \n \
### 		put ${TARBALL}.sig \n \
### 		chmod 644 ${TARBALL_NAME} \n \
### 		chmod 644 ${TARBALL_NAME}.sig \n \
### 		-rm ${LINK_NAME} \n \
### 		-rm ${LINK_NAME}.sig \n \
### 		symlink ${TARBALL_NAME} ${LINK_NAME} \n \
### 		symlink ${TARBALL_NAME}.sig ${LINK_NAME}.sig \n \
### 		exit" | \
### 	sftp -b - ${UPLOAD_URI}

clean:
	if [ ${LINK} -ef ${TARBALL} ] ; then \
		${RM} -f ${LINK} ${LINK}.sig ; \
	fi
	${RM} -f ${TARBALL} ${TARBALL}.sig ${GPG_AGENT_FILE}



### Local Variables:
### mode: makefile
### comment-column: 32
### End:

#### Makefile ends here