@@@ more wip
[runlisp] / Makefile.am
index 02e9b42..9bb717c 100644 (file)
@@ -26,7 +26,6 @@ include $(top_srcdir)/vars.am
 
 SUBDIRS                         =
 
-pkgdata_DATA            =
 image_DATA              =
 image_SCRIPTS           =
 
@@ -35,11 +34,32 @@ SUBDIRS                     += .
 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
+
+###--------------------------------------------------------------------------
 ### The main driver program.
 
 bin_PROGRAMS           += runlisp
 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
 
 ###--------------------------------------------------------------------------
 ### Additional machinery.
@@ -47,67 +67,101 @@ man_MANS           += runlisp.1
 pkgdata_DATA           += eval.lisp
 EXTRA_DIST             += eval.lisp
 
+pkgdata_DATA           += 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
+
+man_MANS               += runlisp.conf.5
+doc_DATA               += runlisp.conf.pdf
+
+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.
 
-nodist_bin_SCRIPTS     += dump-runlisp-image
+bin_PROGRAMS           += dump-runlisp-image
+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$@
 
 v_dump                  = $(v_dump_@AM_V@)
 v_dump_                         = $(v_dump_@AM_DEFAULT_V@)
 v_dump_0                = @echo "  DUMP     $@";
 
-EXTRA_DIST             += dump-runlisp-image.in
-CLEANFILES             += dump-runlisp-image
-dump-runlisp-image: dump-runlisp-image.in
-       $(SUBST) $(srcdir)/dump-runlisp-image.in >$@.new \
-               $(SUBSTITUTIONS) && \
-               chmod +x $@.new && mv $@.new $@
-
 if DUMP_SBCL
 image_DATA             += sbcl+asdf.core
 CLEANFILES             += sbcl+asdf.core
-sbcl+asdf.core: dump-runlisp-image
-       $(v_dump)./dump-runlisp-image -o$@ sbcl
+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
-       $(v_dump)./dump-runlisp-image -o$@ ccl
+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
-       $(v_dump)./dump-runlisp-image -o$@ clisp
+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
-       $(v_dump)./dump-runlisp-image -o$@ ecl
+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
-       $(v_dump)./dump-runlisp-image -o$@ cmucl
+cmucl+asdf.core: dump-runlisp-image runlisp-base.conf
+       $(DUMP_RUNLISP_IMAGE) cmucl
 endif
 
 ###--------------------------------------------------------------------------
-### Benchmarking and testing.
+### Other subdirectories.
 
+## Documentation.
+SUBDIRS                        += doc
+
+## Testing.
+SUBDIRS                        += t
+
+## Benchmarking.
 if BENCHMARK
 SUBDIRS                        += bench
 endif
 
-SUBDIRS                        += t
-
 ###--------------------------------------------------------------------------
 ### Distribution.