# $Id: Makefile,v 1.15 1996/06/05 13:35:31 skip Exp $
#
CFLAGS = -I../include $(FLAGS)

INSTALLDIR = /usr/kernel/drv
BININSTALLDIR = /opt/skip
CERTDIR = /etc/cert
OBJ = skipmod.o queue.o interface.o com.o #skip.o
LIB = ../lib/libskip_kernel.a
BINARIES = skipd skip_stat skip_dump #skip_attach skip_detach skip_addkey
SKIPDCONF = skipd.conf
SKIPDCONFDIR = ../skipd
MOD = skip
CONF = $(MOD).conf
RC = skip
RCDIR = init.d


#### RCS settings
 
COFLAGS = -q -M
RCSCLEAN = rcsclean

autoconfig:	
	@cd .. && $(MAKE) $@

all:	$(MOD)

$(MOD):	$(OBJ) $(LIB)
	$(LD) -r -o $(MOD) $(OBJ) $(LIB)

$(RCDIR)/$(RC):
	cd $(RCDIR) && $(MAKE) $(RC)

$(SKIPDCONFDIR)/$(SKIPDCONF):
	cd $(SKIPDCONFDIR) && $(MAKE) $(SKIPDCONF)

install: $(RC) $(CONF) ../skipd/$(SKIPDCONF)
	-mkdir -p $(BININSTALLDIR)
	-mkdir -p -m 0755 $(CERTDIR)
	-mkdir -p -m 0700 $(CERTDIR)/secret
	-mkdir -p -m 0755 $(CERTDIR)/public
	-mkdir -p -m 0755 $(CERTDIR)/cache
	install -s -c $(BININSTALLDIR) -m 644 -u root -g sys Makefile
	install -s -c $(INSTALLDIR) -m 755 -u root -g sys $(MOD)
	install -s -c $(INSTALLDIR) -m 644 -u root -g sys $(CONF)
	install -s -c /etc/init.d -m 744 -u root -g sys $(RCDIR)/$(RC)
	install -s -c /etc -m 600 -u root -g sys $(SKIPDCONFDIR)/$(SKIPDCONF)
	for i in $(BINARIES); do \
	  install -s -c $(BININSTALLDIR) -m 700 -u root -g sys ../skipd/$$i; \
	done
	install -s -c $(BININSTALLDIR) -m 700 -u root -g sys skip_attach;
	install -s -c $(BININSTALLDIR) -m 700 -u root -g sys skip_detach;
	install -s -c $(BININSTALLDIR) -m 700 -u root -g sys ../cert/cert_gen;
#	install -s -c $(BININSTALLDIR) -m 755 -u root -g sys ../cert/suncert/sun2en;
#	install -s -c $(BININSTALLDIR) -m 755 -u root -g sys ../cert/suncert/gencert;
#	install -s -c $(BININSTALLDIR) -m 755 -u root -g sys ../cert/suncert/tcpconnex;
	add_drv -m '* 0600 root root' $(MOD)
	ln /etc/init.d/skip /etc/rc2.d/S01skip
	ln /etc/init.d/skip /etc/rc2.d/K01skip
	sync; sync
	$(MAKE) key

uninstall:
	-rem_drv $(MOD)
	-rm -f $(INSTALLDIR)/$(MOD)
	-rm -f $(INSTALLDIR)/$(CONF)
	-rm -f /etc/$(RCDIR)/$(RC) /etc/$(SKIPDCONF) /etc/rc2.d/???skip
	-for i in $(BINARIES); do rm -f $(BININSTALLDIR)/$$i; done
	-rm -f /dev/$(MOD) '/devices/pseudo/clone@0:skip'
	-rm -f $(BININSTALLDIR)/Makefile
	-rm -f $(BININSTALLDIR)/skip_attach
	-rm -f $(BININSTALLDIR)/skip_detach
	-rm -f $(BININSTALLDIR)/sun2en
	-rm -f $(BININSTALLDIR)/gencert
	-rm -f $(BININSTALLDIR)/tcpconnex
	-rm -f $(BININSTALLDIR)/cert_gen
	sync; sync

key:	
#	cd $(BININSTALLDIR) && ./gencert
	cd $(BININSTALLDIR) && ./cert_gen

load:	
	modload skip; modinfo | grep skip #> BASIS

unload:	
	modunload -i `modinfo | grep skip | awk '{ print $$1 }'` 

boot:
	ln /etc/init.d/skip /etc/rc2.d/S01skip
	ln /etc/init.d/skip /etc/rc2.d/K01skip

unboot:
	rm /etc/rc2.d/?01skip

clean checkout rcsclean::
	cd init.d && $(MAKE) $@

clean::	
	-rm -f *.o $(MOD) Makefile.bak .depend testmod
	[ ! -w Makefile ] || { sed -e '/^# Do not delete, dependencies are assumed below this line/q' >.Makefile Makefile; mv .Makefile Makefile ;}

checkout::
	-$(CO) $(COFLAGS) $(REVISION) RCS/* < /dev/null

rcsclean::
	$(RCSCLEAN)

.PHONY: autoconfig all load unload boot unboot install uninstall clean

# Do not delete, dependencies are assumed below this line
