#!/bin/make -f
# Makefile for tinymage
#

# Whatever compiler you user, it **MUST** be able to grok ANSI C.
# Generic systems using GCC:
#
# CC= gcc
# OPTIM= -g -W -Wreturn-type -Wunused -Wcomment -ansi

# IBM RT C compiler:
#
# CC= cc
# OPTIM=

# Dec 3100 C compiler and other MIPS machines
#
CC= cc
OPTIM= -g -Dconst=

# for RCS only
GET= co
CLEAN= rcsclean

MV= -mv -f
RM= -rm -f
ROOT= ..
MAKE= make
LINT= lint
MKTAGS= etags
MKDEPEND= makedepend
INCLUDE= ${ROOT}/include
SRC_PREFIX=
CFLAGS= ${OPTIM} -I${INCLUDE}

# Destination for binaries
DEST=${ROOT}/game

##########################################################################
#            You should not have to change anything below here           #
##########################################################################

MISCSRC= Makefile ChangeLog COPYING mkversion.sh

CSRC= boolexp.c case.c compile.c compress.c create.c db.c disassem.c edit.c \
	game.c hashtab.c help.c inst.c interp.c log.c look.c match.c move.c \
	player.c predicates.c property.c rob.c set.c speech.c stringutil.c \
	unparse.c utils.c wiz.c fifoq.c wild.c wait_cmd.c func.c flags.c \
	muck_strftime.c

LSRC= copyright.c
MSRC= interface3.c conc.c decompress.c sanity.c interface.c

SRC= ${MISCSRC} ${CSRC} ${LSRC} ${MSRC}

COBJ= boolexp.o case.o compile.o compress.o create.o db.o disassem.o edit.o \
	game.o hashtab.o help.o inst.o interp.o log.o look.o match.o move.o \
	player.o predicates.o property.o rob.o set.o speech.o stringutil.o \
	unparse.o utils.o wiz.o fifoq.o wild.o wait_cmd.o func.o flags.o \
	muck_strftime.o

LOBJ= copyright.o
MOBJ= interface3.o conc.o decompress.o sanity.o interface.o

OBJ= ${COBJ} ${LOBJ} ${MOBJ}
TARGETS= netmage decompress

.c.o:
	${CC} ${CFLAGS} -c $*.c

all:	${TARGETS}

netmage:	${P} ${COBJ} interface.o ${LOBJ} mkversion.sh
	sh mkversion.sh
	${CC} ${CFLAGS} -c version.c
	${MV} netmage netmage~
	${CC} ${CFLAGS} -o netmage ${COBJ} interface.o version.o ${LOBJ}

sanity: ${P} sanity.o utils.o db.o compress.o log.o ${LOBJ}
	${RM} sanity
	${CC} ${CFLAGS} -o sanity sanity.o utils.o db.o compress.o \
		log.o ${LOBJ}

concentrate: conc.o
	${MV} concentrate concentrate~
	${CC} ${CFLAGS} -o concentrate conc.o

decompress: decompress.o compress.o ${LOBJ}
	${RM} decompress
	${CC} ${CFLAGS} -o decompress decompress.o compress.o ${LOBJ}

saber_src:
	#load ${CFLAGS} ${CSRC}

saber_obj: ${CSRC} interface.o
	#load ${OBJ} interface.o

TAGS: ${CSRC} ${MSRC}
	${MKTAGS} ${CSRC} ${MSRC}

lint:	${CSRC} ${MSRC}
	${LINT} ${LINTFLAGS} ${CSRC} ${MSRC}

${SRC}:
	${GET} $@

sources: ${SRC}

names:
	@for i in ${SRC}; do echo ${SRC_PREFIX}$$i; done

depend:
	${MKDEPEND} -- ${CFLAGS} -- ${CSRC} ${MSRC} ${LSRC}
	echo chmod -w Makefile
	chmod -w Makefile

clean:
	${RM} ${OBJ} core version.o

clobber:
	${RM} ${OBJ} core version.o
	${RM} ${TARGETS} tags *~ *.bak *.orig

nuke:
	${RM} ${OBJ} core version.o
	${RM} ${TARGETS} tags *~ *.bak *.orig
	-${CLEAN} *
	-${GET} Makefile

install: all
	cp netmage ../game
	cp decompress ../game


# DO NOT DELETE THIS LINE -- make depend depends on it.