#
#	(C)1993 Institute for New Generation Computer Technology
#	Read COPYRIGHT for detailed information.
#
#	Makefile for Dynamical Constraint Programming Prototype System
#

#	LINKER specifies linkage editor.
#	(Either 'cc' or 'gcc' will do.)
#
LINKER = gcc

#	LIBS specifies libraries to be included.
#
LIBS = -lm -lX11 -lXt

#	MAIN specifies location of main-routine files.
#
MAIN	=	./main/

#	VISUAL specifies location of visual-debugging program files.
#
VISUAL	=	./unix/

#	Machine independent part.
#
GINCS =	${MAIN}define.h ${MAIN}typedef.h ${MAIN}global.h \
		${MAIN}debug.h ${MAIN}vnode.h
VINCS =	${VISUAL}visual.h

POBJ =	${MAIN}binding.o ${MAIN}clause.o ${MAIN}expression.o \
		${MAIN}feature.o ${MAIN}formula.o ${MAIN}link.o \
		${MAIN}print.o ${MAIN}y.tab.o
SOBJ =	${MAIN}main.o ${MAIN}delete.o ${MAIN}pressure.o ${MAIN}probe.o \
		${MAIN}literallist.o ${MAIN}subsume.o ${MAIN}absorb.o \
		${MAIN}copy.o ${MAIN}control.o ${MAIN}allocate.o \
		${MAIN}spread.o ${MAIN}command.o ${MAIN}backp.o \
		${MAIN}debug.o ${MAIN}info.o ${MAIN}speech.o \
		${MAIN}special.o ${MAIN}loop.o

#	for UNIX (X window)
#
VOBJ =	${VISUAL}visual.o ${VISUAL}button.o \
		${VISUAL}callback.o ${VISUAL}mark.o \
		${VISUAL}draw1.o ${VISUAL}draw2.o ${VISUAL}draw3.o

#	for others
#
#VOBJ =	${MAIN}vdummy.o

all :: dcp

dcp : ${POBJ} ${SOBJ} ${VOBJ}
	${LINKER} -w ${POBJ} ${SOBJ} ${VOBJ} ${LIBS} -o dcp

${POBJ} ${SOBJ} : ${GINCS} ${MAIN}proto.h
	(cd ${MAIN}; make)

${VOBJ} : ${GINCS} ${VINCS} ${VISUAL}proto.h
	(cd ${VISUAL}; make)

clean :
	(cd ${MAIN}; rm -f *.o *~ *.bak)
	(cd ${VISUAL}; rm -f *.o *~ *.bak)
	rm -f dcp
