case $CONFIG in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; elif test -f ../../config.sh; then TOP=../..; elif test -f ../../../config.sh; then TOP=../../..; elif test -f ../../../../config.sh; then TOP=../../../..; else echo "Can't find config.sh."; exit 1 fi . $TOP/config.sh ;; esac : This forces SH files to create target in same directory as SH file. : This is so that make depend always knows where to find SH derivatives. case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac echo "Extracting Makefile (with variable substitutions)" if test "x$OSTYPE" = "xmsys"; then INSTALL_LINKS="$lns ../src/netmud.exe netmush" else INSTALL_LINKS="$lns ../src/netmud netmush; \ $lns ../src/info_slave info_slave" fi : This section of the file will have variable substitutions done on it. : Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!. : Protect any dollar signs and backticks that you do not want interpreted : by putting a backslash in front. You may delete these comments. $spitshell >Makefile <<!GROK!THIS! # Makefile for PennMUSH # - System configuration - # # # This section of the file should be automatically configured by # the Configure script. If it doesn't work, you might try starting # from the Makefile.old that's included instead, and reporting # your problem (including this Makefile) to Paul/Javelin, # dunemush@pennmush.org # # If you want to profile the code, add -pg -a -DPROFILING to CCFLAGS # and (probably) remove -O # $make_set_make CC=$cc CCFLAGS=$optimize -I.. -I../hdrs $ccflags $warnings LDFLAGS=$ldflags CLIBS=$libs $cryptlib $libssl $libmysqlclient INSTALL=$install INSTALLDIR=$installdir CP=$cp CHMOD=$chmod INSTALL_LINKS=$INSTALL_LINKS !GROK!THIS! : In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' # stupid SYS V shell SHELL=/bin/sh # Where to install with 'make globalinstall' GLOBAL_INSTALL=/usr/libexec/pennmush all: config.h options.h autogen game/mush.cnf @echo "Making all in src." (cd src; make all "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" "MAKE=$(MAKE)" \ "MAKEFLAGS=$(MAKEFLAGS)") @echo "If the make was successful, use 'make install' to install links." config.h: Configure @echo "Looks like your Configure has been updated." @echo "Run that first." exit 1 options.h: options.h.dist @echo "Please use 'make update' to update your options.h file from options.h.dist" @echo "You must cp options.h.dist to options.h and edit it." exit 1 autogen: hdrs/cmds.h hdrs/funs.h hdrs/switches.h hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c src/sql.c Patchlevel (cd utils; sh mkcmds.sh commands) hdrs/switches.h: src/SWITCHES Patchlevel (cd utils; sh mkcmds.sh switches) src/switchinc.c: src/SWITCHES Patchlevel (cd utils; sh mkcmds.sh switches) hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c src/sql.c Patchlevel (cd utils; sh mkcmds.sh functions) hdrs/patches.h: patches/* (cd utils; sh mkcmds.sh patches) install: localized all -rm -f game/netmush -rm -f game/info_slave (cd game; $(INSTALL_LINKS)) (cd game/txt; make) @echo "If you plan to run multiple MUSHes, consider running 'make customize'" netmud: (cd src; make netmud "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" ) access: utils/make_access_cnf.sh game pennmush.pot: (cd src; make ../po/pennmush.pot) localized: -echo "Localizing for your locale..." -(cd po; make localized) portmsg: (cd src; make portmsg "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" ) announce: (cd src; make announce "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" ) versions: CHANGES* -@rm -rf CHANGES*~ CHANGES*bak @utils/mkvershlp.pl game/txt/hlp CHANGES* safety: $(CP) src/*.c /var/pennmush-bak/src $(CP) hdrs/*.h /var/pennmush-bak/hdrs $(CP) * /var/pennmush-bak distdepend: hdrs/funs.h hdrs/cmds.h (cd src; make depend "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" ) local-files: $(CP) -f src/cmdlocal.dst src/cmdlocal.c $(CP) -f src/flaglocal.dst src/flaglocal.c $(CP) -f src/funlocal.dst src/funlocal.c $(CP) -f src/local.dst src/local.c # REQUIRES GNU INDENT! DON'T INDENT WITH ANYTHING ELSE! indent: @(cd src; make indent) protoize: (cd src; make protoize "CCFLAGS=$(CCFLAGS)") !NO!SUBS! : This section of the file will have variable substitutions done on it. : Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!. : Protect any dollar signs and backticks that you do not want interpreted : by putting a backslash in front. You may delete these comments. $spitshell >>Makefile <<!GROK!THIS! customize: update-conf -@$perl utils/customize.pl # The default place to find the runtime files is in this directory, # but it can be overridden with env variables so people can use # other game directories. GAMEDIR=game update-conf: game/mushcnf.dst game/aliascnf.dst game/restrictcnf.dst game/namescnf.dst -@$touch game/mushcnf.dst -@$perl utils/update-cnf.pl \$(GAMEDIR)/mush.cnf game/mushcnf.dst -@$touch game/aliascnf.dst -@$perl utils/update-cnf.pl \$(GAMEDIR)/alias.cnf game/aliascnf.dst -@$touch game/restrictcnf.dst -@$perl utils/update-cnf.pl \$(GAMEDIR)/restrict.cnf game/restrictcnf.dst -@if [ ! -f \$(GAMEDIR)/names.cnf ]; then \$(CP) game/namescnf.dst \$(GAMEDIR)/names.cnf; fi \$(GAMEDIR)/alias.cnf: game/aliascnf.dst -@$touch game/aliascnf.dst -@$perl utils/update-cnf.pl \$(GAMEDIR)/alias.cnf game/aliascnf.dst \$(GAMEDIR)/restrict.cnf: game/restrictcnf.dst -@$touch game/restrictcnf.dst -@$perl utils/update-cnf.pl \$(GAMEDIR)/restrict.cnf game/restrictcnf.dst \$(GAMEDIR)/names.cnf: game/namescnf.dst if [ ! -f game/names.cnf ]; then \ \$(CP) game/namescnf.dst \$(GAMEDIR)/names.cnf \ fi \$(GAMEDIR)/mush.cnf: game/mushcnf.dst -@$touch game/mushcnf.dst -@$perl utils/update-cnf.pl \$(GAMEDIR)/mush.cnf game/mushcnf.dst update: update-hdr update-conf update-hdr: -@$touch options.h.dist -@$perl utils/update.pl options.h options.h.dist test: netmud (cd test; $perl alltests.pl) !GROK!THIS! : In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' clean: (cd src; make clean) (cd game; rm -f netmush info_slave) distclean: (cd src; make distclean) (cd hdrs; rm -f *.orig *~ \#* *.rej *.bak funs.h cmds.h) (cd utils; rm -f *.orig *~ \#* *.rej *.bak) (cd game; rm -rf *.log netmush info_slave *.orig *.rej *~ *.bak mush.cnf) (cd os2; rm -rf *.rej *.orig *~ *.bak) (cd game/txt; make clean) totallyclean: distclean (cd hdrs; rm -rf *.rej) (cd src; rm -rf *.rej) -rm -f Makefile distci: distclean ci-src ci-game ci-src: -(yes . | ci -l -f -N$(NAME) FAQ* BUGS COPY* CHANGE* READ* MANIFEST \ Configure utils/* Makefile.SH Patchlevel config_h.SH confmagic.h \ *.dist src/Makefile src/SWITCHES src/*.c src/*.dst \ hdrs/* hints/* os2/*) ci-game: -(yes . | ci -l -f -N$(NAME) game/restart game/mushcnf.dst \ game/access.README \ game/txt/* game/txt/nws/* game/txt/evt/* game/txt/hlp/* ) diffs: @make indent > /dev/null 2>&1 @make versions > /dev/null 2>&1 @make touchswitches > /dev/null 2>&1 @make autogen > /dev/null 2>&1 @(prcs diff -r$(VS) -N pennmush `cat MANIFEST` | grep -v 'Index:') checkin: versions autogen @prcs checkin patch: versions @make-patch-header @make diffs etags: (cd src; make etags) ctags: (cd src; make ctags) dist.tar.Z: distclean dist.tar compress /tmp/dist.tar dist.tar.gz: distclean dist.tar gzip /tmp/dist.tar touchswitches: @touch src/SWITCHES dist.tar: indent distclean versions touchswitches autogen makedist -c pennmush tar -cvf /tmp/dist.tar pennmush -pgp -sb /tmp/dist.tar -rm -rf pennmush CSRImalloc.tar.Z: (cd src/CSRI; make clean) (tar -cvFFf /tmp/CSRImalloc.tar `cat exclude.tar`) compress /tmp/CSRImalloc.tar globalinstall: install (cd game/txt; make clean compose.sh) $(INSTALLDIR) $(GLOBAL_INSTALL) $(CP) -R game/* $(GLOBAL_INSTALL) rm -f $(GLOBAL_INSTALL)/netmush $(GLOBAL_INSTALL)/info_slave $(INSTALL) config.sh $(GLOBAL_INSTALL)/config.sh $(INSTALL) src/netmud $(GLOBAL_INSTALL)/netmush $(INSTALL) src/info_slave utils/ln-dir.sh $(GLOBAL_INSTALL) $(CHMOD) a+rX -R $(GLOBAL_INSTALL) @echo "** Files installed in $(GLOBAL_INSTALL). Feel free to move them." @echo "** You can run $(GLOBAL_INSTALL)/ln-dir.sh to create a user directory," @echo "** or symlink that to somewhere easier to run. You may wish to strip them." !NO!SUBS! chmod 644 Makefile