# # Makefile for LPMOO # DRIVER = dgd/bin/driver DGD_CF = etc/dgd.cf MOO_DB = etc/moo.db DGD_DB = etc/dgd.db DGD_LOG = mudlib/etc/dgd.log DGD_PID = etc/dgd.pid DNS_LOG = etc/dns.log DNS_PID = etc/dns.pid DGD = dgd-1.0.9.23.tar RGX = rgx-0.3.tar NET = net-5.tar NETDIFF = src/net-1.0.9.22.cdiff RGXDIFF = src/rgx-1.0.9.10.cdiff install :: @echo "Please carefully read the instructions in the ./INSTALL file." prepare :: .prepare @echo "** Preparations completed **" net :: .net @echo "** Networking package installed **" space :: $(DGD).gz $(RGX).gz $(NET).gz $(DGD).gz: gzip $(DGD) $(RGX).gz: gzip $(RGX) $(NET).gz: gzip $(NET) $(DGD) $(RGX) $(NET): gunzip $@.gz dgd: $(DGD) rm -rf dgd tar xf $(DGD) touch dgd dgd-rgx: $(RGX) dgd rm -rf dgd-rgx tar xf $(RGX) touch dgd-rgx dgd-net: $(NET) rm -rf dgd-net tar xf $(NET) touch dgd-net .prepare: dgd dgd-rgx cp src/lpc.Makefile dgd/src/lpc/Makefile cp src/lpc.list dgd/src/lpc/list ln -s ../README ../Copyright ../Credits ../src/Changelog dgd/doc/. ln -s ../../dgd-rgx/src/rgx.c ../../dgd-rgx/src/rgx.h dgd/src/. ln -s ../../dgd-rgx/src/regex dgd/src/regex patch -p0 -s < $(RGXDIFF) sed -e '/^directory/s!"[^"]*"!"'$$PWD'/mudlib"!' \ < etc/dgd.cf > etc/dgd.cf.new mv etc/dgd.cf.new etc/dgd.cf sed -e '/^timezone/s!"[^"]*"!"'`/bin/date | cut -c21-23`'"!' \ < etc/moo.cf > etc/moo.cf.new mv etc/moo.cf.new etc/moo.cf @touch .prepare .net: dgd-net patch -p0 -s < $(NETDIFF) patch -p0 -s < src/lpmoo-net.cdiff rm -f dgd/src/comp/a.out sed -e '/^outbound_net/s/NO/YES/' < etc/moo.cf > etc/moo.cf.new mv etc/moo.cf.new etc/moo.cf @touch .net bootstrap :: $(DRIVER) $(db) clean @if [ "x$(db)" = "x" ]; then \ echo "Need \`db=filename' argument"; \ else \ echo "Bootstrapping with MOO database $(db)"; \ if [ `expr '$(db)' : '^/'` = 1 ]; then \ rm -f $(MOO_DB) && ln -s $(db) $(MOO_DB); \ else \ rm -f $(MOO_DB) && ln -s ../$(db) $(MOO_DB); \ fi; \ $(DRIVER) $(DGD_CF); \ fi clean :: @echo "Cleaning tmp files" @rm -f tmp/* mudlib/tmp/* mudlib/verb/* @echo "Removing DGD process ID file" @rm -f $(DGD_PID) run :: $(DRIVER) $(DGD_DB) @if [ -r $(DGD_PID) ]; then \ echo "DGD is already running? Try \`make kill' or \`make clean'"; \ else \ echo "Starting DGD with last state dump"; \ if [ -f $(DGD_LOG) ]; then \ mv $(DGD_LOG) $(DGD_LOG).old; \ fi; \ $(DRIVER) $(DGD_CF) $(DGD_DB) 1>$(DGD_LOG) 2>&1 & \ echo $$! > $(DGD_PID); \ fi kill :: @if [ ! -r $(DGD_PID) ]; then \ echo "No DGD process to kill"; \ else \ echo "Killing DGD process"; \ kill `cat $(DGD_PID)`; \ rm -f $(DGD_PID); \ fi dns :: bin/dnsbot @eval `sed -n -e '/=.*;/s/[ ]*=[ ]*/=/p' < etc/dns.cf` && \ save=`umask` && umask 077 && \ echo "$$login_command" >tmp/dns.in && umask $$save && \ bin/dnsbot "$$host" "$$port" <tmp/dns.in 1>$(DNS_LOG) 2>&1 & \ echo $$! >$(DNS_PID) @echo "DNS daemon started" bin/dnsbot: src/dnsbot.c $(CC) src/dnsbot.c -o bin/dnsbot dns.pl :: src/dnsbot.pl @perl src/dnsbot.pl </dev/null 1>$(DNS_LOG) 2>&1 & echo $$! >$(DNS_PID) @echo "Perl DNS daemon started"