# ic makefile

LIBRARY_DIR = ../libs

INCLUDE_DIR = /usr/local/gnu/lib/gcc-lib/sparc-sun-sunos4/2.1/include

include $(LIBRARY_DIR)/makeconf

IC_LIBS= \
        ../libs/binrec.o \
        ../libs/board.o \
        ../libs/boardsim.o \
        ../libs/byteq.o \
	../libs/confexec.o \
        ../libs/cmdlineo.o \
        ../libs/filelib.o \
	../libs/growbuf.o \
        ../libs/iob.o \
	../libs/memmove.o \
	../libs/parsargs.o \
        ../libs/pcodesim.o \
	../libs/queue.o \
	../libs/radix.o \
        ../libs/s19.o \
	../libs/scan.o \
	../libs/stream.o \
	../libs/stringlb.o \
	../libs/table.o \
	../libs/util.o \
	-lm

OBJECTS= c.o spew.o define.o symtab.o \
	 sem.o code.o \
         type.o value.o parser.o \
         lexer.o ref.o module.o core.o \
         ic.o

.SUFFIXES: .o .c .y .lex

all: ic

protos:  protos *.c

profile:
	-rm -f gmon.out
	ic -noboard -lib=/tmp/lib240.c -profile
	gprof ic >ic.gprof
	
c.o: c.c ctoken.c core.h

y.output: c.y
	yacc -v c.y
	mv y.tab.c c.c

# makefile for unix

.y.c:
	yacc -d $*.y
	mv y.tab.c $*.c
	mv y.tab.h $*def.h

.lex.c:
	$(LEX) $*.lex
	mv lex.yy.c $*.c

ic: $(OBJECTS)
	$(CC_EXE) $(OBJECTS) date.c -o ic $(IC_LIBS)

ic.o: ic.c $(LIBRARY_DIR)/pcode_in.h

define.o: define.c $(LIBRARY_DIR)/pcode_in.h

spew.o: spew.c $(LIBRARY_DIR)/pcode_in.h spew_p.h

test:
	ic -sim -nolib -outfile test.out tests/suite.c -run
	diff test.out tests/test.ok

clean:
	-rm -f *.o ic *~


