Merge branch 'master' of /home/pl/chr
[chr.git] / Makefile.in
blob6b0a482f3777787acd31a9a7e0f10ceb47509b9b
1 ################################################################
2 # SWI-Prolog CHR package
3 # Author: Jan Wielemaker. jan@swi.psy.uva.nl
4 # Copyright: LGPL (see COPYING or www.gnu.org
5 ################################################################
7 .SUFFIXES: .tex .dvi .doc .pl
9 ifeq (@PROLOG_SYSTEM@,yap)
10 prefix = @prefix@
11 ROOTDIR = $(prefix)
12 EROOTDIR = @exec_prefix@
14 srcdir=@srcdir@
16 BINDIR = $(EROOTDIR)/bin
17 LIBDIR=$(EROOTDIR)/lib
18 YAPLIBDIR=$(EROOTDIR)/lib/Yap
19 SHAREDIR=$(ROOTDIR)/share/Yap
21 SHELL=@SHELL@
22 PL=@EXTEND_DYNLOADER_PATH@ $(DESTDIR)$(BINDIR)/yap $(DESTDIR)$(YAPLIBDIR)/startup
23 CHRDIR=$(SHAREDIR)/chr
24 EXDIR=$(CHRDIR)/examples/chr
25 LN_S=@LN_S@
28 CC=@CC@
29 CFLAGS= @CFLAGS@ $(YAP_EXTRAS) $(DEFS) -I$(srcdir) -I../.. -I$(srcdir)/../../include
30 MKINDEX=true
32 else # SWI
34 PLBASE=@PLBASE@
35 PLARCH=@PLARCH@
36 PLINCL=@PLINCL@
37 PL=@PL@
38 XPCEBASE=$(PLBASE)/xpce
39 PKGDOC=$(PLBASE)/doc/packages
40 PCEHOME=../xpce
41 LIBDIR=$(PLBASE)/library
42 CHRDIR=$(LIBDIR)/chr
43 EXDIR=$(PKGDOC)/examples/chr
44 DESTDIR=
47 CC=@CC@
48 COFLAGS=@COFLAGS@
49 CWFLAGS=@CWFLAGS@
50 CMFLAGS=@CMFLAGS@
51 CIFLAGS=
52 CFLAGS=$(COFLAGS) $(CWFLAGS) $(CMFLAGS) $(CIFLAGS) @DEFS@
53 LIBS=@LIBS@
55 LD=@LD@
56 LDFLAGS=@LDSOFLAGS@
58 MKINDEX=$(PL) -f none -g make -t halt
60 DOCTOTEX=$(PCEHOME)/bin/doc2tex
61 PLTOTEX=$(PCEHOME)/bin/pl2tex
62 LATEX=latex
63 DOC=chr
64 TEX=$(DOC).tex
65 DVI=$(DOC).dvi
66 PDF=$(DOC).pdf
67 HTML=$(DOC).html
69 srcdir=.
70 SHAREDIR=$(LIBDIR)
72 endif #YAP/SWI
74 SHELL=@SHELL@
76 INSTALL=@INSTALL@
77 INSTALL_PROGRAM=@INSTALL_PROGRAM@
78 INSTALL_DATA=@INSTALL_DATA@
80 LIBPL= $(srcdir)/chr_runtime.pl $(srcdir)/chr_op.pl \
81 chr_translate.pl $(srcdir)/chr_debug.pl \
82 $(srcdir)/chr_messages.pl \
83 $(srcdir)/pairlist.pl $(srcdir)/clean_code.pl \
84 $(srcdir)/find.pl $(srcdir)/a_star.pl \
85 $(srcdir)/binomialheap.pl $(srcdir)/builtins.pl \
86 $(srcdir)/chr_hashtable_store.pl $(srcdir)/listmap.pl \
87 guard_entailment.pl \
88 $(srcdir)/chr_compiler_options.pl \
89 $(srcdir)/chr_compiler_utility.pl \
90 $(srcdir)/chr_compiler_errors.pl \
91 $(srcdir)/chr_integertable_store.pl @CHR_TARGETS@
92 TARGETS= @CHR_TARGETS@
93 CHRPL= $(srcdir)/chr_swi.pl
94 EXAMPLES= chrfreeze.chr fib.chr gcd.chr primes.chr \
95 bool.chr family.chr fibonacci.chr leq.chr listdom.chr \
96 chrdif.chr
98 all: chr_translate.pl $(TARGETS)
100 ifeq (@PROLOG_SYSTEM@,yap)
102 SOBJS=chr_support@SHLIB_SUFFIX@
104 chr_support.o: $(srcdir)/chr_support.c
105 $(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/chr_support.c -o chr_support.o
107 @DO_SECOND_LD@chr_support@SHLIB_SUFFIX@: chr_support.o
108 @DO_SECOND_LD@ @SHLIB_LD@ -o chr_support@SHLIB_SUFFIX@ chr_support.o
110 else
112 chr_support.@SO@: chr_support.o
113 $(LD) $(LDFLAGS) -o $@ chr_support.o
115 endif
117 chr_translate_bootstrap.pl: $(TARGETS)
119 chr_translate_bootstrap1.pl: $(srcdir)/chr_translate_bootstrap1.chr $(srcdir)/chr_translate_bootstrap.pl
120 $(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
121 -g "chr_compile_step1('$<','$@'),halt" \
122 -t 'halt(1)'
123 $(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
124 -g "chr_compile_step2('$<','$@'),halt" \
125 -t 'halt(1)'
127 chr_translate_bootstrap2.pl: $(srcdir)/chr_translate_bootstrap2.chr chr_translate_bootstrap1.pl
128 $(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
129 -g "chr_compile_step2('$<','$@'),halt" \
130 -t 'halt(1)'
131 $(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
132 -g "chr_compile_step3('$<','$@'),halt" \
133 -t 'halt(1)'
135 guard_entailment.pl: $(srcdir)/guard_entailment.chr chr_translate_bootstrap2.pl
136 $(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
137 -g "chr_compile_step3('$<','$@'),halt" \
138 -t 'halt(1)'
140 chr_translate.pl: $(srcdir)/chr_translate.chr chr_translate_bootstrap2.pl guard_entailment.pl
141 $(PL) -q -f $(srcdir)/chr_swi_bootstrap.pl \
142 -g "chr_compile_step3('$<','$@'),halt" \
143 -t 'halt(1)'
144 $(PL) -L50M -G50M -T20M -p chr=. -q -f $(srcdir)/chr_swi_bootstrap.pl \
145 -g "chr_compile_step4('guard_entailment.chr','guard_entailment.pl'),halt" \
146 -t 'halt(1)'
147 $(PL) -L50M -G50M -T20M -p chr=. -q -f $(srcdir)/chr_swi_bootstrap.pl \
148 -g "chr_compile_step4('$<','$@'),halt" \
149 -t 'halt(1)'
151 chr.pl: $(srcdir)/chr_swi.pl
152 cp $< $@
154 install: $(LIBPL)
155 mkdir -p $(DESTDIR)$(CHRDIR)
156 $(INSTALL_DATA) $(LIBPL) $(DESTDIR)$(CHRDIR)
157 $(INSTALL_DATA) $(CHRPL) $(DESTDIR)$(SHAREDIR)/chr.pl
158 $(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(CHRDIR)
159 $(MKINDEX)
161 ln-install::
162 @$(MAKE) INSTALL_DATA='../ln-install' install
164 rpm-install: install
166 pdf-install: install-examples
168 html-install: install-examples
170 install-examples::
171 mkdir -p $(DESTDIR)$(EXDIR)
172 (cd Examples && $(INSTALL_DATA) $(EXAMPLES) $(DESTDIR)$(EXDIR))
174 uninstall:
175 (cd $(PLBASE)/library && rm -f $(LIBPL))
176 @IN_SWI@$$(PL) -f none -g make -t halt
178 check: chr.pl
179 $(PL) -q -f $(srcdir)/chr_test.pl -g test,halt -t 'halt(1)'
182 ################################################################
183 # Documentation
184 ################################################################
186 # NOTE: Manual is integrated in system manual
188 doc: pdf html
189 #pdf: $(PDF)
190 #html: $(HTML)
191 pdf::
192 html::
194 $(HTML): $(TEX)
195 latex2html $(DOC)
196 mv html/index.html $@
198 $(PDF): $(TEX)
199 ../../man/runtex --pdf $(DOC)
201 $(TEX): $(DOCTOTEX)
203 .doc.tex:
204 $(DOCTOTEX) $*.doc > $*.tex
205 .pl.tex:
206 $(PLTOTEX) $*.pl > $*.tex
208 ################################################################
209 # Clean
210 ################################################################
212 clean:
213 rm -f *~ *.o *.so *% config.log
214 rm -f chr.pl chr_translate.pl
215 rm -f chr_translate_bootstrap1.pl chr_translate_bootstrap2.pl
216 rm -f guard_entailment.pl
218 distclean: clean
219 rm -f $(TARGETS) config.h config.cache config.status Makefile
220 rm -f $(TEX)
221 ../../man/runtex --clean $(DOC)