dnl
dnl Process this file with autoconf to produce a configure script
dnl

AC_PREREQ(2.13)
AC_INIT(build/rules.mk.in)

AC_CONFIG_AUX_DIR(../apr/build)
AC_CONFIG_HEADER(lib/apr_iconv_private.h)
AC_PREFIX_DEFAULT(/usr/local/apache2)
#test "$prefix" = "NONE" && prefix='/usr/local/apache2'

AC_PROG_CC
AC_PROG_AWK
AC_CHECK_PROG(RM, rm, rm)

dnl
dnl compute the top directory of the build
dnl note: this is needed for LIBTOOL
dnl
top_builddir="`cd $srcdir ; pwd`"
AC_SUBST(top_builddir)

dnl check for APR
APU_FIND_APR
aprbuild=$APR_SOURCE_DIR/build

dnl
dnl set up the compilation flags and stuff
dnl
INCLUDES="$INCLUDES -I\$(top_builddir)/lib"

INCLUDES="$INCLUDES -I$APR_INCLUDES"

dnl
dnl prep libtool
dnl
echo "performing libtool configuration..."
AC_PROG_LIBTOOL

$SHELL $aprbuild/ltconfig --output=shlibtool --disable-static --srcdir=$aprbuild --cache-file=./config.cache $aprbuild/ltmain.sh
dnl
dnl grab flags from APR.
dnl ### APR doesn't have "nice" names for its exports (yet), but it isn't
dnl ### a problem to deal with them right here
dnl

. "$APR_SOURCE_DIR/APRVARS"
APR_EXPORT_CPPFLAGS="$EXTRA_CPPFLAGS"
APR_EXPORT_CFLAGS="$EXTRA_CFLAGS"
APR_EXPORT_LIBS="$EXTRA_LIBS"

dnl
dnl Prep all the flags and stuff for compilation and export to other builds
dnl
CFLAGS="$CFLAGS $INCLUDES $APR_EXPORT_CFLAGS $APR_EXPORT_CPPFLAGS"
LIBS="$LIBS $APR_EXPORT_LIBS"

AC_SUBST(APRUTIL_EXPORT_LIBS)

#
# Adds in config *.h file
AC_DEFINE_UNQUOTED(ICONV_DEFAULT_PATH,"$prefix/lib/iconv",
	[ Directory where the *.so tables are stored ] )
iconv_libdir=$prefix/lib/iconv
AC_SUBST(iconv_libdir)

dnl
dnl BSD/OS (BSDi) needs to use a different include syntax in the Makefiles
dnl
case "$host_alias" in
*bsdi*)
    INCLUDE_RULES=".include \"$top_builddir/build/rules.mk\""
    ;;
*)
    INCLUDE_RULES="include $top_builddir/build/rules.mk"
    ;;
esac
AC_SUBST(INCLUDE_RULES)

dnl
dnl everthing is done. 
AC_OUTPUT([
	Makefile
	ccs/Makefile
	ces/Makefile
	lib/Makefile
	util/Makefile
	build/rules.mk
	])
