#
#   Time-stamp: <00/03/02 12:50:56 yusuf>
#
#   $Id: Makefile,v 1.68.4.7 1999/05/24 05:14:05 yusuf Exp $	


#All the user config stuff, including directories etc..
#is found in Makefile.common
#
#
include version
include Makefile.common




all: bins docs 

bins: taper bg_backup bg_restore

docs: docs/taper.8 docs/Taper.txt docs/FAQ.txt

version.h:version
	echo "#define CUR_VERSION \""$(LATEST_VERSION)"\"" > version.h

taper: version.h .depend $(TAPER_OBJS) $(COMMON_LIB) check_sd
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o taper $(TAPER_OBJS) \
		$(COMMON_LIB) $(COMPRESS_DIR)/$(COMPRESS_LIB) $(LIBPATH) \
		$(LINKLIB) -l$(FORM) -l$(CURSES) 

bg_backup: version.h .depend $(BG_BACKUP_OBJS) $(COMMON_LIB) check_sd
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o bg_backup \
	        $(BG_BACKUP_OBJS) $(COMPRESS_DIR)/$(COMPRESS_LIB) \
		$(COMMON_LIB) $(LIBPATH) $(LINKLIB) -l$(FORM) -l$(CURSES) 

bg_restore: version.h .depend $(BG_RESTORE_OBJS) $(COMMON_LIB) check_sd
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o bg_restore \
	        $(BG_RESTORE_OBJS) $(COMPRESS_DIR)/$(COMPRESS_LIB) \
		$(COMMON_LIB) $(LIBPATH) $(LINKLIB) -l$(FORM) -l$(CURSES)

taper-static: version.h .depend $(TAPER_OBJS) $(COMMON_LIB) check_sd
	touch bg_backup bg_restore
	rm bg_backup bg_restore
	make bg_backup-static
	make bg_restore-static
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o taper $(TAPER_OBJS) \
		$(COMMON_LIB) $(COMPRESS_DIR)/$(COMPRESS_LIB) $(LIBPATH) \
		$(LINKLIB) -l$(FORM) -l$(CURSES) -static

bg_backup-static: version.h .depend $(BG_BACKUP_OBJS) $(COMMON_LIB) check_sd
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o bg_backup \
	        $(BG_BACKUP_OBJS) $(COMPRESS_DIR)/$(COMPRESS_LIB) \
		$(COMMON_LIB) $(LIBPATH) $(LINKLIB) -l$(FORM) -l$(CURSES) -static

bg_restore-static: version.h .depend $(BG_RESTORE_OBJS) $(COMMON_LIB) check_sd
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o bg_restore \
	        $(BG_RESTORE_OBJS) $(COMPRESS_DIR)/$(COMPRESS_LIB) \
		$(COMMON_LIB) $(LIBPATH) $(LINKLIB) -l$(FORM) -l$(CURSES) -static

$(COMMON_LIB): version.h .depend $(COMMON_OBJS)
	ar rc $(COMMON_LIB) $(COMMON_OBJS)
	ranlib $(COMMON_LIB)


check_sd: 
	make -C $(COMPRESS_DIR) $(COMPRESS_LIB)

docs/Taper.txt: docs/Taper.sgml
	sgml2txt docs/Taper
	mv Taper.txt docs

docs/taper.8: docs/Taper.txt
	cp docs/Taper.txt docs/taper.8

docs/FAQ.txt: docs/FAQ.sgml
	sgml2txt docs/FAQ
	mv FAQ.txt docs

.c.o:
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE) -o $@ -c $<

install:
	install --mode 755 --strip taper $(BINDIR) 
	install --mode 755 --strip bg_backup $(BINDIR)
	install --mode 755 --strip bg_restore $(BINDIR)
	install --mode 644 docs/taper.8 $(MANDIR)
	ln -sf $(BINDIR)/taper $(ALTBIN)/taper
	ln -sf $(BINDIR)/bg_backup $(ALTBIN)/bg_backup
	ln -sf $(BINDIR)/bg_restore $(ALTBIN)/bg_restore

uninstall:
	rm -rf	$(BINDIR)/taper \
		$(BINDIR)/bg_backup \
		$(BINDIR)/bg_restore \
		$(MANDIR)/taper.8 \
		$(MANDIR)/taper.8.gz \
		$(ALTBIN)/taper \
		$(ALTBIN)/bg_backup \
		$(ALTBIN)/bg_restore


clean:
	rm -rf core *.o *.flc taper taper-static .depend *~ taper.8 version.h  \
	       bg_backup bg_restore $(COMMON_LIB) \
		docs/taper-* docs/taper.html \
		docs/FAQ-* docs/FAQ.html \
		docs/*~ docs/FAQ.txt \
		docs/taper.txt docs/taper.8 \
		docs/taper.sgml 
	make -C $(COMPRESS_DIR) clean
	make -C $(DOCS_DIR) clean


.depend:
	make depend

depend:
	$(GCC) -M $(INCLUDE) $(TAPER_SRCS) $(BG_BACKUP_SRCS) \
	     $(BG_RESTORE_SRCS) $(COMMON_SRCS) > .depend
	make -C $(COMPRESS_DIR) depend


dep: depend

ifeq (.depend, $(wildcard .depend))
include .depend
endif
#
#
#--for making distributions only --------------------------------------
#
docs/INSTALL:docs/INSTALL.raw version
	sed -e "s/NEEDS_LATEST_VERSION/$(LATEST_VERSION)/" \
	    -e "s/NEEDS_LATEST_DATE/$(LATEST_DATE)/" docs/INSTALL.raw > docs/INSTALL

docs/Taper.sgml:docs/Taper.sgml.raw version
	sed -e "s/NEEDS_LATEST_VERSION/$(LATEST_VERSION)/" \
	    -e	"s/NEEDS_EMAIL_ADDRESS/$(EMAIL_ADDRESS)/" \
	    -e	"s/NEEDS_WEB_ADDRESS/$(WEB_ADDRESS)/" \
	    -e "s/NEEDS_LATEST_DATE/$(LATEST_DATE)/" docs/Taper.sgml.raw > docs/Taper.sgml 

docs/taper-$(LATEST_VERSION).lsm:docs/taper.lsm.raw version
	sed -e "s/NEEDS_LATEST_VERSION/$(LATEST_VERSION)/" \
	    -e	"s/NEEDS_EMAIL_ADDRESS/$(EMAIL_ADDRESS)/" \
	    -e	"s/NEEDS_WEB_ADDRESS/$(WEB_ADDRESS)/" \
            -e "s/NEEDS_LATEST_DATE/$(LATEST_DATE)/" docs/taper.lsm.raw > docs/taper-$(LATEST_VERSION).lsm

docs/CHANGES.html:docs/CHANGES.html.raw version
	sed -e	"s/NEEDS_LATEST_VERSION/$(LATEST_VERSION)/" \
	    -e	"s/NEEDS_LATEST_DATE/$(LATEST_DATE)/" \
	    -e	"s/NEEDS_LATEST_HTML/$(LATEST_HTML)/" \
	    -e	"s/NEEDS_STABLE_VERSION/$(STABLE_VERSION)/" \
	    -e	"s/NEEDS_STABLE_DATE/$(STABLE_DATE)/" \
	    -e	"s/NEEDS_EMAIL_ADDRESS/$(EMAIL_ADDRESS)/" \
	    -e	"s/NEEDS_WEB_ADDRESS/$(WEB_ADDRESS)/" \
	    -e	"s/NEEDS_STABLE_HTML/$(STABLE_HTML)/" docs/CHANGES.html.raw > docs/CHANGES.html

docs/FAQ.sgml:docs/FAQ.sgml.raw version
	sed -e	"s/NEEDS_LATEST_VERSION/$(LATEST_VERSION)/" \
	    -e	"s/NEEDS_LATEST_DATE/$(LATEST_DATE)/" \
	    -e	"s/NEEDS_LATEST_HTML/$(LATEST_HTML)/" \
	    -e	"s/NEEDS_STABLE_VERSION/$(STABLE_VERSION)/" \
	    -e	"s/NEEDS_STABLE_DATE/$(STABLE_DATE)/" \
	    -e	"s/NEEDS_EMAIL_ADDRESS/$(EMAIL_ADDRESS)/" \
	    -e	"s/NEEDS_WEB_ADDRESS/$(WEB_ADDRESS)/" \
	    -e	"s/NEEDS_STABLE_HTML/$(STABLE_HTML)/" docs/FAQ.sgml.raw > docs/FAQ.sgml

non-dist/index.html:non-dist/index.html.raw version
	sed -e	"s/NEEDS_LATEST_VERSION/$(LATEST_VERSION)/" \
	    -e	"s/NEEDS_LATEST_DATE/$(LATEST_DATE)/" \
	    -e	"s/NEEDS_LATEST_HTML/$(LATEST_HTML)/" \
	    -e	"s/NEEDS_LATEST_DIFFS/$(LATEST_DIFFS)/" \
	    -e	"s/NEEDS_STABLE_VERSION/$(STABLE_VERSION)/" \
	    -e	"s/NEEDS_STABLE_DATE/$(STABLE_DATE)/" \
	    -e	"s/NEEDS_STABLE_DIFFS/$(STABLE_DIFFS)/" \
	    -e	"s/NEEDS_EMAIL_ADDRESS/$(EMAIL_ADDRESS)/" \
	    -e	"s/NEEDS_WEB_ADDRESS/$(WEB_ADDRESS)/" \
	    -e	"s/NEEDS_STABLE_HTML/$(STABLE_HTML)/" non-dist/index.html.raw > non-dist/index.html

web:
	make docs/Taper.sgml
	make docs/FAQ.sgml
	make docs/CHANGES.html
	make non-dist/index.html
	mkdir -p /home/yusuf/web-page
	rm -rf /home/yusuf/web-page/*
	cp -a non-dist/* /home/yusuf/web-page
	cp docs/ver* /home/yusuf/web-page
	cp docs/CHANGES.html /home/yusuf/web-page
	cp docs/FAQ.sgml /home/yusuf/web-page
	cp docs/Taper.sgml /home/yusuf/web-page
	cp docs/Makefile /home/yusuf/web-page
	make -C /home/yusuf/web-page

doc-make:
#move the raw files away
	cp docs/INSTALL.raw ../INSTALL.raw
	cp docs/Taper.sgml.raw ../Taper.sgml.raw
	cp docs/taper.lsm.raw ../taper.lsm.raw
	cp docs/CHANGES.html.raw ../CHANGES.html.raw
	cp docs/FAQ.sgml.raw ../FAQ.sgml.raw
	mv non-dist ../
#make the files with correct dates/version
	make docs/INSTALL
	make docs/Taper.sgml
	make docs/FAQ.sgml
	make docs/taper-$(LATEST_VERSION).lsm
	make docs/CHANGES.html
#for those that don't have the linuxdoc package
	make docs/Taper.txt
	make docs/FAQ.txt
#remove excess files from distribution
	rm -f ttt docs/INSTALL.raw docs/Taper.sgml.raw docs/taper.lsm.raw docs/CHANGES.html.raw docs/FAQ.sgml.raw
	cd docs; ln -s Taper.sgml Taper.sgml.raw; ln -s FAQ.sgml FAQ.sgml.raw

doc-restore:	
#remove the corrected files
	rm docs/INSTALL
	rm docs/Taper.sgml
	rm docs/Taper.sgml.raw			# was the link
	rm docs/FAQ.sgml
	rm docs/FAQ.sgml.raw
	rm docs/taper-$(LATEST_VERSION).lsm
	rm docs/CHANGES.html
#bring back this for the next version
#bring back my raw files
	mv ../INSTALL.raw docs/INSTALL.raw
	mv ../Taper.sgml.raw docs/Taper.sgml.raw
	mv ../taper.lsm.raw docs/taper.lsm.raw
	mv ../CHANGES.html.raw docs/CHANGES.html.raw
	mv ../FAQ.sgml.raw docs/FAQ.sgml.raw
	mv ../non-dist ./

distrib:
	make clean
	make doc-make
#change to production makefile
	sed     -e "s/DEVELOPMENT = TRUE/DEVELOPMENT = FALSE/" \
		Makefile.common > mc
	cp mc Makefile.common
	rm mc
#make tar archive
	ln -s /home/yusuf/taper /home/yusuf/taper-$(LATEST_VERSION)
	cd .. ; tar czf taper-$(LATEST_VERSION).tar.gz taper-$(LATEST_VERSION)/*
	rm /home/yusuf/taper-$(LATEST_VERSION)
	cp docs/*.lsm ../
	make doc-restore
#back to development makefile
	sed 	-e "s/DEVELOPMENT = FALSE/DEVELOPMENT = TRUE/" \
		Makefile.common > mc
	cp mc Makefile.common
	rm mc

diffs:
	tar xzf ../taper-$(LATEST_VERSION).tar.gz
	tar xzf ../taper-$(LATEST_PREVIOUS).tar.gz
	-diff --recursive -u -N taper-$(LATEST_PREVIOUS) taper-$(LATEST_VERSION) > ../taper-$(LATEST_DIFFS)-diffs
	gzip ../taper-$(LATEST_DIFFS)-diffs
	rm -r taper-$(LATEST_VERSION)
	rm -r taper-$(LATEST_PREVIOUS)
	tar xzf ../taper-$(STABLE_VERSION).tar.gz
	tar xzf ../taper-$(STABLE_PREVIOUS).tar.gz
	-diff --recursive -u -N taper-$(STABLE_PREVIOUS) taper-$(STABLE_VERSION) > ../taper-$(STABLE_DIFFS)-diffs
	gzip ../taper-$(STABLE_DIFFS)-diffs
	rm -r taper-$(STABLE_VERSION)
	rm -r taper-$(STABLE_PREVIOUS)

static-bins:
	make taper-static
	make doc-make
	strip taper
	strip bg_backup
	strip bg_restore
	tar czf /home/yusuf/taper-$(LATEST_VERSION)-static.tar.gz taper bg_restore bg_backup docs/
	make doc-restore

backup:
	@echo "Have you committed?  (CTRL-C if you haven't)"
	@sleep 5
	mount /drivea
	tar czf /drivea/taper.cvs.tar.gz ~/cvs/taper/*
	umount /drivea

