blob: 87b792d6fba83e87eca3d3c10a8f3fe4ecdb5dd9 [file] [log] [blame]
AC_CONFIG_AUX_DIR(./helpers)
OS=`./config.guess`
OS=`./config.sub $OS`
echo "Configuring APR library"
echo "Platform: ${OS}"
dnl Process this file with autoconf to produce a configure script.
AC_INIT(configure.in)
AC_CONFIG_HEADER(include/apr_config.h)
AC_ARG_WITH(optim,[ --with-optim="FLAGS" compiler optimisation flags],
[OPTIM="$withval"])
# Most platforms use a prefix of 'lib' on their library files.
LIBPREFIX='lib'
dnl Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_MAKE_SET
AC_CHECK_PROG(RM, rm, rm)
AC_CHECK_PROG(AR, ar, ar)
dnl # this is the place to put specific options for platform/compiler
dnl # combinations
case "$OS:$CC" in
*-hp-hpux*:cc ) CFAGS="$CFLAGS -Ae +DAportable" ;;
esac
# This macro needs to be here in case we are on an AIX box.
AC_AIX
dnl Checks for integer size
AC_CHECK_SIZEOF(char, 1)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(long double, 12)
AC_CHECK_SIZEOF(long long, 8)
dnl Checks for standard typedefs
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_UID_T
AC_CHECK_TYPE(ssize_t, int)
AC_C_INLINE
# Use /bin/sh if it exists, otherwise go looking for sh in the path
if (test -z "$SH" -a -e /bin/sh); then
SH="/bin/sh"
fi
AC_CHECK_PROG(SH, sh, sh)
AC_CHECK_DEFINE(LOCK_EX, sys/file.h)
AC_CHECK_DEFINE(F_SETLK, fcntl.h)
AC_CHECK_DEFINE(PTHREAD_PROCESS_SHARED, pthread.h)
dnl Checks for libraries.
AC_BEGIN_DECISION([lock implementation method])
AC_IFALLYES(header:sys/file.h define:LOCK_EX,
AC_DECIDE(USE_FLOCK_SERIALIZE, [4.2BSD-style flock()]))
AC_IFALLYES(header:sys/ipc.h header:sys/sem.h header:sys/file.h dnl
func:semget func:semctl,
AC_DECIDE(USE_SYSVSEM_SERIALIZE, [SysV IPC semget()]))
AC_IFALLYES(header:fcntl.h define:F_SETLK,
AC_DECIDE(USE_FCNTL_SERIALIZE, [SVR4-style fcntl()]))
AC_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED dnl
custom:use_pthread_cross,
AC_DECIDE(USE_PROC_PTHREAD_SERIALIZE, [pthread mutex]))
AC_DECISION_FORCE(USE_FCNTL_SERIALIZE)
AC_END_DECISION
AC_DEFINE_UNQUOTED($ac_decision)
AC_USE_FUNCTION(pthread_mutex_init, PTHREAD_SERIALIZE)
case "$OS" in
*beos*)
OSDIR="beos"
;;
*)
OSDIR="unix"
;;
esac
AC_CHECK_LIB(dl, dlopen)
AC_CHECK_LIB(pthread, pthread_mutex_init)
if (test "$SYS_SW" = "AIX"); then
CFLAGS="$CFLAGS -U__STR__"
case "$SYS_KV" in
[12]*)
AC_DEFINE(USEBCOPY)
;;
3*)
AC_DEFINE(NEED_RLIM_T)
;;
41*)
AC_DEFINE(NEED_RLIM_T)
;;
esac
fi
if (test "$SYS_SW" = "FreeBSD"); then
CFLAGS="$CFLAGS -pthread -U__STR__"
fi
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(crypt.h)
AC_CHECK_HEADERS(ctype.h)
AC_CHECK_HEADERS(dir.h)
AC_CHECK_HEADERS(dirent.h)
AC_CHECK_HEADERS(errno.h)
AC_CHECK_HEADERS(net/errno.h)
AC_CHECK_HEADERS(fcntl.h)
AC_CHECK_HEADERS(features.h)
AC_CHECK_HEADERS(grp.h)
AC_CHECK_HEADERS(io.h)
AC_CHECK_HEADERS(limits.h)
AC_CHECK_HEADERS(malloc.h)
AC_CHECK_HEADERS(math.h)
AC_CHECK_HEADERS(memory.h)
AC_CHECK_HEADERS(netdb.h)
AC_CHECK_HEADERS(osreldate.h)
AC_CHECK_HEADERS(process.h)
AC_CHECK_HEADERS(pwd.h)
AC_CHECK_HEADERS(setjmp.h)
AC_CHECK_HEADERS(signal.h)
AC_CHECK_HEADERS(stdarg.h)
AC_CHECK_HEADERS(stddef.h)
AC_CHECK_HEADERS(stdio.h)
AC_CHECK_HEADERS(stdlib.h)
AC_CHECK_HEADERS(string.h)
AC_CHECK_HEADERS(sysapi.h)
AC_CHECK_HEADERS(sysgtime.h)
AC_CHECK_HEADERS(time.h)
AC_CHECK_HEADERS(sys/time.h)
AC_CHECK_HEADERS(sys/times.h)
AC_CHECK_HEADERS(tpfeq.h)
AC_CHECK_HEADERS(tpfio.h)
AC_CHECK_HEADERS(unistd.h)
AC_CHECK_HEADERS(unix.h)
AC_CHECK_HEADERS(winsock.h)
AC_CHECK_HEADERS(arpa/inet.h)
AC_CHECK_HEADERS(netinet/in.h)
AC_CHECK_HEADERS(sys/file.h)
AC_CHECK_HEADERS(sys/ioctl.h)
AC_CHECK_HEADERS(sys/mman.h)
AC_CHECK_HEADERS(sys/param.h)
AC_CHECK_HEADERS(sys/resource.h)
AC_CHECK_HEADERS(sys/select.h)
AC_CHECK_HEADERS(sys/socket.h)
AC_CHECK_HEADERS(sys/stat.h)
AC_CHECK_HEADERS(sys/types.h)
AC_CHECK_HEADERS(sys/wait.h)
AC_CHECK_HEADERS(pthread.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_FUNC_MMAP
AC_FUNC_SETPGRP
AC_MSG_CHECKING(looking for union semun in sys/sem.h)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
],[
union semun arg;
semctl(0, 0, 0, arg);
], AC_DEFINE(HAVE_STRUCT_UNION_SEMUN)
msg=yes,dnl
msg=no)
AC_MSG_RESULT([$msg])
dnl Checks for library functions.
AC_CHECK_FUNCS(strcasecmp stricmp poll setsid)
AC_CHECK_FUNCS(sigaction writev)
dnl Start building stuff from our information
AC_SUBST(LDLIBS)
AC_SUBST(OPTIM)
AC_SUBST(RANLIB)
AC_SUBST(AR)
AC_SUBST(RM)
AC_SUBST(OSDIR)
AC_SUBST(LIBPREFIX)
AC_SUBST(EXEEXT)
AC_OUTPUT(Makefile lib/Makefile file_io/$OSDIR/Makefile
network_io/$OSDIR/Makefile threadproc/$OSDIR/Makefile
locks/$OSDIR/Makefile misc/$OSDIR/Makefile
time/$OSDIR/Makefile signal/$OSDIR/Makefile
test/Makefile)