swfote2.1/.slog/
swfote2.1/backup/u/
swfote2.1/bin/cygwin/
swfote2.1/building/
swfote2.1/doc/mudprogs/
swfote2.1/gods/
swfote2.1/html/profiles/
swfote2.1/player/
swfote2.1/player/u/
CC      = gcc
PROF    =
NOCRYPT =

#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

#Uncomment if using CYGWIN to compile with
#CYGWIN_FLAG = -DCYGWIN

#Some systems need this for dynamic linking to work.
EXPORT_SYMBOLS = -export-dynamic

C_FLAGS = -g2 -Wall $(EXPORT_SYMBOLS) $(CYGWIN_FLAG) $(PROF) $(NOCRYPT) $(DBUGFLG) $(EXPORT_SYMBOLS)
L_FLAGS = $(PROF) $(EXPORT_SYMBOLS) $(CYGWIN_FLAG) $(NEED_DL) -lz -g2

#Comment out to disable cargo
USECARGO = 1

ifdef USECARGO
   C_FLAGS := $(C_FLAGS) -DUSECARGO
endif


C_FILES =  11.c      act_comm.c     act_info.c    act_move.c    act_obj.c    act_wiz.c      boards.c \
       bounty.c         build.c      changes.c       clans.c      color.c       comm.c    comments.c \
        const.c            db.c       editor.c       fight.c      finfo.c      force.c     fskills.c \
    functions.c       handler.c      hashstr.c      hunter.c     interp.c      magic.c    makeobjs.c \
     marriage.c           md5.c         misc.c    mud_comm.c   mud_prog.c   newarena.c      pfiles.c \
      planets.c        player.c     renumber.c       reset.c       save.c      ships.c       shops.c \
       skills.c          slay.c      slicers.c       slotm.c      space.c    special.c    swskills.c \
       tables.c          tech.c        track.c      update.c


O_FILES := $(patsubst %.c,o/%.o,$(C_FILES))

H_FILES = $(wildcard *.h) 

ifdef CYGWIN_FLAG
    SWR = swr.exe
    COPYFILE = ../bin/cygwin/copyfile
else
   SWR = swr
endif

SWR_OLD = ../bin/swr_old.exe

all:
	$(MAKE) -s swr

swr  : $(O_FILES)
	rm -f $(SWR)

ifdef CYGWIN_FLAG
	dlltool --export-all --output-def ../bin/cygwin/swr.def $(O_FILES)
	dlltool --dllname $(SWR) --output-exp ../bin/cygwin/swr.exp --def ../bin/cygwin/swr.def
	$(CC) -o $(SWR) $(O_FILES) ../bin/cygwin/swr.exp $(L_FLAGS)
else
	$(CC) -o $(SWR) $(O_FILES) $(L_FLAGS) -lm -lcrypt
endif

	echo "                   ";
	echo "Done compiling mud.";
	chmod g+w $(SWR)
	chmod a+x $(SWR)
	chmod g+w $(O_FILES)
ifdef CYGWIN_FLAG
	./$(COPYFILE)
endif
	mv $(SWR) ../bin

clean:
ifdef CYGWIN_FLAG
	rm -f o/*.o ../bin/other/swr.def ../bin/cygwin/swr.exp
	chmod g+w $(COPYFILE)
	chmod a+x $(COPYFILE)
	./$(COPYFILE)
#        $(MAKE) all
else
	rm -f o/*.o $(SWR_OLD) ../bin/$(SWR) ../bin/${SWR}.exe ../bin/win/swr.def ../bin/cygwin/swr.exp
#        $(MAKE) all
endif


purge:
ifdef CYGWIN_FLAG
	rm -f o/*.o ../bin/cygwin/swr.def ../bin/cygwin/swr.exp
else
	rm -f o/*.o $(SWR_OLD) $(SWR) ../bin/cygwin/swr.def ../bin/cygwin/swr.exp
endif


o/%.o: %.c
#       echo "  Compiling $@....";
	echo " $@";
	$(CC) -c $(C_FLAGS) $< -o $@

.c.o: mud.h
	$(CC) -c $(C_FLAGS) $<