SUBDIRS =
-pkgdata_DATA =
image_DATA =
image_SCRIPTS =
ACLOCAL_AMFLAGS = -Im4
+###--------------------------------------------------------------------------
+### A library of common code.
+
+noinst_LIBRARIES += librunlisp.a
+librunlisp_a_SOURCES =
+
+librunlisp_a_SOURCES += common.c common.h
+librunlisp_a_SOURCES += lib.c lib.h
+librunlisp_a_SOURCES += mdwopt.c mdwopt.h
+librunlisp_a_SOURCES += sha256.c sha256.h
+
###--------------------------------------------------------------------------
### The main driver program.
bin_PROGRAMS += runlisp
runlisp_SOURCES = runlisp.c
-runlisp_SOURCES += common.c common.h
-runlisp_SOURCES += lib.c lib.h
-runlisp_SOURCES += mdwopt.c mdwopt.h
+runlisp_LDADD = librunlisp.a
man_MANS += runlisp.1
-
-noinst_PROGRAMS += old-runlisp
-old_runlisp_SOURCES = old-runlisp.c
-old_runlisp_SOURCES += lib.c lib.h
-
-noinst_PROGRAMS += toy
-toy_SOURCES = toy.c
-toy_SOURCES += lib.c lib.h
+doc_DATA += runlisp.pdf
+EXTRA_DIST += runlisp.1.in
###--------------------------------------------------------------------------
### Additional machinery.
pkgdata_DATA += eval.lisp
EXTRA_DIST += eval.lisp
+pkgdata_SCRIPTS += dump-ecl
+EXTRA_DIST += dump-ecl
+
+bin_PROGRAMS += query-runlisp-config
+query_runlisp_config_SOURCES = query-runlisp-config.c
+query_runlisp_config_LDADD = librunlisp.a
+man_MANS += query-runlisp-config.1
+doc_DATA += query-runlisp-config.pdf
+EXTRA_DIST += query-runlisp-config.1.in
+
+man_MANS += runlisp.conf.5
+doc_DATA += runlisp.conf.pdf
+EXTRA_DIST += runlisp.conf.5.in
+
+EXTRA_DIST += runlisp-base.conf
+install-data-hook::
+ $(MKDIR_P) $(DESTDIR)$(pkgconfdir)/runlisp.d
+ cp $(srcdir)/runlisp-base.conf \
+ $(DESTDIR)$(pkgconfdir)/runlisp.d/0base.conf
+uninstall-hook::
+ rm -f $(DESTDIR)$(pkgconfdir)/runlisp.d/0base.conf
+
+EXTRA_DIST += runlisp.conf
+install-data-hook::
+ $(MKDIR_P) $(DESTDIR)$(pkgconfdir)
+ if ! [ -f $(DESTDIR)$(pkgconfdir)/runlisp.conf ]; then \
+ cp $(srcdir)/runlisp.conf $(DESTDIR)$(pkgconfdir)/; \
+ fi
+uninstall-hook::
+ rm -f $(DESTDIR)$(pkgconfdir)/runlisp.conf
+
###--------------------------------------------------------------------------
### Image dumping.
bin_PROGRAMS += dump-runlisp-image
dump_runlisp_image_SOURCES = dump-runlisp-image.c
-dump_runlisp_image_SOURCES += common.c common.h
-dump_runlisp_image_SOURCES += lib.c lib.h
-dump_runlisp_image_SOURCES += mdwopt.c mdwopt.h
+dump_runlisp_image_LDADD = librunlisp.a
man_MANS += dump-runlisp-image.1
-
-DUMP_RUNLISP_IMAGE = $(v_dump)./dump-runlisp-image \
- -f -c$(srcdir)/runlisp.conf -O$@
+doc_DATA += dump-runlisp-image.pdf
+EXTRA_DIST += dump-runlisp-image.1.in
+
+DUMP_RUNLISP_IMAGE = $(v_dump)\
+ ASDF_OUTPUT_TRANSLATIONS='( \
+ :output-translations \
+ :ignore-inherited-configuration \
+ (t ("$(abs_builddir)/" "fasl/" \
+ :implementation-type :**/ :*.*.*)))' \
+ ./dump-runlisp-image -f -O$@ \
+ -c$(srcdir)/runlisp-base.conf \
+ -odata-dir=$(srcdir)
+clean-local::; rm -fr fasl
v_dump = $(v_dump_@AM_V@)
v_dump_ = $(v_dump_@AM_DEFAULT_V@)
v_dump_0 = @echo " DUMP $@";
+IMAGES =
+noinst_DATA += $(IMAGES)
+
if DUMP_SBCL
-image_DATA += sbcl+asdf.core
-CLEANFILES += sbcl+asdf.core
-sbcl+asdf.core: dump-runlisp-image runlisp.conf
+IMAGES += sbcl+asdf.core
+CLEANFILES += sbcl+asdf.core sbcl+asdf.core-*
+sbcl+asdf.core: dump-runlisp-image runlisp-base.conf
$(DUMP_RUNLISP_IMAGE) sbcl
endif
if DUMP_CCL
-image_DATA += ccl+asdf.image
-CLEANFILES += ccl+asdf.image
-ccl+asdf.image: dump-runlisp-image runlisp.conf
+IMAGES += ccl+asdf.image
+CLEANFILES += ccl+asdf.image ccl+asdf.image-*
+ccl+asdf.image: dump-runlisp-image runlisp-base.conf
$(DUMP_RUNLISP_IMAGE) ccl
endif
if DUMP_CLISP
-image_DATA += clisp+asdf.mem
-CLEANFILES += clisp+asdf.mem
-clisp+asdf.mem: dump-runlisp-image runlisp.conf
+IMAGES += clisp+asdf.mem
+CLEANFILES += clisp+asdf.mem clisp+asdf.mem-*
+clisp+asdf.mem: dump-runlisp-image runlisp-base.conf
$(DUMP_RUNLISP_IMAGE) clisp
endif
if DUMP_ECL
-image_SCRIPTS += ecl+asdf
-CLEANFILES += ecl+asdf
-ecl+asdf: dump-runlisp-image runlisp.conf
+IMAGES += ecl+asdf
+CLEANFILES += ecl+asdf ecl+asdf-*
+ecl+asdf: dump-runlisp-image runlisp-base.conf dump-ecl
$(DUMP_RUNLISP_IMAGE) -odata-dir=$(srcdir) ecl
endif
if DUMP_CMUCL
-image_DATA += cmucl+asdf.core
-CLEANFILES += cmucl+asdf.core
-cmucl+asdf.core: dump-runlisp-image runlisp.conf
+IMAGES += cmucl+asdf.core
+CLEANFILES += cmucl+asdf.core cmucl+asdf.core-*
+cmucl+asdf.core: dump-runlisp-image runlisp-base.conf
$(DUMP_RUNLISP_IMAGE) cmucl
endif
+install-data-hook::
+ mkdir -p $(DESTDIR)$(imagedir)
+ set -e; for i in $(IMAGES); do \
+ j=$$(readlink $$i); \
+ cp $$j $(DESTDIR)$(imagedir)/$$j.new && \
+ mv $(DESTDIR)$(imagedir)/$$j.new \
+ $(DESTDIR)$(imagedir)/$$j; \
+ ln -sf $$j $(DESTDIR)$(imagedir)/$$i; \
+ done
+
+uninstall-hook::
+ set -e; for i in $(IMAGES); do \
+ if j=$$(readlink $(DESTDIR)$(imagedir)/$$i); then \
+ case $$j in \
+ $$i-*[!0-9a-f]) ;; \
+ $$i-*) rm -f $(DESTDIR)$(imagedir)/$$j ;; \
+ esac; \
+ fi; \
+ rm -f $(DESTDIR)$(imagedir)/$$i; \
+ done
+
###--------------------------------------------------------------------------
-### Benchmarking and testing.
+### Other subdirectories.
+## Documentation.
+SUBDIRS += doc
+EXTRA_DIST += README.org
+
+## Testing.
+SUBDIRS += t
+
+## Benchmarking.
if BENCHMARK
SUBDIRS += bench
endif
-SUBDIRS += t
-
###--------------------------------------------------------------------------
### Distribution.
## Additional build tools.
EXTRA_DIST += config/auto-version
+EXTRA_DIST += config/confsubst
+
+## Debian.
+EXTRA_DIST += debian/changelog debian/copyright debian/compat
+EXTRA_DIST += debian/control debian/rules debian/source/format
+
+EXTRA_DIST += debian/runlisp.install debian/runlisp.dirs
+EXTRA_DIST += debian/runlisp.config debian/runlisp.templates
+EXTRA_DIST += debian/po/POTFILES.in debian/po/templates.pot
+EXTRA_DIST += debian/runlisp.postinst
+EXTRA_DIST += debian/runlisp.prerm debian/runlisp.postrm
+EXTRA_DIST += debian/runlisp.triggers
###----- That's all, folks --------------------------------------------------