#
# default base directory for YAP installation
# (EROOT for architecture-dependent files)
#
prefix = @prefix@
exec_prefix = ${prefix}
ROOTDIR = $(prefix)
EROOTDIR = ${prefix}
#
# where the binary should be
#
BINDIR = $(EROOTDIR)/bin
#
# where YAP should look for libraries
#
LIBDIR=@libdir@
YAPLIBDIR=$(LIBDIR)/Yap
#
# where YAP should look for architecture-independent Prolog libraries
#
SHAREDIR=$(ROOTDIR)/share/Yap
#
#
DEFS=@DEFS@ -D_YAP_NOT_INSTALLED_=1
CC=@CC@
CFLAGS= @SHLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) -I$(srcdir) -I$(srcdir)/../../include  @CPPFLAGS@
#
#
# You shouldn't need to change what follows.
#
INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
SHELL=/bin/sh
RANLIB=@RANLIB@
srcdir=@srcdir@
SHLIB_SUFFIX=@SHLIB_SUFFIX@
CPLINT_CFLAGS=@CPLINT_CFLAGS@
CPLINT_LDFLAGS=@CPLINT_LDFLAGS@
CPLINT_LIBS=@CPLINT_LIBS@
#4.1VPATH=@srcdir@:@srcdir@/OPTYap
CWD=$(PWD)
#
OBJS=cplint_yap.o cplint_Prob.o
SOBJS=cplint.@SHLIB_SUFFIX@




CPLINT_SRCDIR = $(srcdir)

CPLINT_EXDIR = $(srcdir)/examples

CPLINT_DOCDIR = $(srcdir)/doc


CPLINT_PROGRAMS= \
	$(CPLINT_SRCDIR)/lpadvel.pl \
	$(CPLINT_SRCDIR)/lpadclpbn.pl \
	$(CPLINT_SRCDIR)/lpadsld.pl \
	$(CPLINT_SRCDIR)/lpad.pl \
	$(CPLINT_SRCDIR)/cpl.pl \
	$(CPLINT_SRCDIR)/approx/bestfirst.pl \
	$(CPLINT_SRCDIR)/approx/bestk.pl \
	$(CPLINT_SRCDIR)/approx/deepdyn.pl \
	$(CPLINT_SRCDIR)/approx/deepit.pl \
	$(CPLINT_SRCDIR)/approx/exact.pl \
	$(CPLINT_SRCDIR)/approx/exact_mem.pl \
	$(CPLINT_SRCDIR)/approx/montecarlo.pl \
	$(CPLINT_SRCDIR)/approx/params.pl \
	$(CPLINT_SRCDIR)/approx/parsing.pl \
	$(CPLINT_SRCDIR)/approx/tptreefile.pl \
	$(CPLINT_SRCDIR)/approx/utility.pl \
	$(CPLINT_SRCDIR)/approx/tptree_lpad.pl

CPLINT_SEMANTICS_PROGRAMS= \
	$(CPLINT_SRCDIR)/semlpadsld.pl \
	$(CPLINT_SRCDIR)/semlpad.pl \
	$(CPLINT_SRCDIR)/semcpl.pl \
	$(CPLINT_SRCDIR)/slg.pl 

CPLINT_TEST_PROGRAMS= \
	$(CPLINT_SRCDIR)/testlpadvel.pl \
	$(CPLINT_SRCDIR)/testlpadsld_gbtrue.pl \
	$(CPLINT_SRCDIR)/testlpadsld_gbfalse.pl \
	$(CPLINT_SRCDIR)/testlpad.pl \
	$(CPLINT_SRCDIR)/testcpl.pl \
	$(CPLINT_SRCDIR)/testsemlpadsld.pl \
	$(CPLINT_SRCDIR)/testsemlpad.pl \
	$(CPLINT_SRCDIR)/testsemcpl.pl 

CPLINT_EXAMPLES= \
	$(CPLINT_EXDIR)/dice.cpl \
	$(CPLINT_EXDIR)/dice.uni \
	$(CPLINT_EXDIR)/mendel.cpl \
	$(CPLINT_EXDIR)/mendels.cpl \
	$(CPLINT_EXDIR)/mendels.uni \
	$(CPLINT_EXDIR)/alarm.cpl \
	$(CPLINT_EXDIR)/coin.cpl \
	$(CPLINT_EXDIR)/coin.uni \
	$(CPLINT_EXDIR)/coin2.cpl \
	$(CPLINT_EXDIR)/coin2.uni \
	$(CPLINT_EXDIR)/student.cpl \
	$(CPLINT_EXDIR)/student.uni \
	$(CPLINT_EXDIR)/exapprox.cpl \
	$(CPLINT_EXDIR)/exapprox.uni \
	$(CPLINT_EXDIR)/exrange.cpl \
	$(CPLINT_EXDIR)/exrange.uni \
	$(CPLINT_EXDIR)/ex.cpl \
	$(CPLINT_EXDIR)/ex.uni \
	$(CPLINT_EXDIR)/school_simple.cpl \
	$(CPLINT_EXDIR)/school_simple.uni \
	$(CPLINT_EXDIR)/school.cpl \
	$(CPLINT_EXDIR)/paper_ref.cpl \
	$(CPLINT_EXDIR)/paper_ref_not.cpl \
	$(CPLINT_EXDIR)/paper_ref_simple.cpl \
	$(CPLINT_EXDIR)/threesideddice.cpl \
	$(CPLINT_EXDIR)/threesideddice.uni \
	$(CPLINT_EXDIR)/twosideddice.cpl \
	$(CPLINT_EXDIR)/female.cpl \
	$(CPLINT_EXDIR)/hiv.cpl \
	$(CPLINT_EXDIR)/hiv.uni \
	$(CPLINT_EXDIR)/invalid.cpl \
	$(CPLINT_EXDIR)/invalid.uni \
	$(CPLINT_EXDIR)/light.cpl \
	$(CPLINT_EXDIR)/light.uni \
	$(CPLINT_EXDIR)/throws.cpl \
	$(CPLINT_EXDIR)/throws.uni \
	$(CPLINT_EXDIR)/trigger.cpl \
	$(CPLINT_EXDIR)/trigger.uni \
	$(CPLINT_EXDIR)/win.cpl \
	$(CPLINT_EXDIR)/win.uni \
	$(CPLINT_EXDIR)/exist.cpl \
	$(CPLINT_EXDIR)/exist.uni \
	$(CPLINT_EXDIR)/exist1.cpl \
	$(CPLINT_EXDIR)/exist1.uni

CPLINT_DOCS=\
	$(CPLINT_DOCDIR)/manual.bbl \
	$(CPLINT_DOCDIR)/manual.tex \
	$(CPLINT_DOCDIR)/manual.pdf \
	$(CPLINT_DOCDIR)/manual.html \
	$(CPLINT_DOCDIR)/manual.css \
	$(CPLINT_DOCDIR)/manual0x.png \
	$(CPLINT_DOCDIR)/Makefile

CPLINT_LEARNING_PROGRAMS=\
	$(CPLINT_SRCDIR)/em \
	$(CPLINT_SRCDIR)/rib \
	$(CPLINT_SRCDIR)/slipcase
	

all: $(SOBJS)

cplint_yap.o: $(srcdir)/cplint_yap.c  $(srcdir)/cplint.h 
	$(CC) -c $(CFLAGS) $(CPLINT_CFLAGS) $(srcdir)/cplint_yap.c -o cplint_yap.o

cplint_Prob.o: $(srcdir)/cplint_Prob.c  $(srcdir)/cplint.h 
	$(CC) -c $(CFLAGS) $(CPLINT_CFLAGS) $(srcdir)/cplint_Prob.c -o cplint_Prob.o



@DO_SECOND_LD@cplint.@SHLIB_SUFFIX@: cplint_yap.o cplint_Prob.o
@DO_SECOND_LD@	@CPLINT_SHLIB_LD@ -o cplint.@SHLIB_SUFFIX@ $(CPLINT_LDFLAGS) cplint_yap.o cplint_Prob.o $(CPLINT_LIBS) @EXTRA_LIBS_FOR_DLLS@

clean:
	rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK

install: all 
	mkdir -p $(DESTDIR)$(SHAREDIR)/cplint
	mkdir -p $(DESTDIR)$(SHAREDIR)/cplint/examples
	mkdir -p $(DESTDIR)$(SHAREDIR)/cplint/doc
	for h in $(CPLINT_PROGRAMS); do $(INSTALL_DATA) $$h $(DESTDIR)$(SHAREDIR); done
	for h in $(CPLINT_EXAMPLES); do $(INSTALL_DATA) $$h $(DESTDIR)$(SHAREDIR)/cplint/examples; done
	for h in $(CPLINT_DOCS); do $(INSTALL_DATA) $$h $(DESTDIR)$(SHAREDIR)/cplint/doc; done
	for h in $(CPLINT_TEST_PROGRAMS); do $(INSTALL_DATA) $$h $(DESTDIR)$(SHAREDIR)/cplint; done
	for h in $(CPLINT_SEMANTICS_PROGRAMS); do $(INSTALL_DATA) $$h $(DESTDIR)$(SHAREDIR); done
	$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(YAPLIBDIR)
	$(INSTALL_PROGRAM) approx/simplecuddLPADs/LPADBDD $(SHAREDIR)
	#cp -R $(CPLINT_LEARNING_PROGRAMS) $(DESTDIR)$(SHAREDIR)/cplint
	cp $(CPLINT_SRCDIR)/em/*.pl $(DESTDIR)$(SHAREDIR)/cplint/
	cp $(CPLINT_SRCDIR)/rib/*.pl $(DESTDIR)$(SHAREDIR)/cplint/
	cp $(CPLINT_SRCDIR)/slipcase/*.pl $(DESTDIR)$(SHAREDIR)/cplint/
	$(INSTALL_PROGRAM) slipcase/bddem.so $(DESTDIR)$(YAPLIBDIR)

installcheck: 
	for h in ${CPLINT_TEST_PROGRAMS}; do echo "t. halt." | $(BINDIR)/yap -l $$h; done

# use the following target to run individual tests, e.g. make testlpad
test%:  	
	echo "t. halt." | yap -l $(CPLINT_SRCDIR)/$@.pl

