Configure is my own autoconfigure script for C programs, something like the GNU autoconf program, except that it’s
Configure is not nearly as complete as autoconf, because I’m only adding things to it as I need them.
Currently, configure is used in most of the code I write (and it’s been
shoehorned into my copies of libgd and
dropbear) because it’s being built
for macos-current, RHELCentos-current, and FreeBSD 4.1
(if I set up a VM for Mastodon Linux, I will fire up an ancient pell
image and try building for SLS Linux as well.)
Levee,
Magicfilter,
ndialog, xrpm,
Postoffice,
cwatch,
markdown,
and
annotations end up using most of the features
in configure, and I tend to test new features out in one of those projects
and then pull it back into the baseline before spinning it out everywhere
else to see if it makes other code fail.
v0.62 – after a decade for the code to
mature – is a rollup release for 10 years of incremental changes
to the autoconfiguration process as modern Unices gaze more deeply
into their own navels. Documentation is being worked on, but it
is not finished so you’re stuck with looking at the configure.sh
examples in the code listed above.
v0.59, is, as you can probably guess, a rollup of a bunch of tiny feature-ettes. It contains:
--srcdir
.config.md
script that
is used to create directory trees in a hopefully portable manner.AC_SCALAR_TYPES
function, which creates types for
32 (DWORD), 16(WORD), and 8(BYTE) bit scalars.AC_QUIET
, which makes a detect function
run without any output.AC_CHECK_STRUCT
function, which checks for the
existance of a structure.AC_PROG_AWK
function, which checks for the
existance of awk
.AC_INCLUDE
function, which adds a #include
to config.h
.AC_CHECK_RESOLVER
function, which looks for
a bind4 compatable version of the Berkeley resolver library.v0.53 starts adding configure-side
support for --srcdir
(installing a package in one directory
and building it in a different directory.) This isn’t documented
yet (because it’s actually fairly complicated, and hasn’t been
tested anywhere except Linux and
FreeBSD, but it roughly works as
follows; in your Makefile.in’s, you set VPATH = @srcdir@
,
define your own makefile rules so that .c.o:
puts .o
files out in the current directory (Berkeley make does this
automatically, GNU make does not), modify your compilation
rules so they include things from @srcdir@/{place}
instead
of simple {place}
, and finally when you publish a release of
your software, running joincfg.sh
to collapse configure.inc
and configure.sh
together. (the magicfilter package
does this from version 2.2.i onwards.)
v0.51 defines a OS_<type>
variable
in config.h
and configure.sh
, and defines the substitions
@CONFIGURE_FILES@
(the files created by configure.sh
)
and @GENERATED_FILES@
(the files generated from .in
files during AC_OUTPUT
.)
v0.4 fixes a little bug in the generation
of the config.cmd
file; CC
and CFLAGS
were not being
quoted properly on some platforms.
v0.3 has a few changes in
configure.inc
that make it work on Solaris
and SLS Linux.
I’ve also added an install_manpages
script that can be
used to do what you’d expect it to do.
v0.2 has more detail in the HOWTO
and
some tweaks to make it
work better on Irix
machines.
v0.1 has a minimal testsuite, a small
samples directory, and the beginnings of a HOWTO
file to tell
you how it’s done.