# $Id: Makefile,v 1.46 1993/10/19 16:23:54 boortz Exp $
# Copyright (C) 1990, 1991 Swedish Institute of Computer Science

MAKE= gmake
CC= gcc
YACC= bison
LEX= flex
M4= m4
LFLAGS= -8
#LDFLAGS= -n -L../gmp -lgmp -lm
LDFLAGS= -lm
#CFLAGS= -g -DMETERING -DNDEBUG -DBIGNUM -I../gmp
#CFLAGS= -g -DMETERING -DNDEBUG -DTRACE
CFLAGS= -g -pedantic -Wall -DNOTHREAD -DMETERING -DNDEBUG -DTRACE -DCOMPAT08



DEFS=   parser.tab.h \
	sysdeps.h regdefs.h \
        include.h constants.h  c.h \
	initial.h config.h storage.h names.h \
        term.h tree.h instructions.h code.h predicate.h\
        engine.h copy.h gc.h unify.h candidate.h examine.h exstate.h \
	debug.h display.h time.h error.h \
	builtin.h inout.h statistics.h foreign.h load.h \
	port.h reflection.h\
	trace.h bignum.h rational.h array.h compare.h is.h intrpt.h \
	aggregate.h ptrhash.h ghash.h \
	opcodes.h instrdefs.h encodeinstr.h decodeinstr.h bam.h

OBJ=    parser.yy.o parser.tab.o \
        initial.o config.o storage.o names.o\
        code.o predicate.o\
	engine.o copy.o gc.o unify.o candidate.o examine.o  exstate.o\
	debug.o display.o time.o error.o \
	builtin.o inout.o statistics.o foreign.o load.o \
        port.o reflection.o\
	main.o trace.o bignum.o rational.o array.o \
	compare.o is.o intrpt.o \
	aggregate.o ptrhash.o ghash.o bam.o

SRC=    initial.c config.c storage.c names.c \
	code.c predicate.c\
	engine.c copy.c gc.c unify.c candidate.c examine.c  exstate.c\
	debug.c display.c time.c error.c \
	builtin.c inout.c statistics.c foreign.c load.c\
	port.c reflection.c\
	main.c trace.c bignum.c rational.c array.c\
	foreign_stub.c compare.c is.c intrpt.c \
	aggregate.c ptrhash.c ghash.c bam.c


akl:	akl.o foreign_stub.o
	echo $(CFLAGS) >SAVED_CFLAGS
	${CC} $(CFLAGS) akl.o foreign_stub.o $(LDFLAGS) -o akl
	chmod a+xr akl

akl.o: $(P) $(OBJ)
	ld -r $(OBJ) -o akl.o	

.KEEP_STATE:

saber: $(OBJ)
	#load $(CFLAGS) $(OBJ)

parser: parser.yy.c

$(OBJ): $(DEFS)

parser.yy.c: parser.l parser.tab.h
	$(LEX) $(LFLAGS) parser.l 
	mv lex.yy.c parser.yy.c

parser.tab.c parser.tab.h: parser.y 
	$(YACC) $(YFLAGS) -d parser.y

parser.y:	parser.y.m4
	$(M4) parser.y.m4 >parser.y

display.c:	display.c.m4
	$(M4) display.c.m4 >display.c


clean:
	/bin/rm -f $(OBJ) foreign_stub.o
#	parser.tab.h parser.tab.c parser.yy.c

realclean: clean
	/bin/rm -f akl akl.o foreign_stub.o

print: 
	laser $(SRC) $(DEFS) 


# The `depend' target must be last in the Makefile.
#
depend:
	${CC} -MM $(SRC)

pthash.o: hash.h
ghash.o: hash.h
