
# MALLOCINCS = -DINCLUDE_MALLOC_H -I/usr/sww/include/dbmalloc
# MALLOCLIBS = /usr/sww/lib/libdbmalloc.a

DEFINES = -DKEEP_ALLOCATED_MEMORY
INCLUDES = -I.. -I../include $(MALLOCINCS)

CC = gcc
CDEBUGFLAGS=-g -O6 -Wall -Wtraditional -Wshadow -Wpointer-arith -Wcast-qual \
	-Wwrite-strings -Wconversion -Wstrict-prototypes -Wmissing-prototypes \
	-Wnested-externs # -Wcast-align
# CDEBUGFLAGS = -O2

CFLAGS = $(CDEBUGFLAGS) $(DEFINES) $(INCLUDES)
LIBS = -L../lib -lgeppetto $(MALLOCLIBS) -lm

DEPEND = makedepend

SRCS = ldaddr.c sim.c siminstr.c opdata.c
OBJS = ldaddr.o sim.o siminstr.o opdata.o

APPS = corewar
DEBUG = corewardebug

MV = mv

all: $(APPS)

corewar: corewar.o $(OBJS) ../lib/libgeppetto.a
	$(CC) -o corewar $(CFLAGS) corewar.o $(OBJS) $(LIBS)

corewardebug: corewar.c $(OBJS) ../lib/libgeppetto.a
	$(CC) -o corewardebug $(CFLAGS) -DDEBUG_COREWAR corewar.c \
		$(OBJS) $(LIBS)

../lib/libgeppetto.a:
	(cd ../lib; make CC="$(CC)" CFLAGS="$(CFLAGS)" libgeppetto.a)

clean:
	rm -f a.out core $(APPS) corewar.o $(DEBUG) $(OBJS) Makefile.bak *~

# this 'depend' ignores system include files to increase Makefile portability
#
depend::
	$(DEPEND) -s "# DO NOT DELETE" -- $(DEFINES) $(INCLUDES) -- $(SRCS)
	sed -e '/# DO NOT DELETE/,$$ s/ \/[a-zA-Z0-9./]*//g' -e '/\.o:$$/d' \
		< Makefile > Makefile.new && mv -f Makefile.new Makefile

###########################################################################
# dependencies generated by makedepend
#
# DO NOT DELETE
