#
#	Aviation navigation program
#	Makefile
#	Makefile [2.39] from /preflight/src/nav/SCCS/s.Makefile
#		Retrieved 16:26:02 88/07/07; latest mod 16:24:24 88/07/07
#
#	Alan M. Marcum		marcum@nescorna.Sun.COM
#	Robert J. Evans		pyramid!tolerant!procase!rje
#

SUBDIRS	= hdr src doc man dbs

FILES		= Makefile newvers.sh GetRelease.sh build_sed.sh
MOSTFILES	= $(FILES) ReleaseHistory LatestRelease ReleaseMap
PRINTFILES	= $(MOSTFILES) README
SHARFILES	= $(MOSTFILES) release

OBJECTS		= Makefile README newvers GetRelease build_sed GetRelease \
		  ReleaseHistory LatestRelease ReleaseMap

all:	$(OBJECTS) $(SUBDIRS)
	cp src/nav nav
	strip nav
	@size nav

$(SUBDIRS): FORCE
	cd $@; $(MAKE) $(MFLAGS)

release: newvers
	sh newvers -n

README:
	-ln -s doc/README.doc $@

Install:	all
	@echo ""
	@echo "Beginning NAV installation into $(NAVPATH)."
	-@if [ -x $(NAVPATH)/nav ]; then \
		(cd $(NAVPATH); mv nav $(DBS) $(DOCS) \
			/$(TEMPDIR)); \
		echo "Previous release backed up to $(TEMPDIR)"; \
	fi
	-@if cp nav $(DBS) $(DOCS)	$(NAVPATH); then \
		echo -n "NAV installed in $(NAVPATH)" ; \
		if [ -x /$(TEMPDIR)/nav ]; then \
			(cd /$(TEMPDIR); rm nav $(DBS) $(DOCS)); \
			echo "; backup copy removed."; \
		else \
			echo "." ; \
		fi \
	else \
		(cd /tmp; mv nav $(DBS) $(DOCS)	/tmp); \
		echo "Install failed; backup copy restored."; \
	fi
	
SHAR:	FORCE nav.top_level.shar
	for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) SHAR); \
		cp $$i/nav.*.shar* .; \
		done
	echo "Shell archives current as of `date`" >> $@

nav.top_level.shar:	shar $(SHARFILES) massage_shar.sed
	shar $@ $(SHARFILES)
	mv $@ $@.TempShar
	sed -f massage_shar.sed $@.TempShar > $@
	rm $@.TempShar
	echo "make UNPACK" >> $@

shar:
	(cd src; $(MAKE) $(MFLAGS) $@)
	ln -s src/shar $@

UNPACK:
	for i in $(SUBDIRS); do \
		mkdir $$i; \
		mv nav.$$i.shar* $$i; \
		echo Unpacking $$i; \
		(cd $$i; cat nav.$$i.shar* | sh); \
		echo $$i unpacked; \
		echo ""; \
	done
	(cd doc; $(MAKE) $(MFLAGS) README.doc)
	$(MAKE) $(MFLAGS) README

massage_shar.sed:	build_sed
	build_sed $@

clean:	.cleanlocal
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) clean); \
		done

cleanall: .cleanlocal
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) cleanall); \
		done
	-sccs clean

.cleanlocal:
	-rm -f nav newvers README shar \
		a.out core *.BAK *.CKP nav.*.shar* SHAR \
		GetRelease build_sed NavVers.h massage_shar.sed ,* \
		Rel*.tmp Rel*.com Rel*.map Rel*.info

print:	FORCE .printlocal
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) print); \
		done
	@touch print

printall: FORCE .printlocalall
	@echo Printing all
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) printall); \
		done
	@touch print

.printlocal: $(PRINTFILES)
	pr $? | lpr
	touch .printlocal

.printlocalall: $(PRINTFILES)
	pr $(PRINTFILES) | lpr
	touch .printlocal

Minor-Release: newvers
	sh newvers -m
	$(MAKE) $(MFLAGS) .delta

Release: newvers
	sh newvers
	$(MAKE) $(MFLAGS) .delta

.delta:	
	-rm Rel`cat release`.tmp Rel`cat release`.com \
		Rel`cat release`.map Rel`cat release`.info
	@echo -n "Enter SCCS comments: "
	@line > Rel`cat release`.com
	for i in $(SUBDIRS); do \
		(cd $$i; \
			echo Now in $$i; \
			echo "- Subdirectory $$i -" >> \
				../Rel`cat ../release`.tmp; \
			$(MAKE) $(MFLAGS) .delta \
				RELBASE=../Rel`cat ../release`); \
		done
	echo "Release `cat release` of `date`:" >> ReleaseHistory
	cat Rel`cat release`.com >> ReleaseHistory
	@echo "- Top Level -" >> ReleaseHistory
	-sccs delta `sccs tell -u` < Rel`cat release`.com >> \
		Rel`cat release`.tmp
	cat Rel`cat release`.tmp >> ReleaseHistory
	@echo "***End of release `cat release` of `date`***" >> ReleaseHistory
	sccs edit LatestRelease > /dev/null 2>&1
	echo -n "	Revision Information for Release `cat release` of " > \
		LatestRelease
	date >> LatestRelease
	echo "	Release `cat release` uses Revision @I@ of this file" | \
		tr '@' '%' >> LatestRelease
	echo >> LatestRelease
	echo "	Release `cat release` comments:" >> LatestRelease
	cat Rel`cat release`.com >> LatestRelease
	echo >> LatestRelease
	sccs prs -d"Module: :M:	:I:	:D: :T:  :P:" -r SCCS >> \
		LatestRelease
	cat Rel`cat release`.info >> LatestRelease
	sccs delget LatestRelease < /dev/null > /dev/null
	sccs edit ReleaseMap > /dev/null
	awk '/Release..*Revision..*file/{printf $$1 " " $$2 "	" $$5 "\n"}' \
		LatestRelease > Rel`cat release`.map
	cat Rel`cat release`.map ReleaseMap > Rel`cat release`.NewMap
	mv Rel`cat release`.NewMap ReleaseMap
	sccs delget ReleaseMap < /dev/null > /dev/null
	rm -f	Rel`cat release`.tmp \
		Rel`cat release`.com \
		Rel`cat release`.map \
		Rel`cat release`.info

checkpoint:
	sccs tell -u > Make.CheckPoint.tmp
	@echo -n "Enter SCCS comments: "
	@line > Make.CheckPoint.com
	-sccs deledit `cat Make.CheckPoint.tmp` < Make.CheckPoint.com
	-touch `cat Make.CheckPoint.tmp`
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) .checkpoint \
			SCCSCOMMENTS=../Make.CheckPoint.com); \
		done
	rm Make.CheckPoint.tmp Make.CheckPoint.com

checkpointlocal:
	sccs tell -u > Make.CheckPoint.tmp
	-sccs deledit `cat Make.CheckPoint.tmp`
	sleep 2
	-touch `cat Make.CheckPoint.tmp`
	-rm Make.CheckPoint.tmp

editall:	editlocal
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) editall); \
		done

editlocal:
	sccs edit $(FILES) > /dev/null

getall:	getlocal
	-for i in $(SUBDIRS); do \
		(cd $$i; echo Now in $$i; $(MAKE) $(MFLAGS) getall); \
		done

getlocal:	$(FILES)

tellall:
	@sccs tell
	-@for i in $(SUBDIRS); do \
		(cd $$i; sccs tell | sed -e "s/^/$$i\//"); \
		done

FORCE:

