
#########################################################################
#									#
#  Makefile for portable Edipo						#
#									#
#		status:							#
#				yap:		yes			#
#				sicstus:	yes			#
#				quintus:	yes			#
#									#
#########################################################################


C_SOURCES	= window.c gc.c event.c text.c draw.c init.c attr.c bitmap.c
INCLUDES	= attr.h callx.h event.h
OBJECTS		= ${C_SOURCES:.c=.o} 
SO_OBJECTS	= edipo.so
PL_SOURCES	= callx.pl edipo.pl ${C_SOURCES:.c=.pl}
DP_OBJECTS	= ${C_SOURCES:.c=${COMP}}
QL_OBJECTS	= edipo${COMP} ${DP_OBJECTS}

MODULE		= edipo


.SUFFIXES: .pl ${COMP}

.pl.ql:
	echo  "fcompile(${MODULE}:'$<') ." | ${PROLOG} 

default: edipo.${NAME}

edipo.${NAME}: edipo${COMP}
	echo "ensure_loaded(library(edipo)),edipo:make_edipo, halt." | ${PROLOG}

edipo.ql: ${DP_OBJECTS} callx.ql
	echo  "fcompile(${MODULE}:'$<') ." | ${PROLOG} 

edipo.qof: ${PL_SOURCES} edipo.so
	qpc -c -N -i init_file.pl edipo.pl

edipo.so: ${OBJECTS}
	ld -o edipo.so ${OBJECTS} -lm -lX11

clean:
	\rm -f *.o edipo.quintus edipo.sicstus edipo.yap *.ql *.qof *.so obj.*

clean_obj:
	\rm -f *.o rm -f obj.*

callx.ql: ${OBJECTS}

${OBJECTS}: callx.h

window.o attr.o : attr.h
event.o: event.h
init.o: event.h

 
## Make a prelinked SICStus + Edipo (useful for debugging etc). 
#
#flinkage.c:	callx.pl genflink.pl
#	echo "compile(genflink),genflink(callx)."|$(SP_PATH)/sicstus -f
#
#edipo_emulator:	${OBJECTS} ${PL_SOURCES} ${QL_OBJECTS} flinkage.c
#	$(CC) -g $(SP_PATH)/Emulator/sp.o flinkage.c $(OBJECTS) -lX11 -lm $(LDFLAGS) -o edipo_emulator
#
#edipo.$(NAME):	edipo_emulator
#	echo "asserta(library_directory('`pwd`')),use_module(edipo). edipo:make_edipo."| ./edipo_emulator -b $(SP_PATH)/Library/boot.ql
#
#EOF
