blob: 33b7b993109a803a00caf48317fc38496e237ea3 [file] [log] [blame]
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
#
# Declare autoconf version requirements
#
AC_PREREQ(2.61)
#
# Initialize autoconf for the package
#
# Package release version conventions are x.y.z, where x and y track
# the Apple CoreFoundation release version and z tracks the OpenCFLite
# release thereof.
#
AC_INIT([CoreFoundation],[476.17.2],[bfulgham@users.sourceforge.net],[opencflite])
#
# Interface number, revision and age of the library interface passed to
# libtool when the library is linked.
#
AC_SUBST(CF_VERSION_INFO, [476:17:2])
#
# Check the sanity of thes source directory by checking for the
# presence of a key watch file
#
AC_CONFIG_SRCDIR([CoreFoundation.h])
#
# Tell autoconf where to find auxilliary build tools (e.g. config.guess,
# install-sh, missing, etc.)
#
AC_CONFIG_AUX_DIR([config])
#
# Tell autoconf where to find auxilliary M4 macros
#
AC_CONFIG_MACRO_DIR([m4])
#
# Tell autoconf what file the package is using to aggregate C preprocessor
# defines.
#
AC_CONFIG_HEADERS([include/config.h])
#
# Tell autoconf where to find source files for interfaces that are missing
# in the target environment (see AC_REPLACE_FUNCS below).
#
AC_CONFIG_LIBOBJ_DIR([compat])
#
# Initialize automake for the package, specifying the minimum automake
# version allowed and that we are not an official GNU package, but
# rather a non-GNU package leveraging automake.
#
AM_INIT_AUTOMAKE([1.9 foreign])
#
# Enable maintainer mode to prevent the package from constantly trying
# to rebuild configure, Makefile.in, etc. Rebuilding such files rarely,
# if ever, needs to be done "in the field".
#
AM_MAINTAINER_MODE
#
# Figure out what the canonical build, host and target tuples are.
#
AC_CANONICAL_HOST
AC_MSG_CHECKING([for supported deployment target])
case ${host_os} in
*darwin*)
CPPFLAGS="-DDEPLOYMENT_TARGET_MACOSX=1 ${CPPFLAGS}"
deployment_target="Mac OS X"
;;
*freebsd*)
CPPFLAGS="-DDEPLOYMENT_TARGET_FREEBSD=1 ${CPPFLAGS}"
deployment_target="FreeBSD"
;;
*linux*)
CPPFLAGS="-DDEPLOYMENT_TARGET_LINUX=1 ${CPPFLAGS}"
deployment_target="Linux"
;;
*mingw*)
CPPFLAGS="-DDEPLOYMENT_TARGET_WINDOWS=1 ${CPPFLAGS}"
deployment_target="Windows"
;;
*)
AC_MSG_RESULT([failed])
AC_MSG_ERROR([Unsupported deployment target ${host_os}]);
;;
esac
AC_MSG_RESULT(${deployment_target})
#
# Checks for programs
#
AC_PROG_CC
AC_PROG_CXX
CF_BSD_SOURCE
AC_GNU_SOURCE
AM_PROG_CC_C_O
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LIBTOOL
AC_PROG_LN_S
AC_PROG_RANLIB
AC_PATH_PROG(CMP, cmp)
# Support building DLLs on Windows
AC_LIBTOOL_WIN32_DLL
#
# Checks for language qualifiers and semantics
#
AC_C_CHAR_UNSIGNED
AC_C_CONST
AC_C_INLINE
AC_C_RESTRICT
AC_C_VOLATILE
#
# Checks for compiler characteristics
#
# If using GCC specify some additional parameters
test_gcc_flag() {
AC_LANG_CONFTEST([int main() {}])
$CC -c conftest.c $CFLAGS $@ > /dev/null 2> /dev/null
ret=$?
rm -f conftest.o
return $ret
}
if test "x$GCC" = "xyes" ; then
DESIRED_CFLAGS="-Wall -Wmost -pipe -Wno-trigraphs -Wno-parentheses -fexceptions -std=gnu99 -mmacosx-version-min=10.5 -fconstant-cfstrings"
for flag in $DESIRED_CFLAGS ; do
AC_MSG_CHECKING([whether ${CC} accepts ${flag}])
if test_gcc_flag $flag ; then
CFLAGS="$CFLAGS $flag"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
done
fi
# Check whether the current compiler supports atomic built-ins
AC_MSG_NOTICE([checking for compiler atomic built-ins])
AC_CACHE_CHECK([whether the target supports __sync_fetch_and_add],
[cf_cv_have_sync_fetch_and_add],
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
]],[[
int foo = 0;
return __sync_fetch_and_add(&foo, 1);
]])],
[cf_cv_have_sync_fetch_and_add=yes],
[cf_cv_have_sync_fetch_and_add=no])
])
if test "x${cf_cv_have_sync_fetch_and_add}" != "xno"; then
AC_DEFINE(HAVE___SYNC_FETCH_AND_ADD, 1,
[Define this if your target compiler supports __sync_fetch_and_add])
else
AC_MSG_ERROR([Support for __sync_fetch_and_add is required.])
fi
AC_CACHE_CHECK([whether the target supports __sync_bool_compare_and_swap],
[cf_cv_have_sync_bool_compare_and_swap],
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
]],[[
int foo;
return __sync_bool_compare_and_swap(&foo, 0, 1);
]])],
[cf_cv_have_sync_bool_compare_and_swap=yes],
[cf_cv_have_sync_bool_compare_and_swap=no])
])
if test "x${cf_cv_have_sync_bool_compare_and_swap}" != "xno"; then
AC_DEFINE(HAVE___SYNC_BOOL_COMPARE_AND_SWAP, 1,
[Define this if your target compiler supports __sync_bool_compare_and_swap])
else
AC_MSG_ERROR([Support for __sync_bool_compare_and_swap is required.])
fi
AC_CACHE_CHECK([whether the target supports __sync_synchronize],
[cf_cv_have_sync_synchronize],
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
]],[[
__sync_synchronize();
]])],
[cf_cv_have_sync_synchronize=yes],
[cf_cv_have_sync_synchronize=no])
])
if test "x${cf_cv_have_sync_synchronize}" != "xno"; then
AC_DEFINE(HAVE___SYNC_SYNCHRONIZE, 1,
[Define this if your target compiler supports __sync_synchronize])
else
AC_MSG_ERROR([Support for __sync_synchronize is required.])
fi
#
# Check whether or not we should build the package with debug and profile
# versions of the library
#
AC_MSG_NOTICE([checking library build options])
AC_MSG_CHECKING([whether to build a debug library instance])
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--disable-debug], [Disable the generation of a debug library instance @<:@default=no@:>@.]),
[build_debug=${enableval}],
[build_debug=yes])
AC_MSG_RESULT(${build_debug})
AM_CONDITIONAL([CF_BUILD_DEBUG], [test "x${build_debug}" = "xyes"])
AC_MSG_CHECKING([whether to build a profile library instance])
AC_ARG_ENABLE(profile,
AS_HELP_STRING([--disable-profile], [Disable the generation of a profile library instance @<:@default=no@:>@.]),
[build_profile=${enableval}],
[build_profile=yes])
AC_MSG_RESULT(${build_profile})
AM_CONDITIONAL([CF_BUILD_PROFILE], [test "x${build_profile}" = "xyes"])
AC_MSG_CHECKING([whether to build tests and examples])
AC_ARG_ENABLE(tests,
AS_HELP_STRING([--disable-tests],[Disable building of tests and examples @<:@default=no@:>@.]),
[build_tests=${enableval}],
[build_tests=yes])
AC_MSG_RESULT(${build_tests})
AM_CONDITIONAL([CF_BUILD_TESTS], [test "x${build_tests}" = "xyes"])
#
# Checks for libraries
#
# We expect that we'll need at minimum:
#
# * dl
# * icui18n
# * m
# * pthread
# * uuid
#
# and, maybe:
#
# * rt
#
AC_MSG_NOTICE([checking required package dependencies])
AC_PATH_PROG([PKG_CONFIG],[pkg-config])
#
# Sort out where the ICU components are at.
#
AC_MSG_NOTICE([checking the International Components for Unicode (ICU) package])
AC_PATH_PROG([ICU_CONFIG],[icu-config])
AC_ARG_WITH(icu,
AS_HELP_STRING([--with-icu=DIR],
[Specify location of the International Components for Unicode (ICU) headers and libraries.]),
[
if test "x${withval}" = "xno"; then
AC_MSG_ERROR([${PACKAGE_NAME} requires the International Components for Unicode (ICU) package])
else
icu_dir=${withval}
fi
],
[icu_dir=])
AC_ARG_WITH(icu-includes,
AS_HELP_STRING([--with-icu-includes=DIR],
[Specify location of International Components for Unicode (ICU) headers.]),
[icu_header_dir=${withval}],
[icu_header_dir=])
AC_ARG_WITH(icu-libs,
AS_HELP_STRING([--with-icu-libs=DIR],
[Specify location of International Components for Unicode (ICU) libraries.]),
[icu_library_dir=${withval}],
[icu_library_dir=])
# We always prefer checking the values of the various '--with-icu-...'
# options first to using icu-config because the former might be used
# in a cross-compilation environment on a system that also contains
# icu-config. In such a case, the user wants what he/she specified
# rather than what icu-config indicates.
if test "x${icu_dir}" != "x" -o "x${icu_header_dir}" != "x" -o "x${icu_library_dir}" != "x"; then
if test "x${icu_dir}" != "x"; then
if test -d "${icu_dir}"; then
if test -d "${icu_dir}/include"; then
ICU_CPPFLAGS="-I${icu_dir}/include"
else
ICU_CPPFLAGS="-I${icu_dir}"
fi
if test -d "${icu_dir}/lib"; then
ICU_LDFLAGS="-L${icu_dir}/lib"
else
ICU_LDFLAGS="-L${icu_dir}"
fi
else
AC_MSG_ERROR([No such directory ${icu_dir}])
fi
fi
if test "x${icu_header_dir}" != "x"; then
if test -d "${icu_header_dir}"; then
ICU_CPPFLAGS="-I${icu_header_dir}"
else
AC_MSG_ERROR([No such directory ${icu_header_dir}])
fi
fi
if test "x${icu_library_dir}" != "x"; then
if test -d "${icu_library_dir}"; then
ICU_LDFLAGS="-L${icu_library_dir}"
else
AC_MSG_ERROR([No such directory ${icu_library_dir}])
fi
fi
# Most ICU libraries have versioned symbols
# (e.g. ucal_open_3_8), so the stock AC_CHECK_LIB will not
# work here given the way it checks for symbol
# availability. Punt and assume the library set normally
# reported by icu-config.
ICU_LIBS="${ICU_LDFLAGS} -licui18n -licuuc -licudata"
elif test "x${ICU_CONFIG}" != "x"; then
ICU_CPPFLAGS="`${ICU_CONFIG} --cppflags`"
ICU_LDFLAGS="`${ICU_CONFIG} --ldflags`"
ICU_LIBS="`${ICU_CONFIG} --ldflags-libsonly`"
elif test "x${PKG_CONFIG}" != "x" -a "${PKG_CONFIG} --exists icu"; then
ICU_CPPFLAGS="`${PKG_CONFIG} --cflags icu`"
ICU_LDFLAGS="`${PKG_CONFIG} --libs-only-L icu`"
ICU_LIBS="`${PKG_CONFIG} --libs-only-l icu`"
else
AC_MSG_ERROR([Cannot find the International Components for Unicode (ICU) package.])
fi
AC_SUBST(ICU_CPPFLAGS)
AC_SUBST(ICU_LDFLAGS)
AC_SUBST(ICU_LIBS)
CPPFLAGS="${ICU_CPPFLAGS} ${CPPFLAGS}"
LDFLAGS="${ICU_LDFLAGS} ${LDFLAGS}"
LIBS="${ICU_LIBS} ${LIBS}"
AC_CHECK_HEADERS([unicode/putil.h])
AC_CHECK_HEADERS([unicode/ucal.h])
AC_CHECK_HEADERS([unicode/ucol.h])
AC_CHECK_HEADERS([unicode/ucurr.h])
AC_CHECK_HEADERS([unicode/ucurr.h])
AC_CHECK_HEADERS([unicode/udat.h])
AC_CHECK_HEADERS([unicode/ulocdata.h])
AC_CHECK_HEADERS([unicode/uloc.h])
AC_CHECK_HEADERS([unicode/uloc.h])
AC_CHECK_HEADERS([unicode/umsg.h])
AC_CHECK_HEADERS([unicode/unum.h])
AC_CHECK_HEADERS([unicode/uset.h])
#
# Sort out where the UUID components are at.
#
AC_MSG_NOTICE([checking Universally Unique Identifier (UUID) package])
AC_PATH_PROG([UUID_CONFIG],[uuid-config])
AC_ARG_WITH(uuid,
AS_HELP_STRING([--with-uuid=DIR],
[Specify location of Universally Unique Identifier (UUID) headers and libraries.]),
[
if test "x${withval}" = "xno"; then
AC_MSG_ERROR([${PACKAGE_NAME} requires the Universally Unique Identifier (UUID) package])
fi
uuid_dir=${withval}
],
[uuid_dir=])
AC_ARG_WITH(uuid-includes,
AS_HELP_STRING([--with-uuid-includes=DIR],
[Specify location of Universally Unique Identifier (UUID) headers.]),
[uuid_header_dir=${withval}],
[uuid_header_dir=])
AC_ARG_WITH(uuid-libs,
AS_HELP_STRING([--with-uuid-libs=DIR],
[Specify location of Universally Unique Identifier (UUID) libraries.]),
[uuid_library_dir=${withval}],
[uuid_library_dir=])
# We always prefer checking the values of the various '--with-uuid-...'
# options first to using uuid-config because the former might be used
# in a cross-compilation environment on a system that also contains
# uuid-config. In such a case, the user wants what he/she specified
# rather than what uuid-config indicates.
if test "x${uuid_dir}" != "x" -o "x${uuid_header_dir}" != "x" -o "x${uuid_library_dir}" != "x"; then
if test "x${uuid_dir}" != "x"; then
if test -d "${uuid_dir}"; then
if test -d "${uuid_dir}/include"; then
UUID_CPPFLAGS="-I${uuid_dir}/include"
else
UUID_CPPFLAGS="-I${uuid_dir}"
fi
if test -d "${uuid_dir}/lib"; then
UUID_LDFLAGS="-L${uuid_dir}/lib"
else
UUID_LDFLAGS="-L${uuid_dir}"
fi
else
AC_MSG_ERROR([No such directory ${uuid_dir}])
fi
fi
if test "x${uuid_header_dir}" != "x"; then
if test -d "${uuid_header_dir}"; then
UUID_CPPFLAGS="-I${uuid_header_dir}"
else
AC_MSG_ERROR([No such directory ${uuid_header_dir}])
fi
fi
if test "x${uuid_library_dir}" != "x"; then
if test -d "${uuid_library_dir}"; then
UUID_LDFLAGS="-L${uuid_library_dir}"
else
AC_MSG_ERROR([No such directory ${uuid_library_dir}])
fi
fi
UUID_saved_libs="${LIBS}"
LIBS=""
AC_CHECK_LIB(uuid, uuid_compare)
UUID_LIBS="${UUID_LDFLAGS} ${LIBS}"
LIBS="${UUID_saved_libs}"
unset UUID_saved_libs
elif test "x${UUID_CONFIG}" != "x"; then
UUID_CPPFLAGS="`${UUID_CONFIG} --cflags`"
UUID_LDFLAGS="`${UUID_CONFIG} --ldflags`"
UUID_LIBS="`${UUID_CONFIG} --libs`"
elif test "x${PKG_CONFIG}" != "x" -a "${PKG_CONFIG} --exists uuid"; then
UUID_CPPFLAGS="`${PKG_CONFIG} --cflags uuid`"
UUID_LDFLAGS="`${PKG_CONFIG} --libs-only-L uuid`"
UUID_LIBS="`${PKG_CONFIG} --libs-only-l uuid`"
else
AC_MSG_ERROR([Cannot find the Universally Unique Identifier (UUID) package.])
fi
AC_SUBST(UUID_CPPFLAGS)
AC_SUBST(UUID_LDFLAGS)
AC_SUBST(UUID_LIBS)
CPPFLAGS="${UUID_CPPFLAGS} ${CPPFLAGS}"
LDFLAGS="${UUID_LDFLAGS} ${LDFLAGS}"
LIBS="${UUID_LIBS} ${LIBS}"
AC_CHECK_HEADERS([uuid/uuid.h])
#
# Check for POSIX thread support.
#
ACX_PTHREAD([],AC_MSG_ERROR([${PACKAGE_NAME} requires POSIX threads.]))
CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}"
CPPFLAGS="${PTHREAD_CPPFLAGS} ${CPPFLAGS}"
LDFLAGS="${PTHREAD_LDFLAGS} ${LDFLAGS}"
LIBS="${PTHREAD_LIBS} ${LIBS}"
#
# Check for where clock_gettime and friends are located.
#
AC_CHECK_LIB(rt, clock_gettime)
#
# Check for DLFCN support.
#
AC_CHECK_LIB(dl, dlopen)
AC_CHECK_HEADERS([dlfcn.h])
#
# Check for math support.
#
AC_CHECK_LIB(m, floor)
AC_CHECK_HEADERS([math.h])
#
# Check for where the default local time zone data file and time zone
# data files are/will be located on the target system (this might be
# different from where they are on the build system).
#
AC_MSG_CHECKING([where to find the default local time zone data file])
AC_ARG_WITH(tz-default,
AS_HELP_STRING([--with-tz-default=FILE],
[Specify the location of the default local time zone data file on the target system @<:@default=/etc/localtime@:>@.]),
[tz_default_file=${withval}],
[tz_default_file="/etc/localtime"])
AC_MSG_RESULT(${tz_default_file})
AC_DEFINE_UNQUOTED([TZDEFAULT],["${tz_default_file}"],[Define this to the location of the default local time zone data file (e.g. /etc/localtime) on the target system.])
AC_MSG_CHECKING([where to find the time zone data files])
AC_ARG_WITH(tz-data,
AS_HELP_STRING([--with-tz-data=DIR],
[Specify the location of the time zone data files on the target system @<:@default=/usr/share/zoneinfo@:>@.]),
[tz_data_dir=${withval}],
[tz_data_dir="/usr/share/zoneinfo"])
AC_MSG_RESULT(${tz_data_dir})
AC_DEFINE_UNQUOTED([TZDIR],["${tz_data_dir}"],[Define this to the location of the time zone data files (e.g. /usr/share/zoneinfo) on the target system.])
#
# Check for tzcode header support.
#
# Most systems based on the GNU C library do not have the header from
# tzcode (see ftp://elsie.nci.nih.gov/pub/), "tzfile.h" installed which is
# needed. Check if it exists. If it doesn't let the user point us at it.
#
AC_ARG_WITH(tz-includes,
AS_HELP_STRING([--with-tz-includes=DIR],
[Specify location of Time Zone (tzcode) headers @<:@default=/usr/include@:>@.]),
[
if test "x${withval}" != "xyes"; then
if test -d "${withval}/include"; then
TZ_CPPFLAGS="-I${withval}/include"
else
TZ_CPPFLAGS="-I${withval}"
fi
fi
])
CPPFLAGS="${TZ_CPPFLAGS} ${CPPFLAGS}"
AC_CHECK_HEADER([tzfile.h],[true],AC_MSG_ERROR([${PACKAGE_NAME} requires 'tzfile.h'. Download the latest tzcode package from 'ftp://elsie.nci.nih.gov/pub/' and/or use the '--with-tz-includes=DIR' configuration option.]))
#
# Check for headers
#
AC_HEADER_DIRENT
AC_HEADER_STDBOOL
AC_HEADER_STDC
AC_HEADER_TIME
AC_CHECK_HEADERS([alloca.h])
AC_CHECK_HEADERS([arpa/nameser.h])
AC_CHECK_HEADERS([assert.h])
AC_CHECK_HEADERS([dns_sd.h])
AC_CHECK_HEADERS([errno.h])
AC_CHECK_HEADERS([fcntl.h])
AC_CHECK_HEADERS([limits.h])
AC_CHECK_HEADERS([locale.h])
AC_CHECK_HEADERS([malloc.h])
AC_CHECK_HEADERS([malloc/malloc.h])
AC_CHECK_HEADERS([netinet/in.h])
AC_CHECK_HEADERS([objc/objc.h])
AC_CHECK_HEADERS([objc/runtime.h])
AC_CHECK_HEADERS([poll.h])
AC_CHECK_HEADERS([pwd.h])
AC_CHECK_HEADERS([semaphore.h])
AC_CHECK_HEADERS([setjmp.h])
AC_CHECK_HEADERS([signal.h])
AC_CHECK_HEADERS([stdarg.h])
AC_CHECK_HEADERS([stdbool.h])
AC_CHECK_HEADERS([stddef.h])
AC_CHECK_HEADERS([stdint.h])
AC_CHECK_HEADERS([stdio.h])
AC_CHECK_HEADERS([stdlib.h])
AC_CHECK_HEADERS([string.h])
AC_CHECK_HEADERS([syslog.h])
AC_CHECK_HEADERS([time.h])
AC_CHECK_HEADERS([unistd.h])
AC_CHECK_HEADERS([xlocale.h])
AC_CHECK_HEADERS([sys/cdefs.h])
AC_CHECK_HEADERS([sys/errno.h])
AC_CHECK_HEADERS([sys/fcntl.h])
AC_CHECK_HEADERS([sys/ioctl.h])
AC_CHECK_HEADERS([sys/mman.h])
AC_CHECK_HEADERS([sys/param.h])
AC_CHECK_HEADERS([sys/socket.h])
AC_CHECK_HEADERS([sys/stat.h])
AC_CHECK_HEADERS([sys/time.h])
AC_CHECK_HEADERS([sys/types.h])
AC_CHECK_HEADERS([sys/uio.h])
#
# Checks for types and structures
#
AC_TYPE_INT8_T
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UID_T
AC_TYPE_UINT8_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_STRUCT_TIMEZONE
#
# Checks for library functions
#
AC_FUNC_ALLOCA
AC_FUNC_CHOWN
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_FORK
AC_FUNC_MMAP
AC_FUNC_SELECT_ARGTYPES
AC_CHECK_FUNCS([getcwd])
AC_CHECK_FUNCS([gethostname])
AC_CHECK_FUNCS([malloc realloc])
AC_CHECK_FUNCS([memchr memcmp memmove memset])
AC_CHECK_FUNCS([mkdir])
AC_CHECK_FUNCS([munmap])
AC_CHECK_FUNCS([rmdir])
AC_CHECK_FUNCS([select])
AC_CHECK_FUNCS([setenv])
AC_CHECK_FUNCS([socket])
AC_CHECK_FUNCS([getgid getuid getegid geteuid])
AC_CHECK_FUNCS([getpid])
AC_CHECK_FUNCS([strerror])
AC_CHECK_FUNCS([rint strchr strdup strrchr strstr strtod strtol strtoul])
AC_CHECK_FUNCS([strncmp strncasecmp])
AC_CHECK_FUNCS([ustrncmp ustrncasecmp])
AC_CHECK_FUNCS([symlink])
AC_CHECK_FUNCS([readlink])
AC_CHECK_FUNCS([lstat stat])
AC_CHECK_FUNCS([snprintf])
# Figure out how to map strlcat and strlcpy if they don't exist by
# either simply redefining them or by using a local compatibility
# implementation.
#
# Some caveats are worth mentioning with respect to defining them to
# strn{cat,cpy}. In particular, strl{cat,cpy}:
#
# 1) ALWAYS NULL-terminate if the destination has length.
# 2) Take the full size of the buffer (not the space left over).
# 3) Don't NULL-fill the remainder of its destination.
# 4) Return a size_t size rather than a char * pointer.
#
# While CoreFoundation has not been found to rely on any of these
# differences, it may in the future.
CF_REPLACE_STRLN_FUNC([cat])
CF_REPLACE_STRLN_FUNC([cpy])
#
# Other ibrary functions we might need to provide local compatibility
# implementations of.
#
AC_REPLACE_FUNCS([flsl gettimeofday])
#
# Identify the various makefiles and auto-generated files for the package
#
AC_CONFIG_FILES([
CoreFoundation.pc
Makefile
include/Makefile
compat/Makefile
tests/Makefile
examples/Makefile
examples/Allocator/Makefile
examples/CFLocalServer/Makefile
examples/CFMessagePort/Makefile
examples/CFRunLoopTimerExample/Makefile
examples/CFTest/Makefile
examples/DisplayURL/Makefile
examples/DNSServiceMetaQuery/Makefile
examples/ReadPListExample/Makefile
examples/SimpleWebServer/Makefile
examples/StringExample/Makefile
examples/WritePListExample/Makefile
])
#
# Generate them
#
AC_OUTPUT
AC_MSG_NOTICE([
Configuration Summary
---------------------
Package : ${PACKAGE_NAME}
Version : ${PACKAGE_VERSION}
Deployment target : ${deployment_target}
Build shared library : ${enable_shared}
Build static library : ${enable_static}
Build debug library : ${build_debug}
Build profile library : ${build_profile}
Build examples and tests : ${build_tests}
Prefix : ${prefix}
ICU compile options : ${ICU_CPPFLAGS}
ICU link options : ${ICU_LDFLAGS}
ICU link libraries : ${ICU_LIBS}
POSIX thread compile options: ${PTHREAD_CFLAGS}
POSIX thread link options : ${PTHREAD_LIBS}
UUID compile options : ${UUID_CPPFLAGS}
UUID link options : ${UUID_LDFLAGS}
UUID link libraries : ${UUID_LIBS}
Time Zone compile options : ${TZ_CPPFLAGS}
Time Zone default file : ${tz_default_file}
Time Zone data directory : ${tz_data_dir}
Compiler : ${CC}
Preprocessor flags : ${CPPFLAGS}
Compile flags : ${CFLAGS}
Link flags : ${LDFLAGS}
Link libraries : ${LIBS}
])