xref: /freebsd/contrib/bmake/configure.in (revision 1729d2f741a12a42c61ed5308ee156a0d1cd1918)
1dnl
2dnl RCSid:
3dnl	$Id: configure.in,v 1.114 2026/04/13 18:40:26 sjg Exp $
4dnl
5dnl Process this file with autoconf to produce a configure script
6dnl
7AC_PREREQ([2.71])
8AC_INIT([bmake],[20260406],[sjg@NetBSD.org])
9AC_CONFIG_HEADERS(config.h)
10
11dnl make srcdir absolute
12case "$srcdir" in
13/*) ;;
14*) srcdir=`cd $srcdir && 'pwd'`;;
15esac
16
17dnl get _MAKE_VERSION
18. $srcdir/VERSION
19OS=`uname -s`
20
21dnl do not trust return from type
22have() {
23	case `(type "$1") 2>&1` in
24	*" found") return 1;;
25	esac
26	return 0
27}
28
29dnl function to set DEFSHELL_INDEX
30use_defshell() {
31	case "$defshell_path$DEFSHELL_INDEX" in
32	"") ;;
33	*) return 0;;
34	esac
35	case "$1" in
36	*csh) # we must be desperate
37		DEFSHELL_INDEX=DEFSHELL_INDEX_CSH;;
38	*ksh*)
39		DEFSHELL_INDEX=DEFSHELL_INDEX_KSH;;
40	sh|/bin/sh|*/bsh)
41		DEFSHELL_INDEX=DEFSHELL_INDEX_SH;;
42	*=*)	# eg. sh=/bin/bsh
43		eval `IFS="="; set -- $1; echo name=$1 defshell_path=$2`
44		case "$name" in
45		csh) DEFSHELL_INDEX=DEFSHELL_INDEX_CSH;;
46		ksh) DEFSHELL_INDEX=DEFSHELL_INDEX_KSH;;
47		sh) DEFSHELL_INDEX=DEFSHELL_INDEX_SH;;
48		*) DEFSHELL_INDEX=DEFSHELL_INDEX_CUSTOM;;
49		esac
50		;;
51	*)	DEFSHELL_INDEX=DEFSHELL_INDEX_CUSTOM
52		defshell_path=$1
53		;;
54	esac
55	case "$defshell_path,$1" in
56	,/bin/*) ;;
57	,*/*) defshell_path=$1;;
58	esac
59}
60dnl
61AC_ARG_WITH(defshell,
62[  --with-defshell=[[name=]]SHELL	use SHELL by default
63	optional 'name' can be 'sh' to indicate SHELL is sh compatible
64	eg. --with-defshell=sh=/bin/bsh
65	use just 'sh' or 'ksh' to pick the internal definitions],
66[case "${withval}" in
67yes)   AC_MSG_ERROR(bad value ${withval} given for bmake DEFSHELL) ;;
68no)    ;;
69*)     use_defshell $with_defshell;;
70esac])
71dnl
72dnl sometimes uname -s output is not useful
73FORCE_MAKE_OS=
74make_os=
75case "$OS" in
76CYGWIN*)
77	use_makefile=no
78	OS=Cygwin
79	FORCE_MAKE_OS=$OS
80	;;
81Darwin|MINGW*) use_makefile=no;;
82*) use_makefile=yes;;
83esac
84if test "x$FORCE_MAKE_OS" != x; then
85	force_make_os=FORCE_
86	make_os=${FORCE_MAKE_OS}
87fi
88AC_ARG_WITH(makefile,
89[  --without-makefile disable use of generated makefile],
90[case "${withval}" in
91yes|no) use_makefile=${withval};;
92*) AC_MSG_ERROR(bad value ${withval} given for makefile) ;;
93esac])
94dnl
95use_meta=yes
96AC_ARG_WITH(meta,
97[  --without-meta disable use of meta-mode],
98[case "${withval}" in
99yes|no) use_meta=${withval};;
100*) AC_MSG_ERROR(bad value ${withval} given for meta) ;;
101esac])
102dnl
103AC_ARG_WITH(filemon,
104[  --with-filemon={no,dev,ktrace,path/filemon.h} indicate filemon method for meta-mode. Path to filemon.h implies dev],
105[ case "/${withval}" in
106/no) use_filemon=no;;
107/*trace) filemon_h=no use_filemon="${withval}";;
108*/filemon.h) filemon_h="${withval}";;
109*/filemon*) filemon_h="${withval}/filemon.h";;
110*) AC_MSG_ERROR(bad value ${withval} given for filemon) ;;
111esac
112case "$use_filemon,$filemon_h" in
113,*.h) use_filemon=dev;;
114esac
115],
116[
117case "$OS" in
118Cygwin*|MINGW*) use_filemon=no;;
119NetBSD) filemon_h=no use_filemon=ktrace;;
120*)
121    for d in "/usr/include/dev/filemon" "$prefix/include/dev/filemon" "$srcdir/../../sys/dev/filemon"
122    do
123        for x in "/$OS" ""
124        do
125            filemon_h="$d$x/filemon.h"
126            test -s "$filemon_h" && break
127        done
128        test -s "$filemon_h" && { use_filemon=dev; break; }
129    done
130    ;;
131esac
132use_filemon=${use_filemon:-no}
133case "$use_filemon" in
134dev) ;;
135*) filemon_h=no;;
136esac
137])
138dnl
139dnl in 2020 NetBSD make changed the handling of $$ in :=
140dnl bmake introduced .MAKE.SAVE_DOLLARS defaulting to "no" to retain
141dnl the  traditional behavior.
142dnl Use "yes" to be compatible with NetBSD make.
143dnl
144save_dollars=no
145AC_ARG_WITH(save_dollars,
146[  --with-save-dollars={yes,no} control default for .MAKE.SAVE_DOLLARS - default is "no"],
147[case "${withval}" in
148yes|no) MAKE_SAVE_DOLLARS_DEFAULT=${withval} ;;
149*) AC_MSG_ERROR(bad value ${withval} given for save_dollars) ;;
150esac])
151dnl
152dnl some systems have broken/incomplete strftime
153AC_ARG_WITH(bmake_strftime,
154[  --with-bmake-strftime force use of bmake strftime],
155[case "${withval}" in
156yes|no) bmake_strftime=$withval;;
157esac])
158dnl
159dnl echo "Note: use_meta=$use_meta use_filemon=$use_filemon filemon_h=$filemon_h" >&6
160case "$use_meta" in
161yes)
162	case "$use_filemon" in
163	no) ;;
164	*) echo "Using: filemon_${use_filemon}.c" >&6;;
165	esac
166	;;
167esac
168dnl
169dnl Check for OS problems
170dnl
171dnl Minix 3 at least has bugs in headers where _NETBSD_SOURCE
172dnl is needed for compilation
173case "$OS" in
174Minix)	CPPFLAGS="${CPPFLAGS} -D_NETBSD_SOURCE"
175	test -x /usr/pkg/bin/clang && CC=${CC:-clang}
176	;;
177SCO_SV)	# /bin/sh is not usable
178	ALT_DEF_SHELLS="/bin/lsh /usr/bin/bash /bin/ksh"
179	FORCE_USE_SHELL=1
180	;;
181esac
182if test "x$FORCE_USE_SHELL" != x; then
183	CPPFLAGS="${CPPFLAGS} -DFORCE_USE_SHELL"
184fi
185dnl
186# Not everyone groks TZ=Europe/Berlin
187# which is used by the localtime tests
188echo $ECHO_N "checking whether system has timezone Europe/Berlin... $ECHO_C" >&6
189eval `TZ=UTC date '+utc_H=%H utc_d=%d' 2> /dev/null`
190eval `TZ=Europe/Berlin date '+utc1_H=%H utc1_d=%d' 2> /dev/null`
191if test ${utc1_d-0} = 01 -a ${utc_d-0} -gt ${utc1_d-0} ||
192   test ${utc_d-0} -lt ${utc1_d-0} -o ${utc_H-0} -lt ${utc1_H-0}; then
193	echo yes  >&6
194	UTC_1=Europe/Berlin
195else
196	eval `TZ=UTC-1 date '+utc1_H=%H utc1_d=%d' 2> /dev/null`
197	if test ${utc1_d-0} = 01 -a ${utc_d-0} -gt ${utc1_d-0} ||
198	   test ${utc_d-0} -lt ${utc1_d-0} -o ${utc_H-0} -lt ${utc1_H-0}; then
199		UTC_1=UTC-1
200		echo no, using UTC-1 >&6
201	fi
202fi
203test "x$UTC_1" = x && echo no >&6
204dnl
205dnl Add some places to look for compilers
206oldPATH=$PATH
207for d in /usr/gnu/bin
208do
209	test -d $d || continue
210	PATH=$PATH:$d
211done
212export PATH
213dnl
214dnl if lua is available check it is version 5.2 or later
215lua=$LUA
216AC_ARG_WITH(lua,
217[  --without-lua do not use check-expect.lua],
218[case "${withval}" in
219no) lua=:;;
220yes) lua= ;;
221/*lua*) lua=$withval;;
222*) AC_MSG_ERROR(bad value ${withval} given for lua);;
223esac])
224if test "x$lua" != x:; then
225    if have lua; then
226	lua_version=`${lua:-lua} -v | sed 's/Lua //;s/  *Copy.*//;'`
227	echo $ECHO_N "checking whether lua version ($lua_version) > 5.2... $ECHO_C" >&6
228	case "$lua_version" in
229	4.*|5.1.*) lua=:; echo no >&6;;
230	*) echo yes >&6;;
231	esac
232    fi
233fi
234dnl
235dnl Solaris's signal.h only privides sigset_t etc if one of
236dnl _EXTENSIONS_ _POSIX_C_SOURCE or _XOPEN_SOURCE are defined.
237dnl The later two seem to cause more problems than they solve so if we
238dnl see _EXTENSIONS_ we use it.
239AC_USE_SYSTEM_EXTENSIONS
240dnl Checks for programs.
241AC_PROG_CC
242AC_PROG_INSTALL
243# We have to override that on some systems
244case "$OS" in
245IRIX*) ac_INSTALL=$srcdir/install-sh;;
246esac
247dnl Executable suffix - normally empty; .exe on os2.
248AC_SUBST(ac_exe_suffix)dnl
249dnl
250dnl Hurd refuses to define PATH_MAX or MAXPATHLEN
251if test -x /usr/bin/getconf; then
252   bmake_path_max=`getconf PATH_MAX / 2> /dev/null`
253   # only a numeric response is useful
254   test ${bmake_path_max:-0} -gt 0 2> /dev/null || bmake_path_max=
255fi
256bmake_path_max=${bmake_path_max:-1024}
257if test $bmake_path_max -gt 1024; then
258   # this is all we expect
259   bmake_path_max=1024
260fi
261if test ${bmake_strftime:-no} = yes; then
262   CPPFLAGS="${CPPFLAGS} -DFORCE_BMAKE_STRFTIME"
263fi
264echo "Using: BMAKE_PATH_MAX=$bmake_path_max" >&6
265AC_SUBST(bmake_path_max)dnl
266dnl
267# if type does not work which(1) had better!
268# note we cannot rely on type returning non-zero on failure
269if (type cat) > /dev/null 2>&1; then
270: which
271which() {
272	type "$@" | sed 's,[[()]],,g;s,^[[^/]][[^/]]*,,;q'
273}
274fi
275dnl if CC is somewhere that was not in PATH we need its full path
276dnl watch out for included flags!
277case "$CC" in
278/*) ;;
279*)
280    for x in $CC
281    do
282        _cc=`which $x`
283        break
284    done
285    if test -x ${_cc:-/dev/null}; then
286        _cc_dir=`dirname $_cc`
287        case ":$oldPATH:" in
288        *:$_cc_dir:*) ;;
289        *) CC=$_cc_dir/$CC;;
290        esac
291    fi
292    ;;
293esac
294dnl Checks for header files.
295AC_HEADER_SYS_WAIT
296AC_HEADER_DIRENT
297dnl Keep this list sorted
298AC_CHECK_HEADERS(sys/param.h)
299dnl On BSDi at least we really need sys/param.h for sys/sysctl.h
300AC_CHECK_HEADERS([sys/sysctl.h], [], [],
301[#ifdef HAVE_SYS_PARAM_H
302# include <sys/param.h>
303# endif
304])
305
306AC_CHECK_HEADERS( \
307	ar.h \
308	err.h \
309	fcntl.h \
310	libgen.h \
311	limits.h \
312	paths.h \
313	poll.h \
314	ranlib.h \
315	regex.h \
316	sys/mman.h \
317	sys/select.h \
318	sys/socket.h \
319	sys/time.h \
320	sys/uio.h \
321	utime.h \
322	)
323
324dnl Both *BSD and Linux have sys/cdefs.h, most do not.
325dnl If it is missing, we add -I${srcdir}/missing to CFLAGS
326AC_CHECK_HEADER(sys/cdefs.h,,
327CPPFLAGS="${CPPFLAGS} -I`cd ${srcdir}/missing && pwd`")
328
329dnl Checks for typedefs, structures, and compiler characteristics.
330AC_C___ATTRIBUTE__
331AC_C_BIGENDIAN
332AC_C_CONST
333AC_C_INLINE
334AC_TYPE_INT64_T
335AC_TYPE_LONG_LONG_INT
336AC_TYPE_MODE_T
337AC_TYPE_OFF_T
338AC_TYPE_PID_T
339AC_TYPE_SIZE_T
340AC_TYPE_UINT32_T
341AC_CHECK_DECLS([sys_siglist],[],[],[#include <signal.h>
342/* NetBSD declares sys_siglist in unistd.h.  */
343#ifdef HAVE_UNISTD_H
344# include <unistd.h>
345#endif
346])
347
348AC_CHECK_HEADERS_ONCE([sys/time.h])
349
350AC_STRUCT_TM
351
352dnl we need sig_atomic_t
353AH_TEMPLATE([sig_atomic_t],[type that signal handlers can safely frob])
354AC_CHECK_TYPES([sig_atomic_t],[],[],
355[
356#ifdef HAVE_SYS_TYPES_H
357#include <sys/types.h>
358#endif
359#include <signal.h>
360])
361
362dnl Checks for library functions.
363AC_FUNC_FORK
364AC_FUNC_VPRINTF
365AC_FUNC_WAIT3
366dnl Keep this list sorted
367AC_CHECK_FUNCS( \
368	err \
369	errx \
370	getcwd \
371	getenv \
372	getwd \
373	killpg \
374	putenv \
375	select \
376	setenv \
377	setpgid \
378	setrlimit \
379	setsid \
380	sigaddset \
381	sigpending \
382	sigprocmask \
383	sigsetmask \
384	sigsuspend \
385	sigvec \
386	snprintf \
387	strerror \
388	stresep \
389	strftime \
390	strsep \
391	strtod \
392	strtol \
393	strtoll \
394	strtoul \
395	sysctl \
396	unsetenv \
397	vsnprintf \
398	wait3 \
399	wait4 \
400	waitpid \
401	warn \
402	warnx \
403	)
404
405dnl functions which we may need to provide
406AC_REPLACE_FUNCS( \
407	getopt \
408	realpath \
409	dirname \
410	sigaction \
411	stresep \
412	strlcpy \
413	)
414
415AC_CHECK_LIB([util], [emalloc],
416    [ AC_CHECK_LIB([util], [erealloc],
417      [ AC_CHECK_LIB([util], [estrdup],
418        [ AC_CHECK_LIB([util], [estrndup],
419	  [ LIBS="$LIBS -lutil"
420	    CPPFLAGS="$CPPFLAGS -DUSE_EMALLOC" ])])])])
421
422dnl
423dnl Structures
424dnl
425AC_HEADER_STAT
426dnl
427echo "checking if compiler supports __func__" >&6
428AC_LANG(C)
429AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[[const char *func = __func__;]])],,
430	AC_DEFINE(__func__, __FUNCTION__, C99 function name))
431dnl
432dnl we want this for unit-tests/Makefile
433dnl GNU diff is known to support -u
434if test -x /usr/gnu/bin/diff; then
435	diff=/usr/gnu/bin/diff
436	diff_u=-u
437else
438	diff=${diff:-diff}
439	echo $ECHO_N "checking if $diff -u works... $ECHO_C" >&6
440	if $diff -u /dev/null /dev/null > /dev/null 2>&1; then
441		diff_u=-u
442		echo yes >&6
443	else
444		diff_u=
445		echo no >&6
446	fi
447fi
448dnl
449dnl AC_* don't quite cut it.
450dnl
451echo "checking for MACHINE & MACHINE_ARCH..." >&6
452cat > conftest.$ac_ext <<EOF
453#include "confdefs.h"
454#include <sys/param.h>
455#ifdef MACHINE
456machine=MACHINE
457#endif
458#ifdef MACHINE_ARCH
459machine_arch=MACHINE_ARCH
460#endif
461EOF
462
463default_machine=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
464	grep machine= | tr -d ' "'`
465rm -rf conftest*
466if test "$default_machine"; then
467	eval "$default_machine"
468fi
469machine=${machine:-`$srcdir/machine.sh`}
470machine_arch=${machine_arch:-`$srcdir/machine.sh arch`}
471echo "defaults: MACHINE=$machine, MACHINE_ARCH=$machine_arch" 1>&6
472dnl
473dnl now allow overrides
474dnl
475AC_ARG_WITH(machine,
476[  --with-machine=MACHINE  explicitly set MACHINE],
477[case "${withval}" in
478yes)   AC_MSG_ERROR(bad value ${withval} given for bmake MACHINE) ;;
479no)    ;;
480generic) machine=`$srcdir/machine.sh`;;
481*)     machine=$with_machine;;
482esac])
483force_machine=
484AC_ARG_WITH(force_machine,
485[  --with-force-machine=MACHINE  set FORCE_MACHINE],
486[case "${withval}" in
487yes)   force_machine=FORCE_;;
488no)    ;;
489*)     force_machine=FORCE_; machine=$with_force_machine;;
490esac])
491dnl
492force_machine_arch=
493AC_ARG_WITH(force_machine_arch,
494[  --with-force-machine-arch=MACHINE  set FORCE_MACHINE_ARCH],
495[case "${withval}" in
496yes)   force_machine_arch=FORCE_;;
497no)    ;;
498*)     force_machine_arch=FORCE_; machine_arch=$with_force_machine_arch;;
499esac])
500dnl
501AC_ARG_WITH(machine_arch,
502[  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH],
503[case "${withval}" in
504yes)   AC_MSG_ERROR(bad value ${withval} given for bmake MACHINE_ARCH) ;;
505no)    ;;
506*)     machine_arch=$with_machine_arch;;
507esac])
508dnl
509dnl Tell them what we ended up with
510dnl
511echo "Using: ${force_machine}MACHINE=$machine, ${force_machine_arch}MACHINE_ARCH=$machine_arch" 1>&6
512dnl
513dnl Allow folk to control _PATH_DEFSYSPATH
514dnl
515default_sys_path=\${prefix}/share/mk
516AC_ARG_WITH(default-sys-path,
517[  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
518	MAKESYSPATH is a ':' separated list of directories
519	that bmake will search for system .mk files.
520	_PATH_DEFSYSPATH is its default value.],
521[case "${withval}" in
522yes)	AC_MSG_ERROR(bad value ${withval} given for bmake _PATH_DEFSYSPATH) ;;
523no)	;;
524*)	default_sys_path="$with_default_sys_path"
525	;;
526esac])
527dnl
528dnl Some folk don't like this one
529dnl
530AC_ARG_WITH(path-objdirprefix,
531[  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX],
532[case "${withval}" in
533yes)   AC_MSG_ERROR(bad value ${withval} given for bmake _PATH_OBJDIRPREFIX) ;;
534no)    CPPFLAGS="$CPPFLAGS -DNO_PATH_OBJDIRPREFIX" ;;
535*)     CPPFLAGS="$CPPFLAGS \"-D_PATH_OBJDIRPREFIX=\\\"$with_path-objdir\\\"\"" ;;
536esac])
537dnl
538dnl And this can be handy to do with out.
539dnl
540AC_ARG_ENABLE(pwd-override,
541[  --disable-pwd-override  disable $PWD overriding getcwd()],
542[case "${enableval}" in
543yes)   ;;
544no)    CPPFLAGS="$CPPFLAGS -DNO_PWD_OVERRIDE" ;;
545*)     AC_MSG_ERROR(bad value ${enableval} given for pwd-override option) ;;
546esac])
547dnl
548dnl Just for grins
549dnl
550AC_ARG_ENABLE(check-make-chdir,
551[  --disable-check-make-chdir disable make trying to guess
552	when it should automatically cd ${.CURDIR}],
553[case "${enableval}" in
554yes)   ;;
555no)    CPPFLAGS="$CPPFLAGS -DNO_CHECK_MAKE_CHDIR" ;;
556*)     AC_MSG_ERROR(bad value ${enableval} given for check-make-chdir option) ;;
557esac])
558dnl
559dnl On non-BSD systems, bootstrap won't work without mk
560dnl
561AC_ARG_WITH(mksrc,
562[  --with-mksrc=PATH tell makefile.boot where to find mk src],
563[case "${withval}" in
564""|yes|no) ;;
565*) test -s $withval/install-mk && mksrc=$withval ||
566AC_MSG_ERROR(bad value ${withval} given for mksrc cannot find install-mk)
567;;
568esac
569])
570dnl
571dnl Now make sure we have a value
572dnl
573srcdir=`cd $srcdir && pwd`
574for mksrc in $mksrc $srcdir/mk $srcdir/../mk mk
575do
576	test -s $mksrc/install-mk || continue
577	mksrc=`cd $mksrc && pwd`
578	break
579done
580mksrc=`echo $mksrc | sed "s,$srcdir,\\\${srcdir},"`
581echo "Using: MKSRC=$mksrc" 1>&6
582dnl On some systems we want a different default shell by default
583for sh in /usr/xpg4/bin/sh $ALT_DEF_SHELLS
584do
585	test -x $sh || continue
586	use_defshell $sh
587	break
588done
589case "$defshell_path$DEFSHELL_INDEX" in
590"")	;;
591*DEFSHELL_INDEX_CUSTOM)
592	echo "Using: SHELL=$defshell_path"  >&6
593	AC_DEFINE_UNQUOTED(DEFSHELL_CUSTOM, "$defshell_path", Path of default shell)
594	;;
595/*INDEX*)
596	echo "Using: SHELL=$DEFSHELL_INDEX ($defshell_path)" | sed 's,DEFSHELL_INDEX_,,' >&6
597	AC_DEFINE_UNQUOTED(DEFSHELL_INDEX, $DEFSHELL_INDEX, Shell spec to use by default)
598AC_DEFINE_UNQUOTED(DEFSHELL_PATH, "$defshell_path", Path of default shell)
599	;;
600*)
601	echo "Using: SHELL=$DEFSHELL_INDEX" | sed 's,DEFSHELL_INDEX_,,' >&6
602	AC_DEFINE_UNQUOTED(DEFSHELL_INDEX, $DEFSHELL_INDEX, Shell spec to use by default)
603	;;
604esac
605dnl
606dnl Some systems have deprecated egrep in favor of grep -E
607case "`echo bmake | egrep 'a|b' 2>&1`" in
608bmake) egrep=egrep;;
609*) egrep='grep -E';;
610esac
611dnl
612AC_SUBST(egrep)
613AC_SUBST(make_os)
614AC_SUBST(force_make_os)
615AC_SUBST(machine)
616AC_SUBST(force_machine)
617AC_SUBST(machine_arch)
618AC_SUBST(force_machine_arch)
619AC_SUBST(mksrc)
620AC_SUBST(default_sys_path)
621AC_SUBST(INSTALL)
622AC_SUBST(GCC)
623AC_SUBST(diff)
624AC_SUBST(diff_u)
625AC_SUBST(save_dollars)
626AC_SUBST(use_meta)
627AC_SUBST(use_filemon)
628AC_SUBST(filemon_h)
629AC_SUBST(lua)
630AC_SUBST(_MAKE_VERSION)
631AC_SUBST(UTC_1)
632bm_outfiles="Makefile.config unit-tests/Makefile.config make-bootstrap.sh"
633if test $use_makefile = yes; then
634   bm_outfiles="makefile $bm_outfiles"
635fi
636
637here=`'pwd'`
638: srcdir=$srcdir
639: here=  $here
640case "$here" in
641$srcdir/obj*) # make sure we put unit-tests/Makefile.config in the right place
642	obj=`basename $here`
643	mkdir -p $srcdir/unit-tests/$obj
644	test -d unit-tests || ln -s ../unit-tests/$obj unit-tests
645	;;
646esac
647
648AC_CONFIG_FILES([$bm_outfiles])
649AC_OUTPUT
650cat <<EOF
651
652You can now run
653
654	sh ./make-bootstrap.sh
655
656to produce a fully functional bmake.
657
658EOF
659