1################################################################
2# SWI-Prolog CHR package
3# Author:    Tom Schrijvers and many others
4# Copyright: LGPL (see COPYING or www.gnu.org
5################################################################
6
7.SUFFIXES: .tex .dvi .doc .pl
8
9ifeq (@PROLOG_SYSTEM@,yap)
10prefix = @prefix@
11exec_prefix = @exec_prefix@
12ROOTDIR = $(prefix)
13EROOTDIR = @exec_prefix@
14abs_top_builddir = @abs_top_builddir@
15
16srcdir=@srcdir@
17
18BINDIR = $(EROOTDIR)/bin
19LIBDIR=@libdir@
20YAPLIBDIR=@libdir@/Yap
21SHAREDIR=$(ROOTDIR)/share/Yap
22
23SHELL=@SHELL@
24PL=@INSTALL_ENV@ $(DESTDIR)$(BINDIR)/yap $(DESTDIR)$(YAPLIBDIR)/startup.yss
25CHRDIR=$(SHAREDIR)/chr
26EXDIR=$(CHRDIR)/examples/chr
27LN_S=@LN_S@
28#
29#
30CC=@CC@
31CFLAGS= @SHLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) -D_YAP_NOT_INSTALLED_=1 -I$(srcdir) -I../.. -I$(srcdir)/../../include @CPPFLAGS@
32MKINDEX=true
33
34else	# SWI
35
36PLBASE=@PLBASE@
37PLARCH=@PLARCH@
38PLINCL=@PLINCL@
39PL=@PL@
40XPCEBASE=$(PLBASE)/xpce
41PKGDOC=$(PLBASE)/doc/packages
42PCEHOME=../xpce
43LIBDIR=$(PLBASE)/library
44CHRDIR=$(LIBDIR)/chr
45EXDIR=$(PKGDOC)/examples/chr
46
47
48CC=@CC@
49COFLAGS=@COFLAGS@
50CWFLAGS=@CWFLAGS@
51CMFLAGS=@CMFLAGS@
52CIFLAGS=
53CFLAGS=$(COFLAGS) $(CWFLAGS) $(CMFLAGS) $(CIFLAGS) @DEFS@
54LIBS=@LIBS@
55
56LD=@LD@
57LDFLAGS=@LDSOFLAGS@
58
59MKINDEX=$(PL) -f none -g make -t halt
60
61DOCTOTEX=$(PCEHOME)/bin/doc2tex
62PLTOTEX=$(PCEHOME)/bin/pl2tex
63LATEX=latex
64DOC=chr
65TEX=$(DOC).tex
66DVI=$(DOC).dvi
67PDF=$(DOC).pdf
68HTML=$(DOC).html
69
70srcdir=.
71SHAREDIR=$(LIBDIR)
72
73endif	#YAP/SWI
74
75SHELL=@SHELL@
76
77INSTALL=@INSTALL@
78INSTALL_PROGRAM=@INSTALL_PROGRAM@
79INSTALL_DATA=@INSTALL_DATA@
80
81LIBPL=		$(srcdir)/chr_runtime.pl $(srcdir)/chr_op.pl \
82		chr_translate.pl $(srcdir)/chr_debug.pl \
83		$(srcdir)/chr_messages.pl \
84		$(srcdir)/pairlist.pl $(srcdir)/clean_code.pl \
85		$(srcdir)/find.pl $(srcdir)/a_star.pl \
86		$(srcdir)/binomialheap.pl $(srcdir)/builtins.pl \
87		$(srcdir)/chr_hashtable_store.pl $(srcdir)/listmap.pl \
88		guard_entailment.pl \
89		$(srcdir)/chr_compiler_options.pl \
90		$(srcdir)/chr_compiler_utility.pl \
91		$(srcdir)/chr_compiler_errors.pl \
92		$(srcdir)/chr_integertable_store.pl
93CHRPL=		$(srcdir)/chr_swi.pl
94EXAMPLES=	chrfreeze.chr fib.chr gcd.chr primes.chr \
95		bool.chr family.chr fibonacci.chr leq.chr listdom.chr \
96		chrdif.chr
97
98all:		chr_translate.pl
99
100chr_translate_bootstrap.pl:
101
102chr_translate_bootstrap1.pl: $(srcdir)/chr_translate_bootstrap1.chr $(srcdir)/chr_translate_bootstrap.pl
103		$(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
104		      -g "chr_compile_step1('$<','$@'),halt" \
105		      -t 'halt(1)'
106		$(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
107		      -g "chr_compile_step2('$<','$@'),halt" \
108		      -t 'halt(1)'
109
110chr_translate_bootstrap2.pl: $(srcdir)/chr_translate_bootstrap2.chr chr_translate_bootstrap1.pl
111		$(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
112		      -g "chr_compile_step2('$<','$@'),halt" \
113		      -t 'halt(1)'
114		$(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
115		      -g "chr_compile_step3('$<','$@'),halt" \
116		      -t 'halt(1)'
117
118guard_entailment.pl: $(srcdir)/guard_entailment.chr chr_translate_bootstrap2.pl
119		$(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
120		      -g "chr_compile_step3('$<','$@'),halt" \
121		      -t 'halt(1)'
122
123chr_translate.pl: $(srcdir)/chr_translate.chr chr_translate_bootstrap2.pl guard_entailment.pl
124		$(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
125		      -g "chr_compile_step3('$<','$@'),halt" \
126		      -t 'halt(1)'
127		$(PL) -p chr=. -q -f $(srcdir)/chr_swi_bootstrap.pl \
128		      -g "chr_compile_step4('guard_entailment.chr','guard_entailment.pl'),halt" \
129		      -t 'halt(1)'
130		$(PL) -p chr=. -q -f $(srcdir)/chr_swi_bootstrap.pl \
131		      -g "chr_compile_step4('$<','$@'),halt" \
132		      -t 'halt(1)'
133
134chr.pl:		$(srcdir)/chr_swi.pl
135		cp $< $@
136
137install:	$(LIBPL)
138		mkdir -p $(DESTDIR)$(CHRDIR)
139		$(INSTALL_DATA) $(LIBPL) $(DESTDIR)$(CHRDIR)
140		$(INSTALL_DATA) $(CHRPL) $(DESTDIR)$(SHAREDIR)/chr.pl
141		$(INSTALL_DATA) $(srcdir)/README   $(DESTDIR)$(CHRDIR)
142		$(MKINDEX)
143
144ln-install::
145		@$(MAKE) INSTALL_DATA='../ln-install' install
146
147rpm-install:	install
148
149pdf-install:	install-examples
150
151html-install:	install-examples
152
153install-examples::
154		mkdir -p $(DESTDIR)$(EXDIR)
155		(cd Examples && $(INSTALL_DATA) $(EXAMPLES) $(DESTDIR)$(EXDIR))
156
157uninstall:
158		(cd $(PLBASE)/library && rm -f $(LIBPL))
159		@IN_SWI@$$(PL) -f none -g make -t halt
160
161check:		chr.pl
162		$(PL) -q -f $(srcdir)/chr_test.pl -g test,halt -t 'halt(1)'
163
164
165################################################################
166# Documentation
167################################################################
168
169# NOTE: Manual is integrated in system manual
170
171doc:		pdf html
172#pdf:		$(PDF)
173#html:		$(HTML)
174pdf::
175html::
176
177$(HTML):	$(TEX)
178		latex2html $(DOC)
179		mv html/index.html $@
180
181$(PDF):		$(TEX)
182		../../man/runtex --pdf $(DOC)
183
184$(TEX):		$(DOCTOTEX)
185
186.doc.tex:
187		$(DOCTOTEX) $*.doc > $*.tex
188.pl.tex:
189		$(PLTOTEX) $*.pl > $*.tex
190
191################################################################
192# Clean
193################################################################
194
195clean:
196		rm -f *~ *.o *.so *% config.log
197		rm -f chr.pl chr_translate.pl
198		rm -f chr_translate_bootstrap1.pl chr_translate_bootstrap2.pl
199		rm -f guard_entailment.pl
200
201distclean:	clean
202		rm -f config.h config.cache config.status Makefile
203		rm -f $(TEX)
204		../../man/runtex --clean $(DOC)
205