]> thyrsus.com Git - intercal.git/commit
Drastic simplification of the build system.
authorEric S. Raymond <esr@thyrsus.com>
Tue, 31 Aug 2010 09:20:09 +0000 (05:20 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 31 Aug 2010 09:20:09 +0000 (05:20 -0400)
commitdc3512a2c5189dc00ec3b38c2650b22595ae0141
tree00ead7ad6c52339f2841887e8b945ea46dbf5305
parent212311f7fe57c5ff3c1ec77aa6779f6eab5bbdf0
Drastic simplification of the build system.

The build system as I found it had several interrelated flaws: (1) it
kept generated files such as aclocal.m4 and configure in the repo,
causing many spurious diffs when they were rebuilt, (2) it did a lot of
grubby copying of source files into the root directory, (3) it was
generally overcomplicated, playing strange games with GNU tools that
are already difficult to understand.

Most of the problems were readily solved by the modern practice of
having a autogen.sh script to bootstrap the build from a state of no
Makefile and no configure.  The whole buildaux directory is gone
except for Makefile.am and ylwrap; those now live in the top-level
directory. Makefile.am is now much simpler, as is configure.ac.

To make running the compiler in place for regression-testing continue
working, I had to split the ICKDATADIR variable; it's now ICKSYSDIR
for INTERCAL system libraries and ICKCSKELDIR for the skeleton and
yuk-related files.  Both will still point at /usr/local/share by
default.

I've probably broken the DESTDIR/build-directory logic; that will need
to be fixed.  Relatedly, more could probably be done to stop the
build from crapping all over the distribution toplevel directory. Also,
the directory variables need to be re-thought and probably renamed.
But this is a good start.

All regression tests pass from a clean build.
22 files changed:
.gitignore
Makefile.am [new file with mode: 0644]
README
aclocal.m4 [deleted file]
autogen.sh [new file with mode: 0755]
buildaux/Makefile.am [deleted file]
buildaux/Makefile.in [deleted file]
buildaux/buildconfig [deleted file]
buildaux/buildconfig.ac [deleted file]
buildaux/depcomp [deleted file]
buildaux/hostmak.in [deleted file]
buildaux/install-sh [deleted file]
buildaux/missing [deleted file]
buildaux/ylwrap [deleted file]
configure [deleted file]
configure.ac
pit/Makefile
pit/syslib.i [deleted file]
src/bconfigh.in [deleted file]
src/oil.y
src/perpet.c
ylwrap [new file with mode: 0644]