magic/configure

18 lines
756 B
Plaintext
Raw Normal View History

#!/bin/sh
#
# Use: ./configure [args]
#
# where [args] are arguments passed to the scripts/configure script
#
# This script is a workaround to GNU autoconf which can't deal with having
# all of its config scripts in a different directory than the configure
# script itself. It also sets up CFLAGS without the default optimizer
# flag (-O2).
build: make configure relocatable (out-of-tree) Enable `mkdir build; cd build; ../configure` to run entirely in the build directory, with generated config landing there instead of in the source tree. This is the autoconf-layer groundwork for a full VPATH build; the make layer (defs.mak/rules.mak VPATH support, per-dir orchestration) is still to come, so an out-of-tree `make` is not yet expected to work. Changes: * configure (wrapper): run the generated config.status in the *current* directory with --srcdir pointing back at the source tree (instead of `cd scripts`), so outputs land in the build dir. Uses an absolute basedir so any build-dir location works, not just a subdir of srcdir. * scripts/configure.in: - AC_CONFIG_AUX_DIR(.) -> AC_CONFIG_AUX_DIR(scripts). Once srcdir resolves to the true top (scripts' parent, where rules.mak lives), autoconf searches for install-sh/config.sub/... relative to srcdir; "." pointed at the wrong place and out-of-tree configure died with "cannot find install-sh". - Name the .in templates explicitly (defs.mak:scripts/defs.mak.in, scripts/makedbh:scripts/makedbh.in) so config.status finds them from a separate build dir. defs.mak is written to the build top; makedbh under build/scripts/ to match ${SCRIPTS}/makedbh. - Drop the trailing `cp defs.mak ..`; defs.mak is now generated in the build top directly, and from a build dir the copy would clobber the source tree's defs.mak. * scripts/configure: regenerated with autoconf 2.69. Verified: out-of-tree `../configure` completes rc=0, writes defs.mak / scripts/makedbh / config.status into the build dir, records srcdir=<source top>, and leaves the source tree's tracked files and generated defs.mak/makedbh untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 14:20:59 +02:00
# Run the generated config.status in the *current* directory (which may be a
# separate build directory), with --srcdir pointing back at the source tree, so
# that generated files (defs.mak, makedbh, ...) land in the build directory
# rather than in the source tree.
basedir=$(cd "$(dirname "$0")" && pwd)
( CFLAGS=${CFLAGS:-"-g"}; export CFLAGS; exec "${basedir}/scripts/configure" --srcdir="${basedir}" "$@" )