##	Makefile
##	========

#	Prepare and install Cygpack.


##	Define variables.
##	----------------

package ?= cygpack
prefix = /usr/local
bindir = $(prefix)/bin
libdir = $(prefix)/lib/$(package)
mandir = $(prefix)/share/man/man1
infodir = $(prefix)/share/info
makedir = $(prefix)/share/make

t2pcsuffs = aux cp fn ky log pdf pg toc tp vr
	#texi2pdf clean suffixes

binfiles = for2exe tab2exe
libfiles = ivironcp.bat gvironcp.bat ifor2exe gfor2exe lfor2exe
manfiles = for2exe.1 tab2exe.1
infofiles = $(package).info
makefiles = $(package).mk
pdffiles = $(package).pdf
texinfostems = $(package)
sedstems = for2exe ifor2exe gfor2exe
	#stems of names of files requiring processing by `sed`
u2dbatstems = ivironcp gvironcp
	#stems of names of batch files requiring processing by `u2d`
nullfiles = lfor2exe for2exe.1 tab2exe.1 tab2exe cygpack.mk
	#files not requiring processing
srcfiles =\
	README\
	Makefile\
	${nullfiles}\
	${foreach sedfile,${sedstems},$(sedfile)-sed}\
	${foreach file,${u2dbatstems},$(file)-u2d.bat}\
	${foreach file,${texinfostems},$(file).texinfo}


##	Define default target.
##	---------------------

all : ${binfiles} ${libfiles} ${manfiles} ${infofiles} ${makefiles}


##	Execute.
##	-------

docclean :
	rm -f ${foreach file,${texinfostems},${foreach suff,${t2pcsuffs},$(file).$(suff)}}

doc : ${pdffiles}

clean :
	rm -f\
		${foreach file,${sedstems},$(file)}\
		${foreach file,${u2dbatstems},$(file).bat}\
		${foreach file,${texinfostems},$(file).info}

uninstall :
	rm -f ${foreach file,${makefiles},$(makedir)/$(file)}
	rm -f ${foreach file,${infofiles},$(infodir)/$(file)}
	-for i in $(infofiles); do install-info --delete --info-dir=$(infodir) $$i; done
	rm -f ${foreach file,${manfiles},$(mandir)/$(file)}
	rm -f ${foreach file,${binfiles},$(bindir)/$(file)}
	rm -rf $(libdir)

install :\
	${foreach file,${binfiles},$(bindir)/$(file)}\
	${foreach file,${libfiles},$(libdir)/$(file)}\
	${foreach file,${manfiles},$(mandir)/$(file)}\
	${foreach file,${infofiles},$(infodir)/$(file)}\
	${foreach file,${makefiles},$(makedir)/$(file)}

${foreach file,${makefiles},$(makedir)/$(file)} : $(makedir)/% : % $(makedir)
	install -cD $< $@

$(makedir) :
	mkdir $(makedir)

${foreach file,${infofiles},$(infodir)/$(file)} : $(infodir)/% : % $(infodir)
	install -cD $< $@
	install-info --info-dir=$(infodir) $*

$(infodir) :
	mkdir $(infodir)

${foreach file,${manfiles},$(mandir)/$(file)} : $(mandir)/% : %
	install -cD $< $@

${foreach file,${libfiles},$(libdir)/$(file)} : $(libdir)/% : %
	install -cD $< $@

${foreach file,${binfiles},$(bindir)/$(file)} : $(bindir)/% : %
	install -cD $< $@

${foreach file,${texinfostems},$(file).pdf} : %.pdf : %.texinfo
	texi2pdf $*.texinfo

${foreach file,${texinfostems},$(file).info} : %.info : %.texinfo
	makeinfo $*.texinfo

${foreach file,${sedstems},$(file)} : % : %-sed
	<$*-sed sed 's:$${libdir}:$(libdir):g;' >$*

${foreach file,${u2dbatstems},$(file).bat} : %.bat : %-u2d.bat
	<$*-u2d.bat u2d >$*.bat

${srcfiles} : % : ;


##	Define special targets.
##	----------------------

srclist :
	@echo ${srcfiles} | sed 's/ /\n/g;' | sort

.DELETE_ON_ERROR :

.PHONY : all clean install uninstall srclist


##	end of program
##	--------------
##	vi:noet:sts=0:sw=8:tw=0
