# Makefile for authoring less.

EMAIL = markn@greenwoodsoftware.com
HOMEPAGE = http://www.greenwoodsoftware.com/less
SHELL = /bin/sh
RCS = rcs
NROFF = nroff -man

srcdir = .

SRC = \
	main.c screen.c brac.c ch.c charset.c cmdbuf.c \
	command.c cvt.c decode.c edit.c filename.c forwback.c \
	help.c ifile.c input.c jump.c line.c linenum.c \
	lsystem.c mark.c optfunc.c option.c opttbl.c os.c \
	output.c pattern.c position.c prompt.c search.c signal.c \
	tags.c ttyin.c version.c  
DISTFILES_W = \
	defines.ds  Makefile.dsb Makefile.dsg Makefile.dsu \
	defines.o2  Makefile.o2e \
	defines.o9  Makefile.o9c Makefile.o9u \
	defines.wn  Makefile.wnm Makefile.wnb
DISTFILES = \
	${SRC} regexp.c regexp.h \
	COPYING INSTALL LICENSE Makefile.in Makefile.aut NEWS README \
	configure configure.ac lesskey.c lessecho.c scrsize.c \
	charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h \
	pckeys.h pattern.h position.h \
	install.sh defines.h.in mkinstalldirs \
	less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man \
	less.hlp \
	mkfuncs.awk mkhelp.c \
	${DISTFILES_W}

all: help.c funcs.h ${srcdir}/configure 

release: .FORCE
	${MAKE} -f Makefile.aut tagall 
	${MAKE} -f Makefile.aut all 
	${MAKE} -f Makefile.aut clean 
	${MAKE} -f Makefile.aut dist

.FORCE:

help.c: less.hlp mkhelp
	-mv -f ${srcdir}/help.c ${srcdir}/help.c.old
	rm -rf help.c
	./mkhelp < less.hlp > help.c
	if cmp -s help.c help.c.old; then mv help.c.old help.c; fi

mkhelp: mkhelp.c
	${CC} -o mkhelp mkhelp.c

${srcdir}/configure: ${srcdir}/configure.ac \
		${srcdir}/Makefile.in
	cd ${srcdir}; autoheader; autoconf

funcs.h: ${SRC:%=${srcdir}/%}
	-mv -f ${srcdir}/funcs.h ${srcdir}/funcs.h.old
	awk -f ${srcdir}/mkfuncs.awk ${SRC:%=${srcdir}/%} >${srcdir}/funcs.h
	if cmp -s funcs.h funcs.h.old; then mv funcs.h.old funcs.h; fi

lint:
	lint -I. ${CPPFLAGS} ${SRC}

clean: 
	rm -f Makefile config.status config.log config.cache defines.h stamp-h \
		README NEWS \
		less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man 

distclean: clean
realclean: clean

REPLACE_VERSION = \
	@REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q ${srcdir}/version.c`; \
	DT=`date '+%d %h %Y'`; \
	echo "Stuffing version number $$REL into $@"; \
	sed \
		-e "s;@@VERSION@@;$$REL;" \
		-e "s;@@DATE@@;$$DT;" \
		-e "s;@@EMAIL@@;${EMAIL};" \
		-e "s;@@HOMEPAGE@@;${HOMEPAGE};" >$@

${srcdir}/README: ${srcdir}/README.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/README.VER
${srcdir}/NEWS: ${srcdir}/NEWS.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/NEWS.VER
${srcdir}/less.nro: ${srcdir}/less.nro.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/less.nro.VER
${srcdir}/lesskey.nro: ${srcdir}/lesskey.nro.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/lesskey.nro.VER
${srcdir}/lessecho.nro: ${srcdir}/lessecho.nro.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/lessecho.nro.VER
${srcdir}/less.hlp: ${srcdir}/less.hlp.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/less.hlp.VER

${srcdir}/less.man: ${srcdir}/less.nro
	${NROFF} ${srcdir}/less.nro >${srcdir}/less.man
${srcdir}/lesskey.man: ${srcdir}/lesskey.nro
	${NROFF} ${srcdir}/lesskey.nro >${srcdir}/lesskey.man
${srcdir}/lessecho.man: ${srcdir}/lessecho.nro
	${NROFF} ${srcdir}/lessecho.nro >${srcdir}/lessecho.man


distfiles: ${DISTFILES}

dist: ${DISTFILES}
	if [ ! -d ${srcdir}/release ]; then mkdir ${srcdir}/release; fi
	@cd ${srcdir}; \
	REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/less-\1/' -e q version.c`; \
	rm -rf release/$$REL; mkdir release/$$REL; \
	echo "Preparing $$REL"; \
	rm -rf $$REL; mkdir $$REL; \
	for file in ${DISTFILES}; do \
	  cp -p $$file $$REL; \
	  chmod -w $$REL/$$file; \
	done; \
	cd $$REL; chmod +w ${DISTFILES_W}; cd ..; \
	echo "Creating release/$$REL/$$REL.tar.gz"; \
	tar -cf - $$REL | gzip -c >release/$$REL/$$REL.tar.gz; \
	echo "Signing release/$$REL/$$REL.tar.gz"; \
	gpg --detach-sign release/$$REL/$$REL.tar.gz; \
	echo "Creating release/$$REL/$$REL.zip"; \
	zip -rq release/$$REL/$$REL.zip $$REL; \
	rm -rf $$REL

tagall:
	@REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/v\1/' -e q ${srcdir}/version.c`; \
	echo "tagging $$REL"; \
	for f in ${srcdir}/RCS/*,v; do \
	  REV=`co -p $$f 2>&1 | sed -e '1d' -e '3,$$d' -e 's/revision //'`; \
	  ${RCS} -N$$REL:$$REV $$f; \
	done
