3
dnl $Id: configure.in,v 1.49 2013/07/06 18:25:19 sjg Exp $
5
dnl Process this file with autoconf to produce a configure script
7
AC_INIT([bmake], [20130706], [sjg@NetBSD.org])
8
AC_CONFIG_HEADER(config.h)
10
dnl make srcdir absolute
13
*) srcdir=`cd $srcdir && pwd`;;
18
[ --with-defshell=SHELL use SHELL by default - must be sh compatible, use sh or ksh to pick the internal definitions],
20
yes) AC_MSG_ERROR(bad value ${withval} given for bmake DEFSHELL) ;;
22
*) case "$with_defshell" in
23
sh) DEFSHELL_INDEX=DEFSHELL_INDEX_SH;; # it's the default anyway
24
ksh) DEFSHELL_INDEX=DEFSHELL_INDEX_KSH;;
25
csh) DEFSHELL_INDEX=DEFSHELL_INDEX_CSH;; # kidding right?
26
*) defshell_path=$with_defshell;; # better be sh compatible!
33
[ --without-meta dissable use of meta-mode],
35
yes|no) use_meta=${withval};;
36
*) AC_MSG_ERROR(bad value ${withval} given for meta) ;;
40
[ --with-filemon=path/filemon.h indicate path to filemon.h for meta-mode],
41
[ case "/${withval}" in
42
/no|*/filemon.h) filemon_h="${withval}";;
43
*/filemon*) filemon_h="${withval}/filemon.h";;
44
*) AC_MSG_ERROR(bad value ${withval} given for filemon) ;;
48
for d in "/usr/include/dev/filemon" "$prefix/include/dev/filemon" "$srcdir/filemon" "$srcdir/../filemon" "$srcdir/../../sys/dev/filemon"
52
filemon_h="$d$x/filemon.h"
53
test -s "$filemon_h" && break
55
test -s "$filemon_h" && break
57
test -s "${filemon_h:-/dev/null}" || filemon_h=no
59
dnl echo "Note: use_meta=$use_meta filemon_h=$filemon_h" >&6
63
*.h) echo "Using: filemon=$filemon_h" >&6;;
68
dnl Check for OS problems
69
dnl Solaris's signal.h only privides sigset_t etc if one of
70
dnl _EXTENSIONS_ _POSIX_C_SOURCE or _XOPEN_SOURCE are defined.
71
dnl The later two seem to cause more problems than they solve so if we
72
dnl see _EXTENSIONS_ we use it.
73
AC_USE_SYSTEM_EXTENSIONS
74
dnl Checks for programs.
76
AC_PROG_GCC_TRADITIONAL
78
dnl Executable suffix - normally empty; .exe on os2.
79
AC_SUBST(ac_exe_suffix)dnl
85
dnl Checks for header files.
89
dnl Keep this list sorted
107
dnl Both *BSD and Linux have sys/cdefs.h, most do not.
108
dnl If it is missing, we add -I${srcdir}/missing to CFLAGS
109
dnl also if sys/cdefs.h does not have __RCSID we need to use ours
110
dnl but we need to include the host's one too *sigh*
111
AC_CHECK_HEADER(sys/cdefs.h,
112
echo $ECHO_N "checking whether sys/cdefs.h is compatible... $ECHO_C" >&6
114
[#include <sys/cdefs.h>
120
echo no >&6; CPPFLAGS="${CPPFLAGS} -I`cd ${srcdir}/missing && pwd` -DNEED_HOST_CDEFS_H"),
121
CPPFLAGS="${CPPFLAGS} -I`cd ${srcdir}/missing && pwd`")
123
dnl Checks for typedefs, structures, and compiler characteristics.
134
dnl Checks for library functions.
139
dnl Keep this list sorted
171
dnl functions which we may need to provide
179
AC_CHECK_LIB([util], [emalloc],
180
[ AC_CHECK_LIB([util], [erealloc],
181
[ AC_CHECK_LIB([util], [estrdup],
182
[ AC_CHECK_LIB([util], [estrndup],
183
[ LIBS="$LIBS -lutil"
184
CPPFLAGS="$CPPFLAGS -DUSE_EMALLOC" ])])])])
192
dnl we want this for unit-tests/Makefile
193
echo $ECHO_N "checking if diff -u works... $ECHO_C" >&6
194
if diff -u /dev/null /dev/null > /dev/null 2>&1; then
202
dnl AC_* don't quite cut it.
204
echo "checking for MACHINE & MACHINE_ARCH..." >&6
205
cat > conftest.$ac_ext <<EOF
206
#include "confdefs.h"
207
#include <sys/param.h>
212
machine_arch=MACHINE_ARCH
216
default_machine=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
217
egrep machine= | tr -d ' "'`
219
if test "$default_machine"; then
220
eval "$default_machine"
222
machine=${machine:-`$srcdir/machine.sh`}
223
machine_arch=${machine_arch:-`$srcdir/machine.sh arch`}
224
echo "defaults: MACHINE=$machine, MACHINE_ARCH=$machine_arch" 1>&6
226
dnl now allow overrides
229
[ --with-machine=MACHINE explicitly set MACHINE],
230
[case "${withval}" in
231
yes) AC_MSG_ERROR(bad value ${withval} given for bmake MACHINE) ;;
233
generic) machine=`$srcdir/machine.sh`;;
234
*) machine=$with_machine;;
237
AC_ARG_WITH(force_machine,
238
[ --with-force-machine=MACHINE set FORCE_MACHINE],
239
[case "${withval}" in
240
yes) force_machine=FORCE_;;
242
*) force_machine=FORCE_; machine=$with_force_machine;;
246
AC_ARG_WITH(force_machine_arch,
247
[ --with-force-machine-arch=MACHINE set FORCE_MACHINE_ARCH],
248
[case "${withval}" in
249
yes) force_machine_arch=FORCE_;;
251
*) force_machine_arch=FORCE_; machine_arch=$with_force_machine;;
254
AC_ARG_WITH(machine_arch,
255
[ --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH],
256
[case "${withval}" in
257
yes) AC_MSG_ERROR(bad value ${withval} given for bmake MACHINE_ARCH) ;;
259
*) machine_arch=$with_machine_arch;;
262
dnl Tell them what we ended up with
264
echo "Using: ${force_machine}MACHINE=$machine, MACHINE_ARCH=$machine_arch" 1>&6
266
dnl Allow folk to control _PATH_DEFSYSPATH
268
default_sys_path=\${prefix}/share/mk
269
AC_ARG_WITH(default-sys-path,
270
[ --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
271
MAKESYSPATH is a ':' separated list of directories
272
that bmake will search for system .mk files.
273
_PATH_DEFSYSPATH is its default value.],
274
[case "${withval}" in
275
yes) AC_MSG_ERROR(bad value ${withval} given for bmake _PATH_DEFSYSPATH) ;;
277
*) default_sys_path="$with_default_sys_path"
281
dnl Some folk don't like this one
283
AC_ARG_WITH(path-objdirprefix,
284
[ --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX],
285
[case "${withval}" in
286
yes) AC_MSG_ERROR(bad value ${withval} given for bmake _PATH_OBJDIRPREFIX) ;;
287
no) CPPFLAGS="$CPPFLAGS -DNO_PATH_OBJDIRPREFIX" ;;
288
*) CPPFLAGS="$CPPFLAGS \"-D_PATH_OBJDIRPREFIX=\\\"$with_path-objdir\\\"\"" ;;
291
dnl And this can be handy to do with out.
293
AC_ARG_ENABLE(pwd-override,
294
[ --disable-pwd-override disable \$PWD overriding getcwd()],
295
[case "${enableval}" in
297
no) CPPFLAGS="$CPPFLAGS -DNO_PWD_OVERRIDE" ;;
298
*) AC_MSG_ERROR(bad value ${enableval} given for pwd-override option) ;;
303
AC_ARG_ENABLE(check-make-chdir,
304
[ --disable-check-make-chdir disable make trying to guess
305
when it should automatically cd \${.CURDIR}],
306
[case "${enableval}" in
308
no) CPPFLAGS="$CPPFLAGS -DNO_CHECK_MAKE_CHDIR" ;;
309
*) AC_MSG_ERROR(bad value ${enableval} given for check-make-chdir option) ;;
312
dnl On non-BSD systems, bootstrap won't work without mk
315
[ --with-mksrc=PATH tell makefile.boot where to find mk src],
316
[case "${withval}" in
318
*) test -s $withval/install-mk && mksrc=$withval ||
319
AC_MSG_ERROR(bad value ${withval} given for mksrc cannot find install-mk)
324
dnl Now make sure we have a value
326
srcdir=`cd $srcdir && pwd`
327
for mksrc in $mksrc $srcdir/mk $srcdir/../mk mk
329
test -s $mksrc/install-mk || continue
330
mksrc=`cd $mksrc && pwd`
333
mksrc=`echo $mksrc | sed "s,$srcdir,\\\${srcdir},"`
334
echo "Using: MKSRC=$mksrc" 1>&6
335
dnl On some systems we want a different default shell by default
336
if test -x /usr/xpg4/bin/sh; then
337
defshell_path=${defshell_path:-/usr/xpg4/bin/sh}
339
if test -n "$defshell_path"; then
340
echo "Using: SHELL=$defshell_path" >&6
341
AC_DEFINE_UNQUOTED(DEFSHELL_CUSTOM, "$defshell_path", Path of default shell)
343
if test -n "$DEFSHELL_INDEX"; then
344
AC_DEFINE_UNQUOTED(DEFSHELL_INDEX, $DEFSHELL_INDEX, Shell spec to use by default)
348
AC_SUBST(force_machine)
349
AC_SUBST(machine_arch)
351
AC_SUBST(default_sys_path)
357
AC_OUTPUT(makefile Makefile.config make-bootstrap.sh unit-tests/Makefile)
363
sh ./make-bootstrap.sh
365
to produce a fully functional bmake.