dnl -*-m4-*- dnl configure.in for ICU dnl Stephen F. Booth dnl Process this file with autoconf to produce a configure script AC_INIT(common/utypes.h) AC_CONFIG_HEADER(common/icucfg.h) PACKAGE="icu" AC_SUBST(PACKAGE) VERSION="1.3.1" AC_SUBST(VERSION) dnl Checks for programs AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true) dnl Determine the host system and Makefile fragment AC_CANONICAL_HOST ICU_CHECK_MH_FRAG dnl Checks for libraries dnl On HP/UX, don't link to -lm from a shared lib because it isn't dnl PIC (at least on 10.2) case "${host}" in *-*-hpux*) AC_CHECK_LIB(m, floor, LIB_M="-lm") ;; *) AC_CHECK_LIB(m, floor) LIB_M="" ;; esac AC_SUBST(LIB_M) dnl special pthread handling dnl AIX uses pthreads instead of pthread, and HP/UX uses cma AC_CHECK_LIB(pthread, pthread_create) if test $ac_cv_lib_pthread_pthread_create = no; then AC_CHECK_LIB(pthreads, pthread_create) fi if test $ac_cv_lib_pthread_pthread_create = no; then AC_CHECK_LIB(cma, pthread_create) fi dnl Checks for header files AC_CHECK_HEADERS(inttypes.h) if test $ac_cv_header_inttypes_h = no; then HAVE_INTTYPES_H=0 else HAVE_INTTYPES_H=1 fi AC_SUBST(HAVE_INTTYPES_H) dnl Check for endianness AC_C_BIGENDIAN(unknown) if test $ac_cv_c_bigendian = no; then U_IS_BIG_ENDIAN=0 else U_IS_BIG_ENDIAN=1 fi AC_SUBST(U_IS_BIG_ENDIAN) dnl Checks for typedefs AC_CHECK_TYPE(int8_t,signed char) AC_CHECK_TYPE(uint8_t,unsigned char) AC_CHECK_TYPE(int16_t,signed short) AC_CHECK_TYPE(uint16_t,unsigned short) AC_CHECK_TYPE(int32_t,signed long) AC_CHECK_TYPE(uint32_t,unsigned long) AC_CHECK_TYPE(bool_t,signed char) if test $ac_cv_type_int8_t = no; then HAVE_INT8_T=0 else HAVE_INT8_T=1 fi AC_SUBST(HAVE_INT8_T) if test $ac_cv_type_uint8_t = no; then HAVE_UINT8_T=0 else HAVE_UINT8_T=1 fi AC_SUBST(HAVE_UINT8_T) if test $ac_cv_type_int16_t = no; then HAVE_INT16_T=0 else HAVE_INT16_T=1 fi AC_SUBST(HAVE_INT16_T) if test $ac_cv_type_uint16_t = no; then HAVE_UINT16_T=0 else HAVE_UINT16_T=1 fi AC_SUBST(HAVE_UINT16_T) if test $ac_cv_type_int32_t = no; then HAVE_INT32_T=0 else HAVE_INT32_T=1 fi AC_SUBST(HAVE_INT32_T) if test $ac_cv_type_uint32_t = no; then HAVE_UINT32_T=0 else HAVE_UINT32_T=1 fi AC_SUBST(HAVE_UINT32_T) if test $ac_cv_type_bool_t = no; then HAVE_BOOL_T=0 else HAVE_BOOL_T=1 fi AC_SUBST(HAVE_BOOL_T) dnl Enable/disable extras AC_ARG_ENABLE(extras, [ --enable-extras build ICU extras [default=yes]], [case "${enableval}" in yes) extras=true ;; no) extras=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-extras) ;; esac], extras=true) ICU_CONDITIONAL(EXTRAS, test "$extras" = true) dnl Enable/disable tests AC_ARG_ENABLE(tests, [ --enable-tests build ICU tests [default=yes]], [case "${enableval}" in yes) tests=true ;; no) tests=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-tests) ;; esac], tests=true) ICU_CONDITIONAL(TESTS, test "$tests" = true) dnl Enable/disable samples AC_ARG_ENABLE(samples, [ --enable-samples build ICU samples [default=yes]], [case "${enableval}" in yes) samples=true ;; no) samples=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-samples) ;; esac], samples=true) ICU_CONDITIONAL(SAMPLES, test "$samples" = true) dnl Platform-specific Makefile setup case "${host}" in *-*-solaris*) platform=SOLARIS ;; *-*-linux*) platform=LINUX ;; *-*-aix*) platform=AIX ;; *-*-hpux*) platform=HPUX ;; *-*-os390*) platform=OS390 ;; *) platform=UNKNOWN ;; esac AC_SUBST(platform) host_frag=$icu_cv_host_frag AC_SUBST_FILE(host_frag) dnl Handle -rpath options for shared library paths case "${host}" in *-*-solaris*) ld_rpath_suf=":" ;; *-*-linux*) ld_rpath_suf=" " ;; *-*-aix*) ld_rpath_suf="" ;; *-*-hpux*) ld_rpath_suf=":" ;; *-*-os390*) ld_rpath_suf=" " ;; *) ld_rpath_suf="" ;; esac AC_SUBST(ld_rpath_suf) dnl On HP/UX, main() functions compiled in C don't invoke dnl static constructors in C++ libs. Hack around that here dnl by renaming some .c files to .cpp case "${host}" in *-*-hpux*) for file in tools/gencol/gencol samples/date/date \ samples/cal/cal test/cintltst/cintltst do if test -f $file.c; then mv $file.c $file.cpp fi done ;; esac dnl output the Makefiles AC_OUTPUT([Makefile \ common/Makefile common/platform.h config/Makefile i18n/Makefile \ extra/Makefile extra/ustdio/Makefile \ tools/Makefile tools/ctestfw/Makefile tools/makeconv/Makefile \ tools/genrb/Makefile tools/gencol/Makefile \ tools/rbdump/Makefile \ test/Makefile test/intltest/Makefile test/cintltst/Makefile \ test/ieeetest/Makefile \ samples/Makefile samples/date/Makefile samples/cal/Makefile \ samples/XMLConverter/Makefile])