X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9b5e89f5f3e603d4d2ca211112cfdea35995cca..eb9e6a00be2fc28935fe4eb90da9ba543abd8854:/acinclude.m4 diff --git a/acinclude.m4 b/acinclude.m4 index 4c235b2e91..4f7ee95a2b 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,89 +1,12 @@ dnl --------------------------------------------------------------------------- dnl -dnl Purpose: Cursom macros for autoconf configure script. -dnl Author: Vadim Zeitlin -dnl Created: 26.05.99 -dnl Version: $Id$ -dnl --------------------------------------------------------------------------- - -dnl =========================================================================== -dnl GKT+ version test -dnl =========================================================================== - -dnl --------------------------------------------------------------------------- -dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables -dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined. -dnl --------------------------------------------------------------------------- -dnl -AC_DEFUN(AM_PATH_GTK, -[ - if test x$gtk_config_exec_prefix != x ; then - gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" - if test x${GTK_CONFIG+set} != xset ; then - GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config - fi - fi - if test x$gtk_config_prefix != x ; then - gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" - if test x${GTK_CONFIG+set} != xset ; then - GTK_CONFIG=$gtk_config_prefix/bin/gtk-config - fi - fi - - AC_PATH_PROG(GTK_CONFIG, gtk-config, no) - min_gtk_version=ifelse([$1], ,0.99.7,$1) - AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) - no_gtk="" - if test "$GTK_CONFIG" != "no" ; then - GTK_CFLAGS=`$GTK_CONFIG --cflags` - GTK_LIBS=`$GTK_CONFIG --libs` - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GTK_CFLAGS" - LIBS="$LIBS $GTK_LIBS" +dnl Macros for configure.in for wxWindows by Robert Roebling, Phil Blecker, +dnl Vadim Zeitlin and Ron Lee dnl -dnl Now check if the installed GTK is sufficiently new. (Also sanity -dnl checks the results of gtk-config to some extent) +dnl This script is under the wxWindows licence. dnl - AC_TRY_RUN([ -#include -#include - -int -main () -{ - int major, minor, micro; - - if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_gtk_version"); - exit(1); - } - - if (gtk_minor_version == 1) return FALSE; - - return !((gtk_major_version > major) || - ((gtk_major_version == major) && (gtk_minor_version > minor)) || - ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))); -} -],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - else - no_gtk=yes - fi - if test "x$no_gtk" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - GTK_CFLAGS="" - GTK_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) -]) +dnl Version: $Id$ +dnl --------------------------------------------------------------------------- dnl =========================================================================== dnl macros to find the a file in the list of include/lib paths @@ -93,7 +16,7 @@ dnl --------------------------------------------------------------------------- dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes dnl to the full name of the file that was found or leaves it empty if not found dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_PATH_FIND_INCLUDES, +AC_DEFUN([WX_PATH_FIND_INCLUDES], [ ac_find_includes= for ac_dir in $1; @@ -106,15 +29,15 @@ for ac_dir in $1; ]) dnl --------------------------------------------------------------------------- -dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes +dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries dnl to the full name of the file that was found or leaves it empty if not found dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_PATH_FIND_LIBRARIES, +AC_DEFUN([WX_PATH_FIND_LIBRARIES], [ ac_find_libraries= for ac_dir in $1; do - for ac_extension in a so sl; do + for ac_extension in a so sl dylib; do if test -f "$ac_dir/lib$2.$ac_extension"; then ac_find_libraries=$ac_dir break 2 @@ -126,7 +49,7 @@ for ac_dir in $1; dnl --------------------------------------------------------------------------- dnl Path to include, already defined dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_INCLUDE_PATH_EXIST, +AC_DEFUN([WX_INCLUDE_PATH_EXIST], [ ac_path_to_include=$1 echo "$2" | grep "\-I$1" > /dev/null @@ -134,21 +57,21 @@ AC_DEFUN(WX_INCLUDE_PATH_EXIST, if test $result = 0; then ac_path_to_include="" else - ac_path_to_include="-I$1" + ac_path_to_include=" -I$1" fi ]) dnl --------------------------------------------------------------------------- dnl Path to link, already defined dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_LINK_PATH_EXIST, +AC_DEFUN([WX_LINK_PATH_EXIST], [ echo "$2" | grep "\-L$1" > /dev/null result=$? if test $result = 0; then ac_path_to_link="" else - ac_path_to_link="-L$1" + ac_path_to_link=" -L$1" fi ]) @@ -164,7 +87,7 @@ dnl dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling) dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_CPP_NEW_HEADERS, +AC_DEFUN([WX_CPP_NEW_HEADERS], [ if test "$cross_compiling" = "yes"; then ifelse([$2], , :, [$2]) @@ -174,10 +97,10 @@ AC_DEFUN(WX_CPP_NEW_HEADERS, AC_CHECK_HEADERS(iostream) - if test "x$HAVE_IOSTREAM" = x ; then - ifelse([$2], , :, [$2]) - else + if test "$ac_cv_header_iostream" = "yes" ; then ifelse([$1], , :, [$1]) + else + ifelse([$2], , :, [$2]) fi AC_LANG_RESTORE @@ -190,27 +113,27 @@ dnl dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_CPP_BOOL, +AC_DEFUN([WX_CPP_BOOL], [ AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool, [ AC_LANG_SAVE AC_LANG_CPLUSPLUS - AC_TRY_RUN([ - int main() - { - bool b = true; + AC_TRY_COMPILE( + [ + ], + [ + bool b = true; - return 0; - } + return 0; ], [ - AC_DEFINE(HAVE_BOOL) wx_cv_cpp_bool=yes ], - wx_cv_cpp_bool=no, - wx_cv_cpp_bool=no + [ + wx_cv_cpp_bool=no + ] ) AC_LANG_RESTORE @@ -221,57 +144,12 @@ AC_DEFUN(WX_CPP_BOOL, fi ]) -dnl --------------------------------------------------------------------------- -dnl WX_CPP_SIZE_T_IS_NOT_INT checks whether size_t and int are different types, -dnl i.e. whether we may overload operator[] on its argument type -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_CPP_SIZE_T_IS_NOT_INT, -[ - AC_CACHE_CHECK([if size_t and int are different types], wx_cv_cpp_sizet_not_int, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - - AC_TRY_RUN([ - #include - - class S - { - public: - S(char *s) { m_s = s; } - - char operator[](size_t n) const { return m_s[n]; } - char operator[](int n) const { return m_s[n]; } - - private: - char *m_s; - }; - - int main() - { - S s("dummy"); - size_t n1 = 2; - int n2 = 3; - - return s[n1] == s[n2]; - } - ], - AC_DEFINE(wxUSE_SIZE_T_STRING_OPERATOR) wx_cv_cpp_sizet_not_int=yes, - wx_cv_cpp_sizet_not_int=no, - wx_cv_cpp_sizet_not_int=no - ) - - AC_LANG_RESTORE - ]) -]) - dnl --------------------------------------------------------------------------- dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_C_BIGENDIAN, -[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian, +AC_DEFUN([WX_C_BIGENDIAN], +[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian, [ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. AC_TRY_COMPILE([#include @@ -294,7 +172,7 @@ AC_TRY_RUN([main () { } u; u.l = 1; exit (u.c[sizeof (long) - 1] == 1); -}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown) +}], [ac_cv_c_bigendian=no], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=unknown]) fi]) if test $ac_cv_c_bigendian = unknown; then AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file]) @@ -308,7 +186,7 @@ dnl --------------------------------------------------------------------------- dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_ARG_CACHE_INIT, +AC_DEFUN([WX_ARG_CACHE_INIT], [ wx_arg_cache_file="configarg.cache" echo "loading argument cache $wx_arg_cache_file" @@ -317,19 +195,69 @@ AC_DEFUN(WX_ARG_CACHE_INIT, touch ${wx_arg_cache_file} ]) -AC_DEFUN(WX_ARG_CACHE_FLUSH, +AC_DEFUN([WX_ARG_CACHE_FLUSH], [ echo "saving argument cache $wx_arg_cache_file" mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file} ]) +dnl this macro checks for a three-valued command line --with argument: +dnl possible arguments are 'yes', 'no', 'sys', or 'builtin' +dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name) +AC_DEFUN([WX_ARG_SYS_WITH], + [ + AC_MSG_CHECKING([for --with-$1]) + no_cache=0 + AC_ARG_WITH($1, [$2], + [ + if test "$withval" = yes; then + ac_cv_use_$1='$3=yes' + elif test "$withval" = no; then + ac_cv_use_$1='$3=no' + elif test "$withval" = sys; then + ac_cv_use_$1='$3=sys' + elif test "$withval" = builtin; then + ac_cv_use_$1='$3=builtin' + else + AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin]) + fi + ], + [ + LINE=`grep "$3" ${wx_arg_cache_file}` + if test "x$LINE" != x ; then + eval "DEFAULT_$LINE" + else + no_cache=1 + fi + + ac_cv_use_$1='$3='$DEFAULT_$3 + ]) + + eval "$ac_cv_use_$1" + if test "$no_cache" != 1; then + echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp + fi + + if test "$$3" = yes; then + AC_MSG_RESULT(yes) + elif test "$$3" = no; then + AC_MSG_RESULT(no) + elif test "$$3" = sys; then + AC_MSG_RESULT([system version]) + elif test "$$3" = builtin; then + AC_MSG_RESULT([builtin version]) + else + AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin]) + fi + ]) + dnl this macro checks for a command line argument and caches the result dnl usage: WX_ARG_WITH(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_WITH, +AC_DEFUN([WX_ARG_WITH], [ - AC_MSG_CHECKING("for --with-$1") + AC_MSG_CHECKING([for --with-$1]) no_cache=0 - AC_ARG_WITH($1, $2, + AC_ARG_WITH($1, [$2], [ if test "$withval" = yes; then ac_cv_use_$1='$3=yes' @@ -362,11 +290,11 @@ AC_DEFUN(WX_ARG_WITH, dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_ENABLE, +AC_DEFUN([WX_ARG_ENABLE], [ - AC_MSG_CHECKING("for --enable-$1") + AC_MSG_CHECKING([for --enable-$1]) no_cache=0 - AC_ARG_ENABLE($1, $2, + AC_ARG_ENABLE($1, [$2], [ if test "$enableval" = yes; then ac_cv_use_$1='$3=yes' @@ -397,3 +325,87 @@ AC_DEFUN(WX_ARG_ENABLE, fi ]) + + +dnl =========================================================================== +dnl "3rd party" macros included here because they are not widely available +dnl =========================================================================== + +dnl --------------------------------------------------------------------------- +dnl test for availability of iconv() +dnl --------------------------------------------------------------------------- + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + AC_ARG_WITH([libiconv-prefix], +[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ + for dir in `echo "$withval" | tr : ' '`; do + if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi + if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi + done + ]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS -liconv" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const, + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ], + [], + wx_cv_func_iconv_const="no", + wx_cv_func_iconv_const="yes" + ) + ) + + iconv_const= + if test "x$wx_cv_func_iconv_const" = "xyes"; then + iconv_const="const" + fi + + AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const, + [Define as const if the declaration of iconv() needs const.]) + fi + LIBICONV= + if test "$am_cv_lib_iconv" = yes; then + LIBICONV="-liconv" + fi + AC_SUBST(LIBICONV) +]) +