Makefile.am: Drop `.fasl' files in build directory when making images.
[runlisp] / Makefile.am
index 9bb717c..b13d107 100644 (file)
@@ -42,6 +42,7 @@ 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.
@@ -51,15 +52,7 @@ runlisp_SOURCES               = runlisp.c
 runlisp_LDADD           = librunlisp.a
 man_MANS               += runlisp.1
 doc_DATA               += runlisp.pdf
-EXTRA_DIST             += runlisp.1
-
-noinst_PROGRAMS                += old-runlisp
-old_runlisp_SOURCES     = old-runlisp.c
-old_runlisp_LDADD       = librunlisp.a
-
-noinst_PROGRAMS                += toy
-toy_SOURCES             = toy.c
-toy_SOURCES            += lib.c lib.h
+EXTRA_DIST             += runlisp.1.in
 
 ###--------------------------------------------------------------------------
 ### Additional machinery.
@@ -67,7 +60,7 @@ toy_SOURCES           += lib.c lib.h
 pkgdata_DATA           += eval.lisp
 EXTRA_DIST             += eval.lisp
 
-pkgdata_DATA           += dump-ecl
+pkgdata_SCRIPTS                += dump-ecl
 EXTRA_DIST             += dump-ecl
 
 bin_PROGRAMS           += query-runlisp-config
@@ -75,9 +68,11 @@ 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::
@@ -104,55 +99,88 @@ dump_runlisp_image_SOURCES  = dump-runlisp-image.c
 dump_runlisp_image_LDADD = librunlisp.a
 man_MANS               += dump-runlisp-image.1
 doc_DATA               += dump-runlisp-image.pdf
-EXTRA_DIST             += dump-runlisp-image.1
-
-DUMP_RUNLISP_IMAGE      = $(v_dump)./dump-runlisp-image \
-                               -f -c$(srcdir)/runlisp-base.conf -O$@
+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
+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
+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
+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
+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
+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
+
 ###--------------------------------------------------------------------------
 ### Other subdirectories.
 
 ## Documentation.
 SUBDIRS                        += doc
+EXTRA_DIST             += README.org
 
 ## Testing.
 SUBDIRS                        += t
@@ -171,5 +199,6 @@ dist-hook::
 
 ## Additional build tools.
 EXTRA_DIST             += config/auto-version
+EXTRA_DIST             += config/confsubst
 
 ###----- That's all, folks --------------------------------------------------