1stMud/CVS/
1stMud/area/CVS/
1stMud/backup/CVS/
1stMud/bin/
1stMud/bin/CVS/
1stMud/bin/extras/
1stMud/bin/extras/CVS/
1stMud/data/CVS/
1stMud/data/i3/CVS/
1stMud/doc/1stMud/
1stMud/doc/1stMud/CVS/
1stMud/doc/CVS/
1stMud/doc/Diku/
1stMud/doc/Diku/CVS/
1stMud/doc/MPDocs/CVS/
1stMud/doc/Merc/CVS/
1stMud/doc/Rom/
1stMud/doc/Rom/CVS/
1stMud/log/CVS/
1stMud/notes/
1stMud/notes/CVS/
1stMud/player/CVS/
1stMud/player/backup/CVS/
1stMud/player/deleted/CVS/
1stMud/src/CVS/
1stMud/src/config/CVS/
1stMud/src/h/CVS/
1stMud/src/o/CVS/
1stMud/win/CVS/
@SET_MAKE@
MAKEDEP  = @MAKEDEP_PROG@
INDENT	 = @INDENT_PROG@
TOUCH	 = @TOUCH_PROG@
CTAGS	 = @CTAGS_PROG@
LINT	 = @LINT_PROG@
CVS	 = @CVS_PROG@
INSTALL  = @INSTALL@
CYGWIN   = @CYGWIN_ENV@
MINGW	 = @MINGW32_ENV@
PACKAGE  = @PACKAGE_STRING@
CC       = @CXX@
PROF     = @CXXFLAGS@
WARN     = -Wall -Werror
LIBS     = @LIBS@
VPATH    = @srcdir@
CONFIG	 = @srcdir@/config
H_DIR	 = @srcdir@/h
O_DIR    = @srcdir@/o
BIN	 = ../bin
DATA	 = ../data

D_FLAGS = @DEFS@ ${DIRFLAGS}
C_FLAGS = ${WARN} ${PROF} ${D_FLAGS} -I${H_DIR}
L_FLAGS = ${PROF} ${LIBS}

C_FILES   := ${wildcard *.c}
O_FILES   := ${patsubst %.c, ${O_DIR}/%.o, ${C_FILES}}
H_FILES	  := ${wildcard ${H_DIR}/*.h}
SRCS	  := ${C_FILES} ${H_FILES}

ifdef CYGWIN
	EXE    = @PACKAGE_NAME@.exe
	CYGEXE = @PACKAGE_NAME@.new.exe
else
	EXE    = @PACKAGE_NAME@
endif

default:
	@echo "Options: all, install, ${EXE}, clean, touch, indent, tags, lint, backup, resetconfig, and cvsupdate."

.PHONY: all
all: checkdepend checkfiles ${EXE}

${EXE}: ${sort ${O_FILES}}
	@rm -f ${EXE}
	@${CC} -o ${EXE} ${O_FILES} ${L_FLAGS}
ifdef CYGWIN
	@cp -f ${EXE} ${CYGEXE}
endif
	@echo "Done ${PACKAGE} build."

.PHONY: install
install: all
	@rm -f ${BIN}/${EXE}
	@${INSTALL} ${EXE} ${BIN}
ifdef CYGWIN
	@${INSTALL} ${EXE} ${BIN}/${CYGEXE}
# Installs the cygwin1.dll to windows directory.
	@../win/install.bat cygwin
endif
	@echo "Done ${PACKAGE} install."

${O_DIR}/%.o: %.c
	@echo "`date +"%X"` : Compiling $<..."
	@${CC} -c ${C_FLAGS} -o $@ $<

%.header: %.h
	@mv -f $< ${H_DIR}

.PHONY: checkdepend
checkdepend:
	@if [ -z "`cat .depend`" ]; then ${MAKE} depend; fi

.PHONY: checkfiles
checkfiles: checkdirs ${patsubst %.h, %.header, ${wildcard *.h}}

.PHONY: checkdirs
checkdirs: 
	@if [ ! -d ${H_DIR} ]; then mkdir ${H_DIR}; fi
	@if [ ! -d ${O_DIR} ]; then mkdir ${O_DIR}; fi

.PHONY: clean
clean:
	@rm -f *.o *.orig *.rej *~ ${O_DIR}/*.* ${H_DIR}/*~ ${H_DIR}/*.orig ${H_DIR}/*.rej \
	${CONFIG}/*~ ${EXE}* tags
ifdef CYGWIN
	@rm -f ${CYGEXE}
endif
	@echo "Done cleaning ${PACKAGE}."

.PHONY: touch
touch:
	@if [ "${TOUCH}" != "error" ]; then \
		${TOUCH} ${SRCS}; \
		echo "Done touching ${PACKAGE} files."; \
	else \
		echo "No touch command found."; \
	fi

.PHONY: indent
indent:
	@if [ "${INDENT}" != "error" ]; then \
		${INDENT} ${SRCS}; \
		echo "Done formating ${PACKAGE} files."; \
	else \
		echo "No indent program found."; \
	fi

# After tag file is created, you can use vi -t {tag}
# to edit a file at a specific c-type tag.
.PHONY: tags
tags:
	@if [ "${CTAGS}" != "error" ]; then \
		${CTAGS} ${SRCS}; \
		echo "${PACKAGE} tag file created."; \
	else \
		echo "No tags program found."; \
	fi

.PHONY: lint
lint:
	@if [ "${LINT}" != "error" ]; then \
		${LINT} ${SRCS}; \
		echo "${PACKAGE} source files linted."; \
	else \
		echo "No lint program found."; \
	fi

.PHONY: backup
backup:
	@${BIN}/backup clean
	@${BIN}/backup all

.PHONY: resetconfig
resetconfig: indent clean
	@rm -f ${CONFIG}/config.cache
	@rm -f ${CONFIG}/config.log
	@rm -f ${CONFIG}/config.status
	@rm -rf ${CONFIG}/autom4te.cache
	@rm -f ${CONFIG}/stamp-h*
	@rm -f ${H_DIR}/config.h
	@rm -f Makefile
	@cp -f ${CONFIG}/Makefile.orig Makefile
	@rm -f .depend
	@rm -f ${BIN}/${EXE}
ifdef CYGWIN
	@rm -f ${BIN}/${CYGEXE}
endif
	@rm -f ${BIN}/${EXE}.pid
	@rm -f ${DATA}/shutdown.txt
	@rm -f ${DATA}/plr_index.dat
	@rm -f ${DATA}/i3/*.hist ${DATA}/i3/i3.mudlist ${DATA}/i3/i3.chanlist
	@rm -f ../log/*.log
	@echo "${PACKAGE} configuration reset."

.PHONY: cvsupdate
cvsupdate:
	@if [ "${CVS}" != "error" ]; then \
	if [ -d CVS ]; then \
		${CVS} update; \
	else \
		@echo "No Cvs info found! Try using cvs checkout first."; \
	fi \
	fi

.PHONY: depend
depend: 
	@if [ "${MAKEDEP}" = "makedepend" ]; then \
		${MAKEDEP} -DDEPEND -p${O_DIR}/ -f- -- ${C_FLAGS} -- ${SRCS} > .depend; \
	else if [ "${MAKEDEP}" = "mkdep" ]; then \
		${MAKEDEP} -p ${C_FLAGS} ${SRCS}; \
	else \
		${CC} -E -MM -DDEPEND ${SRCS} -Ih | sed 's/\(.*\)\.o:/${O_DIR}\/\1.o:/g' > .depend; \
	fi \
	fi
	@echo "${PACKAGE} dependencies made."

.PHONY: prepare
prepare: checkfiles touch depend tags

@CONFIG_DEPEND@

include .depend