RPM_CMD =	BUILD/rpm
RPM =		env HOME="`pwd`" "${RPM_CMD}"
RPMBUILD_CMD =	BUILD/rpmbuild
RPMBUILD =	env HOME="`pwd`" "${RPMBUILD_CMD}"
SPEC =		SPECS/*.spec

default: usage

usage:
	@echo "Usage:"
	@echo " ${MAKE} <bp|bc|bi|bl|bb|bs|ba>"
	@echo " ${MAKE} clean"
	@echo " ${MAKE} import srpm=SRPM"
	@echo
	@echo "Argument:"
	@echo " bp	rpmbuild -bp (%prep)"
	@echo " bc	rpmbuild -bc (%prep, %build)"
	@echo " bcs	rpmbuild -bc --short-circuit (%build)"
	@echo " bi	rpmbuild -bi (%prep, %build, %install)"
	@echo " bis	rpmbuild -bi --short-circuit (%install)"
	@echo " bl	rpmbuild -bl (list check by %files)"
	@echo " bb	rpmbuild -bb (%prep, %build, %install, build RPM)"
	@echo " bs	rpmbuild -bs (build SRPM)"
	@echo " ba	rpmbuild -ba (%prep, %build, %install, build RPM and SRPM)"

clean:
	@# Remove sources that are hard-linked with ../dist/* files.
	ls -l SOURCES/* |awk '/^-/ && $$2>1 {sub(/.* /,"");print}' |xargs rm -f
	rm -rf .rpmmacros* BUILD SRPMS RPMS *.stamp

import: .rpmmacros ${RPM_CMD}
	@echo 'Preparing to import ${srpm} ...'
	@[ -n "${srpm}" ] || { echo "Usage: ${MAKE} import srpm=SRPM"; exit 1; }
	@[ -f "${srpm}" ] || { echo "SRPM to import not found: ${srpm}"; exit 1; }
	@[ -f Makefile ] || echo 'include ../common/Makefile' >Makefile
	@mkdir -p SPECS SOURCES
	@${RPM} -ih "${srpm}"
	@rm -rf .rpmmacros* BUILD
	@echo 'Done.'
	@echo 'Do the following commands to complete importing!'
	@echo '  $$ svn add *'
	@echo '  $$ cd ..'
	@echo '  $$ svn propset svn:externals "common svn+ssh://svn.osstech.co.jp/project/svn/common/rpm" .'
	@echo '  $$ svn commit .'

prepare: prepare.stamp

prepare.stamp: .rpmmacros ${RPM_CMD} ${RPMBUILD_CMD}
	mkdir -p BUILD SRPMS RPMS
	@# Make hard-links from ../dist/* files that don't exist in SOURCES.
	set -e; ../common/rpmspec-ls SPECS/*.spec \
	    |while read src; do \
		src_orig="../dist/$$src"; \
		src_temp="SOURCES/$$src"; \
		[ -f "$$src_temp" ] && continue; \
		ln "$$src_orig" "$$src_temp"; \
	    done
	touch prepare.stamp

.rpmmacros:
	echo "%_topdir `pwd`" >.rpmmacros
	echo "%_tmppath `pwd`/BUILD" >>.rpmmacros
	cp -p .rpmmacros .rpmmacros.ssbuild

${RPM_CMD}:
	mkdir -p BUILD
	[ -x /opt/osstech/bin/ssbuild-rpm ] && \
	    echo /opt/osstech/bin/ssbuild-rpm '$${1:+"$$@"}' >"${RPM_CMD}" || \
	    echo rpm '$${1:+"$$@"}' >"${RPM_CMD}"
	chmod +x "${RPM_CMD}"

${RPMBUILD_CMD}:
	mkdir -p BUILD
	[ -x /opt/osstech/bin/ssbuild-rpmbuild ] && \
	    echo /opt/osstech/bin/ssbuild-rpmbuild '$${1:+"$$@"}' >"${RPMBUILD_CMD}" || \
	    echo rpmbuild '$${1:+"$$@"}' >"${RPMBUILD_CMD}"
	chmod +x "${RPMBUILD_CMD}"

bp prep: prepare
	${RPMBUILD} -bp ${SPEC}

bc build: prepare
	${RPMBUILD} -bc ${SPEC}

bcs: prepare
	${RPMBUILD} -bc --short-circuit ${SPEC}

bi install: prepare
	${RPMBUILD} -bi ${SPEC}

bis: prepare
	${RPMBUILD} -bi --short-circuit ${SPEC}

bl listcheck: prepare
	${RPMBUILD} -bl ${SPEC}

bb rpm: prepare
	${RPMBUILD} -bb ${SPEC}

bs srpm: prepare
	${RPMBUILD} -bs ${SPEC}

ba all: prepare
	${RPMBUILD} -ba ${SPEC}

check: prepare
	${RPMBUILD} -ba --nobuild ${SPEC}

