3 ### Build script for `runlisp'
5 ### (c) 2020 Mark Wooding
8 ###----- Licensing notice ---------------------------------------------------
10 ### This file is part of Runlisp, a tool for invoking Common Lisp scripts.
12 ### Runlisp is free software: you can redistribute it and/or modify it
13 ### under the terms of the GNU General Public License as published by the
14 ### Free Software Foundation; either version 3 of the License, or (at your
15 ### option) any later version.
17 ### Runlisp is distributed in the hope that it will be useful, but WITHOUT
18 ### ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 ### FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 ### You should have received a copy of the GNU General Public License
23 ### along with Runlisp. If not, see <https://www.gnu.org/licenses/>.
25 include $(top_srcdir)/vars.am
34 ACLOCAL_AMFLAGS = -Im4
36 ###--------------------------------------------------------------------------
37 ### A library of common code.
39 noinst_LIBRARIES += librunlisp.a
40 librunlisp_a_SOURCES =
42 librunlisp_a_SOURCES += common.c common.h
43 librunlisp_a_SOURCES += lib.c lib.h
44 librunlisp_a_SOURCES += mdwopt.c mdwopt.h
45 librunlisp_a_SOURCES += sha256.c sha256.h
47 ###--------------------------------------------------------------------------
48 ### The main driver program.
50 bin_PROGRAMS += runlisp
51 runlisp_SOURCES = runlisp.c
52 runlisp_LDADD = librunlisp.a
54 doc_DATA += runlisp.pdf
55 EXTRA_DIST += runlisp.1.in
57 ###--------------------------------------------------------------------------
58 ### Additional machinery.
60 pkgdata_DATA += eval.lisp
61 EXTRA_DIST += eval.lisp
63 pkgdata_SCRIPTS += dump-ecl
64 EXTRA_DIST += dump-ecl
66 bin_PROGRAMS += query-runlisp-config
67 query_runlisp_config_SOURCES = query-runlisp-config.c
68 query_runlisp_config_LDADD = librunlisp.a
69 man_MANS += query-runlisp-config.1
70 doc_DATA += query-runlisp-config.pdf
71 EXTRA_DIST += query-runlisp-config.1.in
73 man_MANS += runlisp.conf.5
74 doc_DATA += runlisp.conf.pdf
75 EXTRA_DIST += runlisp.conf.5.in
77 EXTRA_DIST += runlisp-base.conf
79 $(MKDIR_P) $(DESTDIR)$(pkgconfdir)/runlisp.d
80 cp $(srcdir)/runlisp-base.conf \
81 $(DESTDIR)$(pkgconfdir)/runlisp.d/0base.conf
83 rm -f $(DESTDIR)$(pkgconfdir)/runlisp.d/0base.conf
85 EXTRA_DIST += runlisp.conf
87 $(MKDIR_P) $(DESTDIR)$(pkgconfdir)
88 if ! [ -f $(DESTDIR)$(pkgconfdir)/runlisp.conf ]; then \
89 cp $(srcdir)/runlisp.conf $(DESTDIR)$(pkgconfdir)/; \
92 rm -f $(DESTDIR)$(pkgconfdir)/runlisp.conf
94 ###--------------------------------------------------------------------------
97 bin_PROGRAMS += dump-runlisp-image
98 dump_runlisp_image_SOURCES = dump-runlisp-image.c
99 dump_runlisp_image_LDADD = librunlisp.a
100 man_MANS += dump-runlisp-image.1
101 doc_DATA += dump-runlisp-image.pdf
102 EXTRA_DIST += dump-runlisp-image.1.in
104 DUMP_RUNLISP_IMAGE = $(v_dump)\
105 ASDF_OUTPUT_TRANSLATIONS='( \
106 :output-translations \
107 :ignore-inherited-configuration \
108 (t ("$(abs_builddir)/" "fasl/" \
109 :implementation-type :**/ :*.*.*)))' \
110 ./dump-runlisp-image -f -O$@ \
111 -c$(srcdir)/runlisp-base.conf \
113 clean-local::; rm -fr fasl
115 v_dump = $(v_dump_@AM_V@)
116 v_dump_ = $(v_dump_@AM_DEFAULT_V@)
117 v_dump_0 = @echo " DUMP $@";
120 noinst_DATA += $(IMAGES)
123 IMAGES += sbcl+asdf.core
124 CLEANFILES += sbcl+asdf.core sbcl+asdf.core-*
125 sbcl+asdf.core: dump-runlisp-image runlisp-base.conf
126 $(DUMP_RUNLISP_IMAGE) sbcl
130 IMAGES += ccl+asdf.image
131 CLEANFILES += ccl+asdf.image ccl+asdf.image-*
132 ccl+asdf.image: dump-runlisp-image runlisp-base.conf
133 $(DUMP_RUNLISP_IMAGE) ccl
137 IMAGES += clisp+asdf.mem
138 CLEANFILES += clisp+asdf.mem clisp+asdf.mem-*
139 clisp+asdf.mem: dump-runlisp-image runlisp-base.conf
140 $(DUMP_RUNLISP_IMAGE) clisp
145 CLEANFILES += ecl+asdf ecl+asdf-*
146 ecl+asdf: dump-runlisp-image runlisp-base.conf dump-ecl
147 $(DUMP_RUNLISP_IMAGE) -odata-dir=$(srcdir) ecl
151 IMAGES += cmucl+asdf.core
152 CLEANFILES += cmucl+asdf.core cmucl+asdf.core-*
153 cmucl+asdf.core: dump-runlisp-image runlisp-base.conf
154 $(DUMP_RUNLISP_IMAGE) cmucl
158 mkdir -p $(DESTDIR)$(imagedir)
159 set -e; for i in $(IMAGES); do \
160 j=$$(readlink $$i); \
161 cp $$j $(DESTDIR)$(imagedir)/$$j.new && \
162 mv $(DESTDIR)$(imagedir)/$$j.new \
163 $(DESTDIR)$(imagedir)/$$j; \
164 ln -sf $$j $(DESTDIR)$(imagedir)/$$i; \
168 set -e; for i in $(IMAGES); do \
169 if j=$$(readlink $(DESTDIR)$(imagedir)/$$i); then \
172 $$i-*) rm -f $(DESTDIR)$(imagedir)/$$j ;; \
175 rm -f $(DESTDIR)$(imagedir)/$$i; \
178 ###--------------------------------------------------------------------------
179 ### Other subdirectories.
183 EXTRA_DIST += README.org
193 ###--------------------------------------------------------------------------
198 echo $(VERSION) >$(distdir)/RELEASE
200 ## Additional build tools.
201 EXTRA_DIST += config/auto-version
202 EXTRA_DIST += config/confsubst
205 EXTRA_DIST += debian/changelog debian/copyright debian/compat
206 EXTRA_DIST += debian/control debian/rules debian/source/format
208 EXTRA_DIST += debian/runlisp.install debian/runlisp.dirs
209 EXTRA_DIST += debian/runlisp.config debian/runlisp.templates
210 EXTRA_DIST += debian/po/POTFILES.in debian/po/templates.pot
211 EXTRA_DIST += debian/runlisp.postinst
212 EXTRA_DIST += debian/runlisp.prerm debian/runlisp.postrm
213 EXTRA_DIST += debian/runlisp.triggers
215 ###----- That's all, folks --------------------------------------------------