#
#	SCCSID	@(#)Install	1.21 85/09/04
#
#
#	Copyright (c) 1984 Piers Lauder, University of Sydney
#
#	Warning: Distribution of this software without written
#		 permission is prohibited.
#
#	This is a makefile to install the network.
#
#	It must be used via "Makefile" with the flags:-
#	"directories"	to create the directories
#	"special"	to create the data files
#	"install"	to install the binaries
#
#	It has been extracted from "Makefile" to cater for
#	small 16-bit m/cs which can't handle large makefiles.
#
INSTALLED	= \
		$(INSBIN)/$(CON) \
		$(INSBIN)/$(FETCH) \
		$(INSBIN)/$(FILEGETTER) \
		$(INSBIN)/$(QUEUE) \
		$(INSBIN)/$(SEND) \
		$(INSBIN)/$(STATEP) \
		$(INSBIN)/$(STOP) \
		$(INSBIN)/linkstats \
		$(INSLIB)/ACSnet_VMS \
		$(INSLIB)/NNcall \
		$(INSLIB)/ENdaemon \
		$(INSLIB)/CNdaemon \
		$(INSLIB)/NNdaemon \
		$(INSLIB)/NN2shell \
		$(INSLIB)/NNshell \
		$(INSLIB)/badhandler \
		$(INSLIB)/changestate \
		$(INSLIB)/filer \
		$(INSLIB)/fileserver \
		$(INSLIB)/handlers \
		$(INSLIB)/mailer \
		$(INSLIB)/printer \
		$(INSLIB)/purge \
		$(INSLIB)/receiver \
		$(INSLIB)/reporter \
		$(INSLIB)/request \
		$(INSLIB)/rundaemon \
		$(INSLIB)/stater \
		$(INSLIB)/VMS_script

ACCSTATS	= $(STATSDIR)/Accumulated
COMMANDSFILE	= $(INSLIB)/commandsfile
STATEFILE	= $(INSLIB)/statefile
ROUTEFILE	= $(INSLIB)/routefile
STATSFILE	= $(INSLIB)/statsfile
NODENAMEFILE	= $(INSLIB)/nodename

DIRECTORIES	= \
		$(SPOOLDIR) \
		$(BADDIR) \
		$(FILESDIR) \
		$(INSLIB) \
		$(REROUTEDIR) \
		$(STATEDIR) \
		$(STATSDIR) \
		$(TMPDIR) \
		$(TRACEDIR) \
		$(WORKDIR) \
		$(WORK2DIR)

LOCKINGFILES	= \
		$(ACCSTATS) \
		$(ROUTEFILE) \
		$(STATEFILE) \
		$(STATSFILE)	# Leave this out if you don't want statistics

SPECIALFILES	= \
		$(NODENAMEFILE)

install:	$(INSTALLED)

$(INSLIB)/ACSnet_VMS:	$(BIN)/ACSnet_VMS $(FRC)
		@-if [ '$(VMS_NET)x' != x ] ; then set -x ; \
			$(CP) $(BIN)/ACSnet_VMS $(INSLIB)/ACSnet_VMS ; \
			$(STRIP) $(INSLIB)/ACSnet_VMS ; \
			$(CHOWN) $(ACSNETNAME) $(INSLIB)/ACSnet_VMS ; \
			$(CHMOD) $(CHMODMODE),go= $(INSLIB)/ACSnet_VMS ; \
		fi

$(INSLIB)/ENdaemon:	$(BIN)/ENdaemon $(FRC)
		-$(MV) $(INSLIB)/ENdaemon $(INSLIB)/OLDENdaemon
		$(CP) $(BIN)/ENdaemon $(INSLIB)/ENdaemon
		$(STRIP) $(INSLIB)/ENdaemon
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/ENdaemon
		$(CHMOD) $(CHMODMODE),go=,u-t $(INSLIB)/ENdaemon

$(INSLIB)/CNdaemon:	$(BIN)/CNdaemon $(FRC)
		-$(MV) $(INSLIB)/CNdaemon $(INSLIB)/OLDCNdaemon
		$(RM) $(INSLIB)/NN2daemon
		$(CP) $(BIN)/CNdaemon $(INSLIB)/CNdaemon
		$(STRIP) $(INSLIB)/CNdaemon
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/CNdaemon
		$(CHMOD) $(CHMODMODE),go=,u-t $(INSLIB)/CNdaemon
		$(LN) $(INSLIB)/CNdaemon $(INSLIB)/NN2daemon

$(INSLIB)/NNdaemon:	$(BIN)/NNdaemon $(FRC)
		-$(MV) $(INSLIB)/NNdaemon $(INSLIB)/OLDNNdaemon
		$(CP) $(BIN)/NNdaemon $(INSLIB)/NNdaemon
		$(STRIP) $(INSLIB)/NNdaemon
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/NNdaemon
		$(CHMOD) $(CHMODMODE),go=,u-t $(INSLIB)/NNdaemon

$(INSLIB)/NNcall:	$(BIN)/NNcall $(FRC)
		-$(MV) $(INSLIB)/NNcall $(INSLIB)/OLDNNcall
		$(CP) $(BIN)/NNcall $(INSLIB)/NNcall
		$(STRIP) $(INSLIB)/NNcall
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/NNcall
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/NNcall

$(INSLIB)/NNshell $(INSLIB)/NN2shell:	$(BIN)/NNshell $(FRC)
		-$(MV) $(INSLIB)/NNshell $(INSLIB)/OLDNNshell
		$(CP) $(BIN)/NNshell $(INSLIB)/NNshell
		$(STRIP) $(INSLIB)/NNshell
		$(CHOWN) root $(INSLIB)/NNshell
		$(CHMOD) $(CHMODSUMODE),go=x,u-t $(INSLIB)/NNshell
		$(RM) $(INSLIB)/NN2shell
		$(LN) $(INSLIB)/NNshell $(INSLIB)/NN2shell

$(INSLIB)/badhandler:	$(BIN)/badhandler $(FRC)
		$(CP) $(BIN)/badhandler $(INSLIB)/badhandler
		$(STRIP) $(INSLIB)/badhandler
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/badhandler
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/badhandler

$(INSLIB)/changestate:	$(BIN)/changestate $(FRC)
		$(CP) $(BIN)/changestate $(INSLIB)/changestate
		$(STRIP) $(INSLIB)/changestate
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/changestate
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/changestate

$(INSLIB)/filer:	$(BIN)/filer $(FRC)
		$(CP) $(BIN)/filer $(INSLIB)/filer
		$(STRIP) $(INSLIB)/filer
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/filer
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/filer

$(INSLIB)/fileserver:	$(BIN)/fileserver $(FRC)
		$(CP) $(BIN)/fileserver $(INSLIB)/fileserver
		$(STRIP) $(INSLIB)/fileserver
		$(CHOWN) root $(INSLIB)/fileserver
		$(CHMOD) $(CHMODSUMODE),go=x $(INSLIB)/fileserver

$(INSLIB)/handlers:	$(BIN)/handlers $(FRC)
		$(CP) $(BIN)/handlers $(INSLIB)/handlers
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/handlers
		$(CHMOD) $(CHMODMODE),go=r,u-tx $(INSLIB)/handlers

$(INSLIB)/mailer:	$(BIN)/mailer $(FRC)
		$(CP) $(BIN)/mailer $(INSLIB)/mailer
		$(STRIP) $(INSLIB)/mailer
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/mailer
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/mailer

$(INSLIB)/printer:	$(BIN)/printer $(FRC)
		$(CP) $(BIN)/printer $(INSLIB)/printer
		$(STRIP) $(INSLIB)/printer
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/printer
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/printer

$(INSLIB)/purge:	$(BIN)/purge $(FRC)
		$(CP) $(BIN)/purge $(INSLIB)/purge
		$(STRIP) $(INSLIB)/purge
		$(CHMOD) $(CHMODMODE),go=,u-t $(INSLIB)/purge

$(INSLIB)/receiver:	$(BIN)/receiver $(FRC)
		-$(MV) $(INSLIB)/receiver $(INSLIB)/OLDreceiver
		$(CP) $(BIN)/receiver $(INSLIB)/receiver
		$(STRIP) $(INSLIB)/receiver
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/receiver
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/receiver
		$(RM) $(INSLIB)/router
		$(LN) $(INSLIB)/receiver $(INSLIB)/router

$(INSLIB)/reporter:	$(BIN)/reporter $(FRC)
		$(CP) $(BIN)/reporter $(INSLIB)/reporter
		$(STRIP) $(INSLIB)/reporter
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/reporter
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/reporter

$(INSLIB)/request:	$(BIN)/request $(FRC)
		$(CP) $(BIN)/request $(INSLIB)/request
		$(STRIP) $(INSLIB)/request
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/request
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/request

$(INSLIB)/rundaemon:	$(BIN)/rundaemon $(FRC)
		-$(MV) $(INSLIB)/rundaemon $(INSLIB)/OLDrundaemon
		$(CP) $(BIN)/rundaemon $(INSLIB)/rundaemon
		$(STRIP) $(INSLIB)/rundaemon
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/rundaemon
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/rundaemon

$(INSLIB)/stater:	$(BIN)/stater $(FRC)
		$(CP) $(BIN)/stater $(INSLIB)/stater
		$(STRIP) $(INSLIB)/stater
		$(CHOWN) $(ACSNETNAME) $(INSLIB)/stater
		$(CHMOD) $(CHMODMODE),go= $(INSLIB)/stater

$(INSLIB)/VMS_script:	$(BIN)/VMS_script $(FRC)
		@-if [ '$(VMS_NET)x' != x ] ; then set -x ; \
			grep -v '^[ 	]*#[^!]' $(BIN)/VMS_script >$(INSLIB)/VMS_script ; \
			$(CHOWN) $(ACSNETNAME) $(INSLIB)/VMS_script ; \
			$(CHMOD) u=rwx,go= $(INSLIB)/VMS_script ; \
		fi

$(INSBIN)/$(FETCH):	$(BIN)/fetch $(FRC)
		$(CP) $(BIN)/fetch $(INSBIN)/$(FETCH)
		$(STRIP) $(INSBIN)/$(FETCH)
		$(CHOWN) $(ACSNETNAME) $(INSBIN)/$(FETCH)
		$(CHMOD) $(CHMODMODE),go=x $(INSBIN)/$(FETCH)

$(INSBIN)/$(FILEGETTER):	$(BIN)/getfile $(FRC)
		$(CP) $(BIN)/getfile $(INSBIN)/$(FILEGETTER)
		$(STRIP) $(INSBIN)/$(FILEGETTER)
		$(CHOWN) root $(INSBIN)/$(FILEGETTER)
		$(CHMOD) $(CHMODSUMODE),go=x $(INSBIN)/$(FILEGETTER)

$(INSBIN)/linkstats:	$(BIN)/linkstats $(FRC)
		-$(MV) $(INSBIN)/linkstats $(INSBIN)/OLDlinkstats
		$(CP) $(BIN)/linkstats $(INSBIN)/linkstats
		$(STRIP) $(INSBIN)/linkstats
		$(CHOWN) $(ACSNETNAME) $(INSBIN)/linkstats
		$(CHMOD) $(CHMODSUMODE),go=x $(INSBIN)/linkstats

$(INSBIN)/$(QUEUE):	$(BIN)/queue $(FRC)
		$(CP) $(BIN)/queue $(INSBIN)/$(QUEUE)
		$(STRIP) $(INSBIN)/$(QUEUE)
		$(CHOWN) $(ACSNETNAME) $(INSBIN)/$(QUEUE)
		$(CHMOD) $(CHMODSUMODE),go=x $(INSBIN)/$(QUEUE)

$(INSBIN)/$(CON):	$(BIN)/con $(FRC)
		@-if [ '$(CON)x' != x ] ; then set -x ; \
			$(MV) $(INSBIN)/con $(INSBIN)/OLD$(CON) ; \
			$(CP) $(BIN)/con $(INSBIN)/$(CON) ; \
			$(STRIP) $(INSBIN)/$(CON) ; \
			$(CHOWN) root $(INSBIN)/$(CON) ; \
			$(CHMOD) $(CHMODSUMODE),go=x $(INSBIN)/$(CON) ; \
		fi

$(INSBIN)/$(SEND):	$(BIN)/send $(FRC)
		-$(MV) $(INSBIN)/$(SEND) $(INSBIN)/OLD$(SEND)
		$(CP) $(BIN)/send $(INSBIN)/$(SEND)
		$(STRIP) $(INSBIN)/$(SEND)
		$(CHOWN) root $(INSBIN)/$(SEND)
		$(CHMOD) $(CHMODSUMODE),go=x $(INSBIN)/$(SEND)

$(INSBIN)/$(STATEP):	$(BIN)/state $(FRC)
		$(CP) $(BIN)/state $(INSBIN)/$(STATEP)
		$(STRIP) $(INSBIN)/$(STATEP)
		$(CHOWN) $(ACSNETNAME) $(INSBIN)/$(STATEP)
		$(CHMOD) $(CHMODMODE),go=x $(INSBIN)/$(STATEP)

$(INSBIN)/$(STOP):	$(BIN)/stop $(FRC)
		$(CP) $(BIN)/stop $(INSBIN)/$(STOP)
		$(STRIP) $(INSBIN)/$(STOP)
		$(CHOWN) $(ACSNETNAME) $(INSBIN)/$(STOP)
		$(CHMOD) $(CHMODSUMODE),go=x $(INSBIN)/$(STOP)

directories:	$(DIRECTORIES)

$(DIRECTORIES):
		@-for dir in $(DIRECTORIES); \
		do \
			if [ ! -d $$dir ] ; \
			then \
				mkdir $$dir; \
				$(CHOWN) $(ACSNETNAME) $$dir; \
				if [ $$dir = $(TMPDIR) ] ; \
				then \
					$(CHMOD) u=rwx,go=wx $$dir; \
				else \
					$(CHMOD) u=rwx,go=rx $$dir; \
				fi; \
				ls -ld $$dir; \
			fi; \
		done

special:	$(LOCKINGFILES) $(SPECIALFILES)

$(LOCKINGFILES):
		@-for file in $(LOCKINGFILES); \
		do \
			if [ ! -r $$file ] ; \
			then \
				$(MKLOCK) $$file $(MKLOCKTYPE); \
				$(CHOWN) $(ACSNETNAME) $$file; \
				$(CHMOD) u=rw,go=r $$file; \
				ls -l $$file; \
			fi; \
		done

$(SPECIALFILES):
		@-for file in $(SPECIALFILES); \
		do \
			if [ ! -r $$file ] ; \
			then \
				if [ $$file = $(NODENAMEFILE) ] ; \
				then \
					echo $(NODE) >$$file; \
					$(CHMOD) 444 $$file; \
				else \
					$(CP) /dev/null $$file; \
					$(CHMOD) 644 $$file; \
				fi; \
				$(CHOWN) $(ACSNETNAME) $$file; \
				ls -l $$file; \
			fi; \
		done
