dnl Process this file with autoconf to produce a configure script.
AC_REVISION([$Id: configure.in,v 1.35 2003/02/15 23:57:50 roland Exp $])
AC_PREREQ(2.54)			dnl Minimum Autoconf version required.
AC_INIT
AC_CONFIG_SRCDIR([hurd/hurd_types.h])	dnl File to look for in srcdir.

AC_PREFIX_DEFAULT()		dnl Default to empty prefix, not /usr/local.

AC_CANONICAL_HOST
case "$host_os" in
gnu*) ;;
none) AC_MSG_ERROR([
*** You must specify a host of $host_cpu-gnu or $host_cpu-$host_vendor-gnu
*** to configure; you will need to use the same host specification
*** to configure other packages for the GNU/Hurd system.]) ;;
*) AC_MSG_ERROR([this is the gnu os, host cannot be $host_os
*** Host configuration must be \`MACHINE-gnu' or \`MACHINE-VENDOR-gnu'.
*** To cross-compile, you must specify both --host and --build;
*** for example \`--build=$host --host=$host_cpu-gnu'.
*** Run $0 --help for more information.]) ;;
esac

case "$host_cpu" in
alpha*)
  asm_syntax=alpha
  ;;
arm*)
  asm_syntax=arm
  ;;
m68k | m680?0)
  asm_syntax=m68k
  ;;
mips*)
  asm_syntax=mips
  ;;
i?86)
  asm_syntax=i386
  ;;
powerpc*)
  asm_syntax=ppc
  ;;
sparc64* | ultrasparc*)
  asm_syntax=sparc64
  ;;
sparc*)
  asm_syntax=sparc
  ;;
*)
  asm_syntax="$host_cpu"
  ;;
esac
AC_SUBST(asm_syntax)

test -r "$srcdir/libthreads/$asm_syntax/cthreads.h" || {
  AC_MSG_WARN([unsupported CPU type $host_cpu])
}

AC_ARG_ENABLE(profile,
[  --disable-profile	  do not build profiled libraries and programs])
AC_SUBST(enable_profile)

define([default_static],['ext2fs,ufs'])dnl
AC_ARG_ENABLE(static-progs,
[  --enable-static-progs=PROGRAMS...
                          build statically-linked PROGRAM.static versions
                          of (only) the listed programs ]dnl
changequote(',')[default_static]changequote([,]))
case "$enable_static_progs" in
'no')	enable_static_progs= ;;		# we got --disable-static
'')	enable_static_progs=default_static ;;
esac
# Convert comma/space-separated list into space-separated list.
enable_static_progs=`echo "$enable_static_progs" | sed 's/[[, ]][[, ]]*/ /g'`
AC_SUBST(enable_static_progs)

AC_PROG_INSTALL
AC_PROG_AWK

AC_PROG_CC
# Require GCC.
if test x$GCC != xyes; then
  AC_MSG_ERROR([this code uses GNU C extensions, you must compile with GCC])
fi

AC_CHECK_TOOL(LD, ld)
AC_CHECK_TOOL(OBJCOPY, objcopy)
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib)
AC_CHECK_TOOL(MIG, mig)

dnl Let these propagate from the environment.
AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS)

# See if there's a separate libcrypt (many systems put crypt there).
AC_CHECK_LIB(crypt, crypt, LIBCRYPT=-lcrypt)
AC_SUBST(LIBCRYPT)

hurd_MIG_RETCODE

# See if --version-script is available.
AC_CACHE_CHECK(for ld --version-script, hurd_cv_ld_version_script_option, [dnl
cat > conftest.c <<\EOF
void foobar() {}
EOF
cat > conftest.map <<\EOF
VERS_1 {
	global: sym;
};

VERS_2 {
        global: sym;
} VERS_1;
EOF

if AC_TRY_COMMAND([eval $ac_compile 1>&AS_MESSAGE_LOG_FD()]) &&
   AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
				    -nostartfiles -nostdlib
				    -Wl,--version-script,conftest.map
		   1>&AS_MESSAGE_LOG_FD()]); then
  hurd_cv_ld_version_script_option=yes
else
  hurd_cv_ld_version_script_option=no
fi
rm -f conftest*])

# See if libc was built with --enable-libio.
AC_CACHE_CHECK([for libio],
  hurd_cv_libio,
  AC_TRY_COMPILE([#include <stdio.h>
#ifndef _STDIO_USES_IOSTREAM
# error No libio found.
#endif],,
    hurd_cv_libio=yes,
    hurd_cv_libio=no))

# The versions of the symbols in libthreads have to match those in
# libc.so.  Since the symbols in a libc that includes libio will be
# versioned differently from the ones in a libc that uses stdio, this
# isn't easy to accomplish.  Instead we leave things unversioned if
# libio isn't found.
if test $hurd_cv_libio = yes; then
  VERSIONING=$hurd_cv_ld_version_script_option
else
  VERSIONING=no
fi
AC_SUBST(VERSIONING)

# Check if libc contains getgrouplist and/or uselocale.
AC_CHECK_FUNCS(getgrouplist uselocale)

AC_ARG_WITH(parted, dnl
[  --without-parted        don't try to use GNU Parted libraries],
	    , with_parted=yes)

AC_ARG_ENABLE(boot-store-types,
[  --enable-boot-store-types=TYPES...
			  list of store types included in statically
			  linked filesystems used for booting])dnl
if test -z "$enable_boot_store_types"; then
  boot_store_types='device remap gunzip bunzip2'

  # Check for Parted's static store module.
  if test "x$with_parted" != xno; then
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS -static"
    AC_CHECK_LIB(store_part, store_part_open, [dnl
		 boot_store_types="$boot_store_types part"], , -luuid -lstore)
    LDFLAGS="$save_LDFLAGS"
  fi
elif test "x$enable_boot_store_types" = xno; then
  AC_MSG_WARN([you probably wanted --disable-static-progs])
else
  boot_store_types="$enable_boot_store_types"
fi
AC_SUBST(boot_store_types)dnl
AC_MSG_CHECKING(boot store types)
AC_MSG_RESULT($boot_store_types)

# Check for ncursesw, which is needed for the console-curses client.
hurd_LIB_NCURSESW

if test -f ./$ac_unique_file; then
  # Configuring in source directory; don't create any Makefiles.
  makefiles=
else
  # We are configuring in a separate build tree.
  # Create a Makefile in the top-level build directory and
  # one for each subdirectory Makefile in the source.
  makefiles="Makeconf:build.mkcf.in \
	     `cd $srcdir; for file in Makefile */Makefile; do \
			    echo ${file}:build.mk.in; done`"
fi

AC_CONFIG_FILES([config.make ${makefiles}])
AC_OUTPUT

dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
dnl compile-command: "autoconf"
dnl End: