# Copyright, (c) 1993 Stephen F. White

# STRCASE:	Use this if you already have strcasecmp().  Otherwise
#		the cool_strcasecmp will be used.
# HERROR:	Use this if you have herror().
# PROTO:	If you want to include the system prototypes in sys_proto.h,
#		use this.  Mostly useful in conjunction with -Wall, but
#		be warned that the prototypes in sys_proto.h may not be
#		portable.
# DEBUG_MALLOC: Use a debugging malloc() function.  Adds significant
#		overhead and should be disabled in a production MUD.
# LOG_YO:	This will cause every YO message sent and received to be
#		written to the log.  High volume; don't use this in
#		a production MUD.
# INLINE:	This will enable inlining on just about everything it's
#		possible to inline, at the cost of a larger executable.
#		Whether this is actually faster will depend largely on
#		your CPU and OS.

# Step 1:  Chose some of the above options.

OPTIONS = -DSTRCASE

# Step 2:  Choose a compiler.  Your compiler *must* be ANSI.

# Uncomment this for gcc use
CC = gcc

# Uncomment this for mips cc use
# CC = cc
# DEFINES = -Dconst=

# Step 3:  Choose a place for the binaries

BINDIR = ../bin

# Step 4:  Choose a compiler compiler

# if you want to use bison instead of yacc, uncomment this:
# YACC = bison -y

# Step 5:  System-dependent settings

# Most BSD-ish systems should compile fine right out of the box.

# Some BSD systems need this:
# LIBS = -lresolv

# Solaris 2.x
# DEFINES = -DSYSV
# LIBS = -lsocket -lnsl

# Linux
# DEFINES = -Dlinux
# LIBS = -ldbm

# If you want to go mad with warnings, use these:
# WARNINGS = -DPROTO -Wall -Wshadow -Wwrite-strings -Wmissing-prototypes

# if your dbm libraries give you problems, add -fpcc-struct-return

# You shouldn't need to set anything beyond this point.

##########################################################################

CFLAGS = -g $(OPTIONS) $(DEFINES) $(WARNINGS)
YFLAGS = -d

SRCS =	cool.y perms.c error.c code.c symbol.c utils.c decode.c \
	list.c var.c verb.c method.c \
	execute.c opcode.c opcodes1.c opcodes2.c opcodes3.c builtins.c \
	servers.c dispatch.c message.c storage.c \
	dbsize.c dbpack.c dbunpack.c \
	hash.c string.c buf.c \
	netio.c playerio.c serverio.c \
	cache.c dbmchunk.c hash.c

OBJS =	cool.o perms.o error.o code.o symbol.o utils.o decode.o \
	list.o var.o verb.o method.o compile.o \
	execute.o opcode.o opcodes1.o opcodes2.o opcodes3.o builtins.o \
	servers.o dispatch.o message.o storage.o \
	dbsize.o dbpack.o dbunpack.o \
	hash.o string.o buf.o \
	cache.o dbmchunk.o

NETIO = netio.o playerio.o serverio.o

$(BINDIR)/cm: $(OBJS) $(NETIO)
	$(CC) $(CFLAGS) $(OBJS) $(NETIO) $(LIBS) -o $(BINDIR)/cm
x.tab.h: y.tab.h
	-cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.h
depend:
	makedepend -- $(CFLAGS) -- $(SRCS)
clean:
	rm -f $(OBJS) $(NETIO) compile.o [xy].tab.[ch] ../bin/core

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

cool.o: config.h cool.h proto.h sys_proto.h code.h execute.h servers.h
perms.o: config.h cool.h proto.h
error.o: config.h cool.h proto.h sys_proto.h
code.o: config.h cool.h proto.h sys_proto.h code.h
symbol.o: string.h config.h cool.h proto.h sys_proto.h
utils.o: config.h cool.h proto.h sys_proto.h
decode.o: config.h cool.h proto.h sys_proto.h x.tab.h execute.h
list.o: config.h cool.h proto.h sys_proto.h
var.o: string.h config.h cool.h proto.h sys_proto.h servers.h
verb.o: config.h cool.h proto.h sys_proto.h
method.o: config.h cool.h proto.h
execute.o: config.h cool.h proto.h sys_proto.h netio.h execute.h servers.h
opcode.o: config.h cool.h proto.h sys_proto.h execute.h x.tab.h
opcodes1.o: config.h cool.h proto.h sys_proto.h netio.h execute.h x.tab.h
opcodes2.o: config.h cool.h proto.h sys_proto.h servers.h netio.h execute.h
opcodes3.o: config.h cool.h proto.h sys_proto.h servers.h netio.h execute.h
builtins.o: config.h cool.h proto.h sys_proto.h execute.h netio.h x.tab.h
servers.o: string.h config.h cool.h proto.h sys_proto.h
servers.o: socket_proto.h buf.h netio.h servers.h servers_private.h
dispatch.o: string.h config.h
dispatch.o: cool.h proto.h sys_proto.h netio.h execute.h
message.o: config.h cool.h proto.h sys_proto.h netio.h servers.h execute.h
storage.o: config.h cool.h proto.h sys_proto.h netio.h servers.h
dbsize.o: config.h cool.h proto.h sys_proto.h
dbpack.o: config.h cool.h proto.h sys_proto.h
dbunpack.o: config.h cool.h proto.h sys_proto.h
string.o: string.h config.h cool.h proto.h sys_proto.h servers.h
buf.o: config.h string.h buf.h netio.h
netio.o: config.h string.h
netio.o: netio.h buf.h netio_private.h sys_proto.h socket_proto.h servers.h
playerio.o: config.h sys_proto.h string.h netio.h buf.h
playerio.o: netio_private.h servers.h
serverio.o: config.h string.h netio.h buf.h netio_private.h servers_private.h
serverio.o: servers.h sys_proto.h socket_proto.h
cache.o: db_config.h config.h cool.h proto.h sys_proto.h netio.h db_setup.h
dbmchunk.o: db_config.h config.h cool.h proto.h sys_proto.h netio.h db_setup.h