# ColdMUD driver
#
## Defaults:
#
# YACC    = yacc
# YFLAGS  = -d
# CC      = gcc
# CFLAGS  = -Wall -ggdb3
# LDFLAGS = -ggdb3

#@@BINDIR@
#@@VERSION@
#@@YACC@
YFLAGS=-d
#@@CC@
#@@CFLAGS@
#@@LDFLAGS@
#@@LIBS@

EXE = ColdX-$(VERSION)

OBJS =	grammar.o sysop.o arithop.o buffer.o bufferop.o cache.o \
        codegen.o data.o dataop.o db.o dbpack.o decode.o dict.o dictop.o \
        dump.o errorop.o execute.o ident.o io.o ioop.o list.o listop.o \
        lookup.o log.o main.o match.o memory.o methodop.o miscop.o net.o \
        object.o objectop.o opcodes.o sig.o string.o stringop.o syntaxop.o \
	token.o util.o regexp.o

SRCS = `echo $(OBJS) | sed -e 's/\.o/.c/g'`

all: $(EXE)

# Keep this around until I figure a clean way to put it in configure
checker:
	$(MAKE) LIBS="-ldbm /usr/local/lib/checker/libchecker.o" $(EXE)

# ditto with this
svr4:
	$(MAKE) LIBS="-lsocket -lnsl -lelf -L/usr/ucblib -lucb" LOOKUPFLAGS="-I/usr/ucbinclude" $(EXE)

$(EXE): x.tab.h $(OBJS)
	$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXE)

clean:
	rm -f [xy].tab.[ch] lex.yy.c grammar.c ColdX-* *~ *.BAK

scrub: clean
	rm -f *.o

rules:
	@echo "Make rules: svr4, checker, clean, scrub, makefile, all"

makefile:
	@cd ..; configure -q

install: all
	rm -rf $(BINDIR)/$(EXE)
	cp $(EXE) $(BINDIR)
	chmod 755 $(BINDIR)/$(EXE)

depend:
	@echo "Building dependancies..."
	@makedepend -- $(CFLAGS) -- $(SRCS)

lint:
	lint $(SRCS)

protoize:
	protoize -c "$(CFLAGS)" -gN $(SRCS)

test:
	$(BINDIR)/test-coldmud

patchable: scrub
	@chmod -f u+w Makefile
	@echo "all:" > Makefile
	@echo "	@echo \"** Invalid Makefile! **\"" >> Makefile
	@echo "	@echo \"** running the configure script ... **\"" >> Makefile
	@echo "	@cd ..; configure" >> Makefile

y.tab.h: grammar.y
	$(YACC) $(YFLAGS) grammar.y
	mv -f y.tab.c grammar.c

x.tab.h: y.tab.h
	-cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.h