doc/list-exports.lisp: Sort sibling classes by name in the tree.
[sod] / src / Makefile.am
index e71c5c0..c7779f9 100644 (file)
 ### along with SOD; if not, write to the Free Software Foundation,
 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-bin_PROGRAMS            =
+include        $(top_srcdir)/vars.am
 
-CLEANFILES              =
-
-pkglispsrcdir           = $(lispsrcdir)/$(PACKAGE)
-
-dist_pkglispsrc_DATA    =
+nobase_dist_pkglispsrc_DATA = $(LISP_SOURCES)
+LISP_SOURCES            =
 
 ###--------------------------------------------------------------------------
 ### The source files.
 
 ## The system definition file.
-dist_pkglispsrc_DATA   += sod.asd
+LISP_SOURCES           += sod.asd
 
 ## The package definition file.
-dist_pkglispsrc_DATA   += package.lisp
+LISP_SOURCES           += package.lisp
 
 ## General utilities.
-dist_pkglispsrc_DATA   += utilities.lisp
+LISP_SOURCES           += utilities.lisp
 
 ## The parser library.
-dist_pkglispsrc_DATA   += parser/floc-proto.lisp parser/floc-impl.lisp
-dist_pkglispsrc_DATA   += parser/streams-proto.lisp parser/streams-impl.lisp
-dist_pkglispsrc_DATA   += parser/scanner-proto.lisp parser/scanner-impl.lisp
-dist_pkglispsrc_DATA   += parser/scanner-charbuf-impl.lisp
-dist_pkglispsrc_DATA   += parser/scanner-token-impl.lisp
-dist_pkglispsrc_DATA   += parser/parser-proto.lisp parser/parser-impl.lisp
-dist_pkglispsrc_DATA   += parser/parser-expr-proto.lisp \
+LISP_SOURCES           += parser/package.lisp
+LISP_SOURCES           += parser/floc-proto.lisp parser/floc-impl.lisp
+LISP_SOURCES           += parser/streams-proto.lisp parser/streams-impl.lisp
+LISP_SOURCES           += parser/scanner-proto.lisp parser/scanner-impl.lisp
+LISP_SOURCES           += parser/scanner-charbuf-impl.lisp
+LISP_SOURCES           += parser/scanner-token-impl.lisp
+LISP_SOURCES           += parser/parser-proto.lisp parser/parser-impl.lisp
+LISP_SOURCES           += parser/parser-expr-proto.lisp \
                                parser/parser-expr-impl.lisp
-dist_pkglispsrc_DATA   += parser/scanner-context-impl.lisp
+LISP_SOURCES           += parser/scanner-context-impl.lisp
 
 ## Lexical analysis and translator-specific parser utilities.
-dist_pkglispsrc_DATA   += lexer-proto.lisp lexer-impl.lisp
-dist_pkglispsrc_DATA   += fragment-parse.lisp
+LISP_SOURCES           += lexer-proto.lisp lexer-impl.lisp
+LISP_SOURCES           += fragment-parse.lisp
 
 ## C type representation.
-dist_pkglispsrc_DATA   += c-types-proto.lisp c-types-impl.lisp \
+LISP_SOURCES           += c-types-proto.lisp c-types-impl.lisp \
                                c-types-parse.lisp
 
 ## Property sets.
-dist_pkglispsrc_DATA   += pset-proto.lisp pset-impl.lisp pset-parse.lisp
+LISP_SOURCES           += pset-proto.lisp pset-impl.lisp pset-parse.lisp
 
 ## Code generation.
-dist_pkglispsrc_DATA   += codegen-proto.lisp codegen-impl.lisp
+LISP_SOURCES           += codegen-proto.lisp codegen-impl.lisp
 
 ## Output machinery.
-dist_pkglispsrc_DATA   += output-proto.lisp output-impl.lisp
+LISP_SOURCES           += output-proto.lisp output-impl.lisp
 
 ## Modules.
-dist_pkglispsrc_DATA   += module-proto.lisp module-impl.lisp
-dist_pkglispsrc_DATA   += module-parse.lisp module-output.lisp
-dist_pkglispsrc_DATA   += builtin.lisp
+LISP_SOURCES           += module-proto.lisp module-impl.lisp
+LISP_SOURCES           += module-parse.lisp module-output.lisp
+LISP_SOURCES           += builtin.lisp
 
 ## Class representation and layout.
-dist_pkglispsrc_DATA   += classes.lisp c-types-class-impl.lisp
-dist_pkglispsrc_DATA   += class-utilities.lisp
-dist_pkglispsrc_DATA   += class-make-proto.lisp class-make-impl.lisp
-dist_pkglispsrc_DATA   += class-layout-proto.lisp class-layout-impl.lisp
-dist_pkglispsrc_DATA   += class-finalize-proto.lisp class-finalize-impl.lisp
-dist_pkglispsrc_DATA   += class-output.lisp
+LISP_SOURCES           += classes.lisp c-types-class-impl.lisp
+LISP_SOURCES           += class-utilities.lisp
+LISP_SOURCES           += class-make-proto.lisp class-make-impl.lisp
+LISP_SOURCES           += class-layout-proto.lisp class-layout-impl.lisp
+LISP_SOURCES           += class-finalize-proto.lisp class-finalize-impl.lisp
+LISP_SOURCES           += class-output.lisp
 
 ## Method generation.
-dist_pkglispsrc_DATA   += method-proto.lisp method-impl.lisp
+LISP_SOURCES           += method-proto.lisp method-impl.lisp
+LISP_SOURCES           += method-aggregate.lisp
 
 ## User interface.
-dist_pkglispsrc_DATA   += sod-frontend.asd
-dist_pkglispsrc_DATA   += frontend.lisp optparse.lisp
+LISP_SOURCES           += sod-frontend.asd
+LISP_SOURCES           += frontend.lisp optparse.lisp
+
+## Finishing touches.
+LISP_SOURCES           += final.lisp
 
 ###--------------------------------------------------------------------------
 ### Constructing an output image.
 
-CLEANFILES             += *.$(FASL_TYPE)
+CLEANFILES             += *.$(fasl) parser/*.$(fasl)
 
+## Building the executable image.
 bin_PROGRAMS           += sod
 sod_SOURCES             =
-sod: $(dist_pkglispsrc_DATA)
-       set -ex; true_srcdir=$$(cd $(srcdir); pwd); \
+sod: $(LISP_SOURCES)
+       $(V_DUMP)true_srcdir=$$(cd $(srcdir); pwd); \
        ASDF_OUTPUT_TRANSLATIONS=$$true_srcdir:$(abs_builddir): \
-       $(CL_LAUNCH) -o sod -d ! -l $(LISPSYS) +I -S $$true_srcdir/ \
+       $(CL_LAUNCH) -o sod -d ! -l $(LISPSYS) +I -S $$true_srcdir/: \
                -s sod-frontend -r sod-frontend:main
 
 ###--------------------------------------------------------------------------
+### Unit testing.
+
+## The system definition.
+EXTRA_DIST             += sod-test.asd
+
+## Basic utilities.
+EXTRA_DIST             += test-base.lisp
+
+## Parser tests.
+EXTRA_DIST             += parser/parser-test.lisp
+EXTRA_DIST             += parser/scanner-charbuf-test.lisp
+
+## Translator tests.
+EXTRA_DIST             += c-types-test.lisp
+EXTRA_DIST             += codegen-test.lisp
+EXTRA_DIST             += lexer-test.lisp
+
+## Running the Lisp tests.
+check-local:
+       $(V_TEST)true_srcdir=$$(cd $(srcdir); pwd); \
+       ASDF_OUTPUT_TRANSLATIONS=$$true_srcdir:$(abs_builddir): \
+       $(CL_LAUNCH) -l $(LISPSYS) -s sod-test +I -S $$true_srcdir/: \
+               -i '(handler-case ;\
+                     (progn ;\
+                       (setf sod-test:*build-version* "$(VERSION)") ;\
+                       (asdf:test-system "sod")) ;\
+                     (error (cond) ;\
+                       (format *error-output* "ERR: ~A~%" cond) ;\
+                       (cl-launch:quit 1)))'
+
+###--------------------------------------------------------------------------
 ### Installation.
 
 ## We want a symlink $(lispsysdir)/sod.asd -> $(lispsrcdir)/sod/sod.asd.  It
@@ -130,7 +164,7 @@ install-data-local:
        dots=$$(echo $$fwd | sed 's/[^ ][^ ]*/../g'); \
        rel=$$(echo $$dots $$twd | tr " " "/"); \
        echo >&2 "ln -s $$rel $$to"; \
-       ln -s $$rel $(DESTDIR)$$from.new; \
-       mv $(DESTDIR)$$from.new $(DESTDIR)$$from
+       ln -s $$rel $(DESTDIR)$$from/sod.asd.new; \
+       mv $(DESTDIR)$$from/sod.asd.new $(DESTDIR)$$from/sod.asd
 
 ###----- That's all, folks --------------------------------------------------