CC = g++ #PROF = -p #Uncomment to compile in Cygwin CYGWIN = -DCYGWIN #Uncomment the line below if you are getting undefined references to dlsym, dlopen, and dlclose. #Comment it out if you get errors about ldl not being found. NEED_DL = -ldl #Some systems need this for dynamic linking to work. EXPORT_SYMBOLS = -export-dynamic # Uncomment the two lines below if compiling on a Solaris box #SOLARIS_FLAG = -Dsun -DSYSV #SOLARIS_LINK = -lnsl -lsocket #IMC2 - Comment out to disable IMC2 support IMC = 1 # Comment out if it complains about it WSTRINGS = -Wwrite-strings W_FLAGS = -Wall -Werror -Wshadow -Wformat-security -Wpointer-arith -Wcast-align -Wredundant-decls $(WSTRINGS) C_FLAGS = -g2 -O $(W_FLAGS) $(SOLARIS_FLAG) $(PROF) $(EXPORT_SYMBOLS) L_FLAGS = $(PROF) $(SOLARIS_LINK) -lz $(NEED_DL) C_FILES = act_comm.c act_info.c act_move.c act_obj.c act_wiz.c areas.c \ ban.c bank.c boards.c bti.c build.c \ channels.c clans.c classes.c color.c comm.c commands.c const.c \ db.c deity.c \ exp.c \ fight.c fish.c friends.c \ grub.c \ handler.c hashstr.c helps.c highscore.c hint.c host.c hotboot.c \ interp.c \ lockers.c \ magic.c makeobjs.c mapout.c mccp.c misc.c mpxset.c mud_comm.c mud_prog.c mwresets.c \ news.c \ player.c polymorph.c \ quest.c \ races.c reserved.c reset.c \ save.c sha256.c shops.c skills.c socials.c special.c storages.c sudoku.c sysdata.c \ tables.c timeinfo.c track.c transfer.c \ update.c ifdef IMC C_FILES := imc.c $(C_FILES) C_FLAGS := $(C_FLAGS) -DIMC -DIMCSMAUG endif O_FILES := $(patsubst %.c,o/%.o,$(C_FILES)) H_FILES = $(wildcard h/*.h) all: $(MAKE) -s lop SPEC = specials/ ifdef CYGWIN LOP = LOP.exe LDEF = $(SPEC)LOP.def LEXP = $(SPEC)LOP.exp else LOP = LOP endif DEP = $(SPEC)dependencies.d # pull in dependency info for *existing* .o files -include $(DEP) dependency: echo "Generating dependency file..."; $(CC) -MM $(C_FLAGS) $(C_FILES) > $(DEP) perl -pi -e 's.^([a-z]).o/$$1.g' $(DEP) lop: $(O_FILES) rm -f ../$(LOP) ifdef CYGWIN dlltool --export-all --output-def $(LDEF) $(O_FILES) dlltool --dllname $(LOP) --output-exp $(LEXP) --def $(LDEF) $(CC) -o $(LOP) $(O_FILES) $(LEXP) $(L_FLAGS) else $(CC) -export-dynamic -o $(LOP) $(O_FILES) $(L_FLAGS) endif $(MAKE) -s dependency echo "Done compiling mud."; chmod g+w $(LOP) chmod a+x $(LOP) mv $(LOP) ../$(LOP) chmod g+w $(O_FILES) purge: rm -f o/*.o ../$(LOP) *~ $(DEP) touch $(DEP) clean: $(MAKE) -s purge $(MAKE) -s lop indent: indent -ts3 -nut -nsaf -nsai -nsaw -npcs -npsl -ncs -nbc -bls -prs -bap -cbi0 -cli3 -bli0 -l125 -lp -i3 -cdb -c1 -cd1 -sc -pmt $(C_FILES) indent -ts3 -nut -nsaf -nsai -nsaw -npcs -npsl -ncs -nbc -bls -prs -bap -cbi0 -cli3 -bli0 -l125 -lp -i3 -cdb -c1 -cd1 -sc -pmt $(H_FILES) indentclean: rm *.c~ *h/.h~ o/%.o: %.c echo " Compiling $@...."; $(CC) -c $(C_FLAGS) $< -o $@ .c.o: h/mud.h $(CC) -c $(C_FLAGS) $<