# Copyright (C) 1995, Swedish Institute of Computer Science.

MAKE= make
MFILE= -f mkos2emx
CC= gcc
LD= gcc
CCLD= gcc
VERSION= DEBUG
O= obj
#O=o
CFLAGS_PRODUCTION= -O2 -fomit-frame-pointer -m486
CFLAGS_DEBUG= -g
CFLAGS_obj= -Zomf
CFLAGS_o=
CFLAGS= $(CFLAGS_$(O)) $(CFLAGS_$(VERSION))
INCR_CFLAGS= -DSPDLL
SHSFX= dll
STSFX= lib

SP_LIB= ..
SP_INC= ../include
LIB_PATH= .

SOCKETLIB= /tcpip/lib/so32dll.lib /tcpip/lib/tcp32dll.lib

PROLOG= sicstus
PLFLAGS= compactcode

QLS= arrays.ql assoc.ql db.ql heaps.ql lists.ql ordsets.ql queues.ql \
	random.ql trees.ql ugraphs.ql wgraphs.ql \
	xref.ql charsio.ql fastrw.ql objects.ql flinkage.ql atts.ql \
	clpb.ql clpq.ql clpr.ql context.ql terms.ql \
	system.ql clpfd.ql
# gauge.ql tcltk.ql sockets.ql tkconsol.ql
DYNS= random.$(SHSFX) charsio.$(SHSFX) fastrw.$(SHSFX) \
	system.$(SHSFX) db.$(SHSFX) clpfd.$(SHSFX)
# sockets.$(SHSFX) tcltk.$(SHSFX)
STATS= random.$(STSFX) charsio.$(STSFX) fastrw.$(STSFX) \
	system.$(STSFX) db.$(STSFX) clpfd.$(STSFX)
# sockets.$(STSFX) tcltk.$(STSFX)


.SUFFIXES: .$(O) .c
.c.$(O):
	$(CC) $(CFLAGS) $(INCR_CFLAGS) -c $*.c -I../include -DSICSTUS

.SUFFIXES: .ql .pl
.pl.ql:
	-echo prolog_flag(compiling,_,$(PLFLAGS)),fcompile($*). | $(PROLOG) -f


qls:	$(QLS)

dyns:	$(DYNS)

stats:	$(STATS)

fastrw.$(O):	fastrw.h fastrw.c

fastrws.$(O):	fastrw.h fastrw.c
	$(CC) -c $(CFLAGS) fastrw.c -o fastrws.$(O) -I../include -DSICSTUS

sockets.$(O):	sockets.c
	$(CC) -c $(CFLAGS) $(INCR_CFLAGS) sockets.c -I/tcpip/include -I../include -DSICSTUS

clpb.ql:	clpb.pl
	-echo ensure_loaded($*),prolog_flag(compiling,_,$(PLFLAGS)),fcompile($*). | $(PROLOG) -f

clpfd.ql:	clpfd.pl clpfd.$(SHSFX) clpfd.$(STSFX)
	-echo asserta(library_directory('$(LIB_PATH)')),ensure_loaded($*),fcompile($*). | $(PROLOG) -f

INDEX.pl: arrays.pl assoc.pl heaps.pl lists.pl ordsets.pl queues.pl \
	  random.pl trees.pl ugraphs.pl wgraphs.pl xref.pl charsio.pl \
	  fastrw.pl system.pl sockets.pl linda\client.pl linda\server.pl \
	  db.pl gcla\gcla.pl \
	  objects.pl clpb.pl clpq.pl clpr.pl clpfd.pl
	-echo compile(mkindex),make_index:make_library_index('$(LIB_PATH)'). | $(PROLOG) -f

random.$(SHSFX):	random.c
	$(SP_LIB)\bin\splfr random random +c random.c

random.$(STSFX):	random.c
	$(SP_LIB)\bin\splfr random random +static +c random.c

charsio.$(SHSFX):	charsio.c
	$(SP_LIB)\bin\splfr charsio charsio +c charsio.c

charsio.$(STSFX):	charsio.c
	$(SP_LIB)\bin\splfr charsio charsio +static +c charsio.c

fastrw.$(SHSFX):	fastrw.$(O)
	$(SP_LIB)\bin\splfr fastrw fastrw +o fastrw.$(O)

fastrw.$(STSFX):	fastrws.$(O)
	$(SP_LIB)\bin\splfr fastrw fastrw +static +o fastrws.$(O)

system.$(SHSFX):	system.c systos2.c
	$(SP_LIB)\bin\splfr system system +c system.c systos2.c +l $(SYSTEMLIB)

system.$(STSFX):	system.c systos2.c
	$(SP_LIB)\bin\splfr system system +static +c system.c systos2.c +l $(SYSTEMLIB)

sockets.$(SHSFX):	sockets.$(O)
	$(SP_LIB)\bin\splfr sockets sockets +o sockets.$(O) +l $(SOCKETLIB)

sockets.$(STSFX):	sockets.c
	$(SP_LIB)\bin\splfr sockets sockets +static +c sockets.c +l $(SOCKETLIB)

#timeout.$(SHSFX):	timeout.c
#	$(SP_LIB)\bin\splfr timeout timeout +c timeout.c

#timeout.$(STSFX):	timeout.c
#	$(SP_LIB)\bin\splfr timeout timeout +static +c timeout.c

DBOBJS= db\db_conf.$(O) db\alloc.$(O) db\file.$(O) db\stats.$(O) \
	db\top.$(O) db\insert.$(O) db\print.$(O) db\cache.$(O) \
	db\message.$(O) db\hash.$(O)

db.$(SHSFX):
	$(SP_LIB)\bin\splfr db db +o $(DBOBJS) +l $(DBLIB)

db.$(STSFX):
	$(SP_LIB)\bin\splfr db db +static +o $(DBOBJS) +l $(DBLIB)

clpfd.$(SHSFX): clpfd.pl
	$(SP_LIB)\bin\splfr clpfd - +o clpfd\fd.obj clpfd\fd_glue.obj

clpfd.$(STSFX): clpfd.pl
	$(SP_LIB)\bin\splfr clpfd - +static +o clpfd\fds.obj clpfd\fds_glue.obj

#gauge.ql:	gauge.pl
#	-echo prolog_flag(compiling,_,$(PLFLAGS)),compile(context),fcompile(gauge). | $(PROLOG) -f
	
clean:	clean_dist
	-del *.ql
	-del *.dll
	-del *.lib
	-del INDEX.pl

clean_dist:
	-del *.$(O)
