#include "../imake.defs"

MASOBJS = y.tab.o node.o arc.o check.o cost.o execute.o manip.o	anc.o 
MAINOBJS = exp.o array.o eval.o param.o pvmhelp.o print.o trace.o \
           type.o hstrings.o rbhelp.o
SLAVEOBJS = slave.o req.o wrap.o
SLAVELIB = libslave.a
HLIBS = librb/librb.a libdl/libdl.a liballoc/liballoc.a

DEFINES=-DARCHSTR=\"$(ARCH)\" -DIMA_$(ARCH) $(HENCE_DEFINES)
LOCAL_LIBRARIES=libhence.a libmaster.a libslave.a $(HLIBS)
SYS_LIBRARIES=$(LIBPVM) -lm
OBJS = master.o
SRCS = anc.c arc.c array.c check.c cost.c eval.c eval.h execute.c exp.c \
       fslave.c grparse.l grparse.y hstrings.c manip.c master.c node.c \
       param.c print.c pvmhelp.c rbhelp.c rbhelp.h req.c slave.c trace.c \
       type.c wrap.c yucky.h
SUBDIRS = liballoc libdl librb
INCLUDES = -I./include

ComplexProgramTarget(master)

master: $(HLIBS)

master: libhence.a libmaster.a libslave.a

NormalLibraryTarget(hence,$(MAINOBJS))

InstallLibrary(hence,$(HENCELIBDIR))

NormalLibraryTarget(master,$(MASOBJS))

InstallLibrary(master,$(HENCELIBDIR))

NormalLibraryTarget(slave,$(SLAVEOBJS))

InstallLibrary(slave,$(HENCELIBDIR))

y.tab.o: grparse.inc y.tab.c
	$(CC) $(CFLAGS) -c y.tab.c
#	$(CC) $(CFLAGS) -o y.tab.o -c y.tab.c

librb/librb.a:
	@sh -c 'set -x; cd librb ; $(MAKE) ARCH=$(ARCH)'

libdl/libdl.a:
	@sh -c 'set -x; cd libdl ; $(MAKE) ARCH=$(ARCH)'

liballoc/liballoc.a:
	@sh -c 'set -x; cd liballoc ; $(MAKE) ARCH=$(ARCH)'

y.tab.c: grparse.y
	yacc grparse.y

grparse.inc: grparse.l
	lex -t grparse.l > grparse.inc

libs: libhence.a libslave.a librb/librb.a libdl/libdl.a liballoc/liballoc.a

clean::
	rm -f y.tab.c lex.yy.c

CleanSubdirs($(SUBDIRS))

DependSubdirs($(SUBDIRS))

MakefileSubdirs($(SUBDIRS))

InstallSubdirs($(SUBDIRS))
