##
# version: [$Id: Makefile,v 5.29 1994/08/24 01:24:07 hitman Exp $]
# updates: All updates are handled by RCS 
# Author: The Hitman 1994	
#

# Installation and baseline information
include src/sys_config

#----------edit-above-this-line---------------------------------
PROGS = bbs_script menu_edit

all: $(PROGS)

# Install the program and go from there.
install: install_database $(PROGS)
	@if [ -d $(DIR) ]; then \
		echo "$(DIR): Exists..." ; \
	else \
		echo "$(DIR): Making..." ; \
		mkdir -p $(DIR) ; \
	fi
	@for DIRECT in `awk -F: '{ print $$1 }' install_database` ; \
	do \
		if [ -d $(DIR)/$$DIRECT ]; then \
			echo -n "$(DIR)/$$DIRECT: Exists..." ; \
		else \
			echo -n "$(DIR)/$$DIRECT: Making..." ; \
			mkdir $(DIR)/$$DIRECT ; \
		fi ; \
		echo "Updating Data Files..." ; \
		CUR_DIR=`pwd`; \
		cd $$CUR_DIR/$$DIRECT ; \
				for FILE in `grep $$DIRECT $$CUR_DIR/install_database | awk -F: '{ print $$2 }'`; \
				do \
					if [ -f $$FILE ]; then \
						cp -Rf $$FILE $(DIR)/$$DIRECT/ ; \
					else \
						if [ -d RCS ]; then \
							co -q RCS/$$FILE,v ; \
							cp -Rf $$FILE $(DIR)/$$DIRECT/ ; \
							rm -f $$FILE ; \
						fi ; \
					fi ; \
				done ; \
		cd $$CUR_DIR ; \
	done
	@echo -n "Coping the Programs..."
	@for FILE in `ls $(PROGS) main.dat` ; \
	do \
		if [ -f $$FILE ]; then \
				if [ -f $(DIR)/$$FILE ]; then \
					echo -n "(replaced) " ; \
					rm -f $(DIR)/$$FILE ; \
					cp -f $$FILE $(DIR)/ ; \
				else \
					echo -n "(new) " ; \
					cp -f $$FILE $(DIR)/ ; \
				fi ; \
			echo -n "$$FILE, " ; \
		fi ; \
	done
	@echo "...DONE!"
	@echo "Setting Up Permissions..."
	@sh -c "cd $(DIR) ; \
		chmod 444 main.dat ; \
		chmod 555 $(PROGS) ; \
		$(NROFF) README.bbs > README.bbs-$(BASELINE) ; \
		mv bbs--src.lsm bbs-$(BASELINE)-src.lsm ; \
		rm -f README.bbs ; \
		chmod 555 utils/*"
	@echo "Install Complete -------------------"

.baseline:
		@echo "Creating new baseline file..." ; \
		@echo "$(BASELINE)" > .baseline 

baseline: .baseline install_database
	@if [ -f .baseline ]; then \
		OLD_BASELINE=`cat .baseline` ; \
		OLD_BASELINE_P1=`echo $$OLD_BASELINE | awk -F. '{ print $$1 }'` ; \
		OLD_BASELINE_P2=`echo $$OLD_BASELINE | awk -F. '{ print $$2 }'` ; \
		NEW_BASELINE_P1=`echo $(BASELINE) | awk -F. '{ print $$1 }'` ; \
		NEW_BASELINE_P2=`echo $(BASELINE) | awk -F. '{ print $$2 }'` ; \
		if [ $$OLD_BASELINE_P1 -gt $$NEW_BASELINE_P1 ]; then \
			echo "This baseline has already been done!" ; \
			exit 1 ; \
		fi ; \
		if [ $$OLD_BASELINE_P1 = $$NEW_BASELINE_P1 ]; then \
				if [ $$OLD_BASELINE_P2 -ge $$NEW_BASELINE_P2 ]; then \
					echo "This baseline has already been done!" ; \
					exit 1 ; \
				fi ;\
		fi ; \
	else \
		echo "Creating new baseline file..." ; \
		echo "$(BASELINE)" > .baseline ; \
	fi
	@echo "Upgrading to Baseline $(BASELINE)..."
	@for DIRECT in `awk -F: '{ print $$1 }' install_database` ; \
	do \
		if [ -d $$DIRECT ]; then \
			echo -n "Going into $$DIRECT..." ; \
		else \
			echo "error: Directory $$DIRECT is Missing!" ; \
			exit 1; \
		fi ; \
		echo -n "Updating Data Files: " ; \
		cd $$DIRECT ; \
		FILES=`grep $$DIRECT ../install_database | awk -F: '{ print $$2 }'` ; \
		for THINGS in $$FILES ; \
		do \
			for CODEF in `ls RCS/$$THINGS* | awk -F, '{ print $$1 }' | awk -F/ '{ print $$2 }'` ; \
			do \
				echo -n "$$CODEF, " ; \
				co $$CODEF 2> /dev/null  ; \
				rcs -l -e $$CODEF 2> /dev/null ; \
				echo $(BASELINE_NOTE) | ci -f$(BASELINE) $$CODEF 2> /dev/null ; \
			done ; \
		done ; \
		echo "<done>" ; \
		cd .. ; \
	done
	FILES=*.c *.h Makefile ver install_database
	for THINGS in $$FILES ; \
	do \
		for CODEF in `ls RCS/$$THINGS* | awk -F, '{ print $$1 }' | awk -F/ '{ print $$2 }'` ; \
		do \
				echo -n "$$CODEF, " ; \
				co $$CODEF 2> /dev/null  ; \
				rcs -l -e $$CODEF 2> /dev/null ; \
				echo $(BASELINE_NOTE) | ci -f$(BASELINE) $$CODEF 2> /dev/null ; \
			done ; \
		done ; \
		echo "<done>" ; \
		cd .. ; \
	done
	@echo "Creating new baseline file..."
	@echo "$(BASELINE)" > .baseline

depends:
	@cd src ; cp /dev/null .depends ; make depends

bbs_script: 
	@cd src ; make bbs_script ; cd ..
	@cp src/bbs_script .

menu_edit:
	@cd src ; make menu_edit ; cd ..
	@cp src/menu_edit .

clean:
	@rm -f $(PROGS)
	@cd src ; make clean ; cd ..
