summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac200
1 files changed, 200 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..dd460aa
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,200 @@
+dnl Get things going...
+AC_INIT(rc.h)
+
+RELDATE=`cat $srcdir/RELDATE`
+AC_DEFINE_UNQUOTED(RELDATE, "$RELDATE")
+
+dnl Automake stuff.
+dnl Use this one for snapshots...
+dnl AM_INIT_AUTOMAKE(rc, 1.5s`echo $RELDATE |sed 's/-//g'`)
+dnl ...and this one for releases
+AM_INIT_AUTOMAKE(rc, 1.5b4)
+
+AM_CONFIG_HEADER(config.h)
+
+dnl Anybody using name transformations?
+AC_ARG_PROGRAM
+
+dnl Find a standard C compiler
+AC_PROG_CC
+AM_PROG_CC_STDC
+
+dnl If we're using gcc, specify `-Wall'. I've also checked the code
+dnl with `-pedantic -W -Wall -Wpointer-arith -Wstrict-prototypes
+dnl -Wmissing-prototypes', and checked that all the warnings generated
+dnl are harmless.
+case "$GCC" in
+yes) CFLAGS="-Wall $CFLAGS" ;;
+esac
+
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_CHECK_PROGS(LN, ln cp)
+
+AC_CHECK_HEADERS(sys/resource.h sys/time.h sys/types.h unistd.h)
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+
+AC_TYPE_GETGROUPS
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_UID_T
+AC_CHECK_TYPE(ssize_t, long)
+
+AC_CHECK_FUNCS(getgroups setpgrp setrlimit)
+RC_FUNC_GETGROUPS
+
+RC_FUNC_SIGSETJMP
+
+AC_FUNC_SETPGRP
+
+RC_NEED_KERNEL
+
+RC_TYPE_RLIM_T
+
+RC_TYPE_SIG_ATOMIC_T
+
+dnl We prefer system calls that don't restart. If we have sigaction() and
+dnl SA_INTERRUPT, we'll use 'em. Otherwise, we check whether
+dnl good ol' signal() produces interruptible system calls.
+RC_FUNC_SIGACTION
+case "$rc_cv_sa_int" in
+yes) AC_DEFINE(HAVE_SA_INTERRUPT) ;;
+no) AC_SYS_RESTARTABLE_SYSCALLS ;;
+esac
+AM_CONDITIONAL(AMC_RESTART, test "$ac_cv_sys_restartable_syscalls" = yes)
+
+RC_SYS_V_SIGCLD
+
+dnl Does the kernel handle `#! /interpreter'?
+AC_SYS_INTERPRETER
+case "$ac_cv_sys_interpreter" in
+yes) AC_DEFINE(HASH_BANG) ;;
+esac
+AM_CONDITIONAL(AMC_NO_HASHBANG, test "$ac_cv_sys_interpreter" = no)
+
+
+dnl What do we do for command arguments? We want /dev/fd or Linux's
+dnl /proc/self/fd. Failing that, we'll try for POSIX mkfifo(), or a
+dnl mknod() that makes FIFOs.
+RC_SYS_DEV_FD
+case "$rc_cv_sys_dev_fd" in
+yes) AC_DEFINE(HAVE_DEV_FD) ;;
+odd) AC_DEFINE(HAVE_PROC_SELF_FD) ;;
+no) AC_CHECK_FUNCS(mkfifo) ;;
+esac
+
+case "$ac_cv_func_mkfifo" in
+yes) AC_DEFINE(HAVE_FIFO) ;;
+no) RC_SYS_MKNOD_FIFO ;;
+esac
+
+RC_HAVE_VA_COPY
+
+dnl Now handle arguments.
+AC_ARG_ENABLE(builtin-echo, [ --disable-builtin-echo Don't include \`echo' as a builtin],
+ test "x$enableval" != "xno" && AC_DEFINE(RC_ECHO),
+ AC_DEFINE(RC_ECHO))
+
+AC_ARG_ENABLE(job, [ --disable-job Don't do job-control-style backgrounding],
+ test "x$enableval" != "xno" && AC_DEFINE(RC_JOB),
+ AC_DEFINE(RC_JOB))
+
+AC_ARG_ENABLE(protect-env, [ --disable-protect-env Don't protect environment names],
+ test "x$enableval" != "xno" && AC_DEFINE(PROTECT_ENV),
+ AC_DEFINE(PROTECT_ENV))
+
+AC_ARG_ENABLE(def-interp,
+[ --enable-def-interp=/bin/foo
+ Use /bin/foo as default interpreter [/bin/sh]],
+[
+ case "$enableval" in
+ no)
+ ;;
+ yes)
+ AC_DEFINE(DEFAULTINTERP, "/bin/sh")
+ ;;
+ *)
+ AC_DEFINE_UNQUOTED(DEFAULTINTERP, "$enableval")
+ esac
+],
+ AC_DEFINE(DEFAULTINTERP, "/bin/sh"))
+
+AC_ARG_ENABLE(def-path,
+[ --enable-def-path=\"/usr/local/bin/\",\"/usr/bin\"
+ Default path [All of these that exist
+ (/usr/local/bin /usr/bin /usr/ucb /bin .)]],
+[
+ case "$enableval" in
+ no|yes) ;;
+ *) AC_DEFINE_UNQUOTED(DEFAULTPATH, $enableval) ;;
+ esac
+],
+ enable_def_path=yes)
+
+case "$enable_def_path" in
+yes) AC_CACHE_CHECK(extant directories for default path, rc_cv_def_path,[
+ rc_cv_def_path=''
+ for i in /usr/local/bin /usr/bin /usr/ucb /bin .; do
+ if test -d $i; then
+ case "$rc_cv_def_path" in
+ '') rc_cv_def_path=\"$i\" ;;
+ *) rc_cv_def_path=$rc_cv_def_path,\"$i\" ;;
+ esac
+ fi
+ done
+ ])
+ AC_DEFINE_UNQUOTED(DEFAULTPATH, $rc_cv_def_path)
+ ;;
+esac
+
+AC_ARG_WITH(history,
+ [ --with-history Build history subprograms],[
+ case "$withval" in
+ yes) rc_history=yes ;;
+ *) rc_history=no ;;
+ esac
+ ], rc_history=no)
+AM_CONDITIONAL(AMC_HISTORY, test "$rc_history" = yes)
+
+
+AC_ARG_WITH(addon, [ --with-addon[=foo.c] Extra builtins, from addon.c by default ],[
+ case "$withval" in
+ yes) ADDON=addon.o ;;
+ no) ADDON='' ;;
+ *) ADDON=`echo $withval |sed 's/\.c$/\.o/'` ;;
+ esac
+])
+AM_CONDITIONAL(AMC_ADDON, test "$ADDON" != "")
+case "$ADDON" in
+?*) AC_DEFINE(RC_ADDON) ;;
+esac
+AC_SUBST(ADDON)
+
+
+AC_ARG_WITH(editline, [ --with-editline Simmule Turner's line editing],
+ AC_CHECK_LIB(edit, readline,
+ AC_DEFINE(EDITLINE) LIBS="$LIBS -ledit",
+ AC_MSG_ERROR(editline library not found)))
+
+AC_ARG_WITH(vrl, [ --with-vrl Gert-Jan Vons's line editing],
+ AC_CHECK_LIB(vrl, readline,
+ AC_DEFINE(EDITLINE) LIBS="$LIBS -lvrl -ltermcap",
+ AC_MSG_ERROR(vrl library not found), -ltermcap))
+
+dnl There are (at least) two incompatible versions of readline, and we
+dnl need to know which one we are using. We don't support readline 2.0.
+AC_ARG_WITH(readline, [ --with-readline Bloated GNU line editing], [
+ AC_CHECK_LIB(readline, readline, [
+ AC_DEFINE(READLINE)
+ LIBS="$LIBS -lreadline -ltermcap"
+ AC_CHECK_LIB(readline, _rl_clean_up_for_exit, , AC_DEFINE(READLINE_OLD), -ltermcap)
+ ], AC_MSG_ERROR(readline library not found), -ltermcap)
+])
+AM_CONDITIONAL(AMC_READLINE, test "${with_readline+set}" = set)
+
+dnl For some reason CPPFLAGS doesn't get propagated.
+AC_SUBST(CPPFLAGS)
+
+AC_OUTPUT(Makefile)