| # -*- 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} |
| |
| ]) |