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