1#
2# Makefile.in for Gauche/lib
3#
4
5.PHONY: all check install uninstall slibcat slibcat-in-place \
6	clean distclean maintainer-clean
7
8DESTDIR =
9
10prefix      = @prefix@
11exec_prefix = @exec_prefix@
12bindir      = @bindir@
13libdir      = @libdir@
14srcdir      = @srcdir@
15VPATH       = $(srcdir)
16top_builddir = @top_builddir@
17top_srcdir   = @top_srcdir@
18datadir     = @datadir@
19datarootdir = @datarootdir@
20build       = @build@
21host        = @host@
22
23GAUCHE_DATA_DIR = $(datadir)/gauche-@GAUCHE_ABI_VERSION@
24SCM_INSTALL_DIR = $(GAUCHE_DATA_DIR)/@GAUCHE_VERSION@/lib
25INSTALL         = @INSTALL@
26INSTALL_DATA    = @INSTALL_DATA@
27MKINSTDIR       = $(top_srcdir)/mkinstalldirs
28SLIB_DIR        = @SLIB_DIR@
29
30GENERATED       = gauche/vm/insn.scm gauche/config.scm srfi/*
31CONFIG_GENERATED = Makefile
32
33SUBDIRS  = gauche gauche/vm gauche/serializer gauche/interactive gauche/mop \
34           gauche/package gauche/cgen gauche/experimental gauche/test \
35           gauche/regexp \
36           srfi srfi/160 srfi-14 srfi-29 srfi-146 \
37           srfi-159 srfi-159/internal srfi/159 \
38           binary control data dbd dbm math util compat file \
39           parser parser/peg rfc rfc/http \
40           scheme scheme/mapping scheme/show scheme/stream scheme/vector \
41           text text/unicode text/console www www/cgi lang lang/asm
42
43# Note: srfi/*.scm is generated by src/srfis.scm
44
45SCMFILES = \
46       srfi-4.scm srfi-5.scm srfi-7.scm srfi-9.scm srfi-11.scm \
47       srfi-14.scm srfi-14/query.scm srfi-14/set.scm srfi-18.scm \
48       srfi-25.scm srfi-27.scm \
49       srfi-29.scm srfi-29/bundle.scm srfi-29/format.scm \
50       srfi-37.scm srfi-39.scm srfi-41.scm srfi-42.scm \
51       srfi-55.scm srfi-60.scm srfi-64.scm \
52       srfi-66.scm srfi-69.scm srfi-74.scm srfi-78.scm srfi-96.scm srfi-98.scm \
53       srfi-99.scm srfi-101.scm srfi-106.scm \
54       srfi-112.scm srfi-113.scm srfi-114.scm \
55       srfi-115.scm srfi-116.scm srfi-117.scm srfi-118.scm \
56       srfi-121.scm srfi-124.scm srfi-125.scm \
57       srfi-127.scm srfi-128.scm srfi-129.scm \
58       srfi-130.scm srfi-131.scm srfi-132.scm srfi-134.scm srfi-135.scm \
59       srfi-141.scm srfi-143.scm srfi-146.scm srfi-146/hash.scm \
60       srfi-151.scm srfi-152.scm srfi-154.scm srfi-155.scm srfi-158.scm \
61       srfi-159.scm srfi-159/*.sld srfi-159/*.scm \
62       srfi-159/internal/*.sld srfi-159/internal/*.scm srfi/159/*.scm \
63       srfi-160.scm srfi/*.scm srfi/160/*.scm srfi-162.scm \
64       srfi-170.scm srfi-173.scm srfi-174.scm srfi-175.scm srfi-176.scm \
65       srfi-180.scm srfi-181.scm srfi-185.scm srfi-189.scm \
66       srfi-192.scm srfi-193.scm srfi-198.scm \
67       slib.scm \
68       check-script \
69       gauche/test.scm gauche/test/generative.scm gauche/test/script.scm \
70       gauche/time.scm gauche/connection.scm \
71       gauche/redefutil.scm \
72       gauche/vecutil.scm gauche/portutil.scm \
73       gauche/hashutil.scm gauche/treeutil.scm gauche/computil.scm \
74       gauche/modutil.scm gauche/libutil.scm \
75       gauche/generic-sortutil.scm gauche/fileutil.scm gauche/sysutil.scm \
76       gauche/regexp.scm gauche/regexp/sre.scm \
77       gauche/signal.scm gauche/numerical.scm gauche/let-opt.scm \
78       gauche/logical.scm \
79       gauche/vm/debugger.scm gauche/vm/insn-core.scm gauche/vm/insn.scm \
80       gauche/vm/profiler.scm \
81       gauche/pputil.scm gauche/procedure.scm \
82       gauche/serializer.scm gauche/serializer/aserializer.scm \
83       gauche/parseopt.scm gauche/interactive.scm gauche/interactive/info.scm \
84       gauche/interactive/init.scm \
85       gauche/interactive/toplevel.scm \
86       gauche/interactive/editable-reader.scm \
87       gauche/selector.scm gauche/logger.scm \
88       gauche/common-macros.scm gauche/singleton.scm gauche/validator.scm \
89       gauche/version.scm gauche/partcont.scm gauche/lazy.scm gauche/base.scm \
90       gauche/interpolate.scm gauche/listener.scm \
91       gauche/config.scm gauche/configure.scm gauche/reload.scm \
92       gauche/mop/bound-slot.scm \
93       gauche/mop/instance-pool.scm gauche/mop/validator.scm \
94       gauche/mop/propagate.scm gauche/mop/singleton.scm \
95       gauche/cgen.scm gauche/cgen/unit.scm gauche/cgen/literal.scm \
96       gauche/cgen/cise.scm gauche/cgen/type.scm gauche/cgen/stub.scm \
97       gauche/cgen/precomp.scm gauche/cgen/optimizer.scm \
98       gauche/cgen/standalone.scm gauche/cgen/tmodule.scm \
99       gauche/package.scm gauche/package/build.scm gauche/package/fetch.scm \
100       gauche/package/util.scm gauche/package/compile.scm \
101       gauche/experimental/ref.scm gauche/experimental/lamb.scm \
102       gauche/experimental/app.scm \
103       r7rs-setup.scm \
104       binary/ftype.scm binary/pack.scm \
105       control/job.scm control/mapper.scm control/thread-pool.scm \
106       dbi.scm dbd/null.scm dbm.scm dbm/fsdbm.scm dbm/dump dbm/restore \
107       data/cache.scm data/heap.scm \
108       data/ideque.scm data/imap.scm data/priority-map.scm data/random.scm \
109       data/skew-list.scm \
110       lang/asm/x86_64.scm \
111       math/const.scm math/prime.scm \
112       util/isomorph.scm util/toposort.scm util/tree.scm util/queue.scm \
113       util/digest.scm util/combinations.scm util/lcs.scm util/list.scm \
114       util/record.scm util/relation.scm util/stream.scm util/trie.scm \
115       util/rbtree.scm util/sparse.scm util/dominator.scm \
116       util/levenshtein.scm util/unification.scm \
117       compat/chibi-test.scm compat/jfilter.scm compat/stk.scm \
118       compat/norational.scm compat/r7rs-srfi-tests.scm \
119       file/filter.scm \
120       rfc/mime-port.scm rfc/base64.scm rfc/uri.scm \
121       rfc/cookie.scm rfc/quoted-printable.scm rfc/http.scm rfc/http/tunnel.scm \
122       rfc/hmac.scm rfc/ftp.scm rfc/icmp.scm rfc/ip.scm rfc/json.scm \
123       rfc/uuid.scm \
124       scheme/base.scm scheme/box.scm scheme/bitwise.scm \
125       scheme/bytevector.scm \
126       scheme/case-lambda.scm scheme/char.scm scheme/charset.scm \
127       scheme/comparator.scm scheme/complex.scm scheme/cxr.scm \
128       scheme/division.scm scheme/ephemeron.scm scheme/eval.scm \
129       scheme/file.scm scheme/fixnum.scm scheme/flonum.scm \
130       scheme/generator.scm scheme/hash-table.scm scheme/ideque.scm \
131       scheme/inexact.scm scheme/ilist.scm scheme/lazy.scm \
132       scheme/list-queue.scm scheme/list.scm scheme/load.scm \
133       scheme/lseq.scm scheme/mapping.scm scheme/mapping/hash.scm \
134       scheme/process-context.scm scheme/r5rs.scm scheme/read.scm \
135       scheme/regex.scm scheme/repl.scm scheme/rlist.scm \
136       scheme/set.scm scheme/sort.scm scheme/show.scm \
137       scheme/show/base.scm scheme/show/color.scm scheme/show/columnar.scm \
138       scheme/show/unicode.scm \
139       scheme/stream.scm scheme/stream/primitive.scm scheme/stream/derived.scm \
140       scheme/time.scm scheme/text.scm \
141       scheme/vector.scm scheme/write.scm \
142       scheme/vector/base.scm scheme/vector/u8.scm scheme/vector/s8.scm \
143       scheme/vector/u16.scm scheme/vector/s16.scm \
144       scheme/vector/u32.scm scheme/vector/s32.scm \
145       scheme/vector/u64.scm scheme/vector/s64.scm \
146       scheme/vector/f32.scm scheme/vector/f64.scm \
147       scheme/vector/c64.scm scheme/vector/c128.scm \
148       text/csv.scm text/edn.scm text/external-editor.scm \
149       text/parse.scm text/tree.scm text/sql.scm \
150       text/html-lite.scm text/info.scm text/diff.scm \
151       text/pager.scm text/progress.scm \
152       text/console/framebuffer.scm text/console/wide-char-setting.scm \
153       text/console/windows.scm \
154       text/template.scm \
155       text/unicode.scm text/unicode/ucd.scm text/unicode/codeset.scm \
156       www/cgi.scm www/cgi-test.scm www/cgi/test.scm www/css.scm
157
158all:
159
160check:
161
162install:
163	for d in $(SUBDIRS); do \
164	  "$(MKINSTDIR)" "$(DESTDIR)$(SCM_INSTALL_DIR)/$$d"; \
165	done
166	for p in $(SCMFILES); do \
167	  $(INSTALL_DATA) "$$p" "$(DESTDIR)$(SCM_INSTALL_DIR)/$$p"; \
168	done
169	if test -f slibcat; then \
170	  $(INSTALL_DATA) slibcat "$(DESTDIR)$(SCM_INSTALL_DIR)/slibcat"; \
171	fi
172
173uninstall:
174
175# If we have slib, creates catalog file for Gauche.   This should be called
176# after everything is installed.
177# For RPM, this has to be called in the postinstall script instead of
178# installation script.
179slibcat :
180	if test -f "$(SLIB_DIR)/require.scm" && test $(build) = $(host) ; then \
181	  "$(exec_prefix)/bin/gosh" -ftest -uslib -E"require 'new-catalog" -Eexit;\
182	fi
183
184# Some package systems don't allow to run postinstall commands.  For such
185# systems, this target tries to create "slibcat" within this directory
186# before installing gosh.
187slibcat-in-place :
188	if test -f "$(SLIB_DIR)/require.scm"; then \
189	  $(SHELL) ./mklibcat $(top_builddir)/src/gosh ; \
190	fi
191
192clean:
193	rm -rf core slibcat *.sci *~
194	for d in $(SUBDIRS); do if test -d $$d; then (cd $$d; rm -f core *.sci *~); fi; done
195
196distclean: clean
197	rm -f $(CONFIG_GENERATED)
198
199maintainer-clean: clean
200	rm -f $(CONFIG_GENERATED) $(GENERATED)
201
202