X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5f0f31fefdd405df6426dca685fa4643bf3aeaef..1ec11a06458a608a95c1253fdffe96a65bcdd54a:/configure.in diff --git a/configure.in b/configure.in index 5ed268a1ff..ca2a5c4e4e 100644 --- a/configure.in +++ b/configure.in @@ -7,6 +7,7 @@ dnl This script is under the wxWindows licence. dnl $Id$ 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 dnl @@ -61,7 +62,7 @@ main () exit(1); } - if (gtk_minor_version > 0) return FALSE; + if (gtk_minor_version == 1) return FALSE; return !((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || @@ -452,40 +453,40 @@ if test "$ac_cv_header_linux_joystick_h" = "yes"; then fi AC_SUBST(GTK_JOYSTICK) +dnl some systems (AIX) define some of string function in strings.h +AC_CHECK_HEADERS(strings.h) + +dnl ####################### +dnl # check for functions # +dnl ####################### + dnl check for vprintf/vsprintf() which are GNU extensions AC_FUNC_VPRINTF -dnl check for several standard functions we use if they are available -AC_CHECK_FUNCS(vsnprintf vfork) - -dnl check for usleep() and nanosleep() which is better in MT programs -dnl AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), -dnl [ -dnl AC_CHECK_LIB(posix4, nanosleep, -dnl AC_DEFINE(HAVE_NANOSLEEP), -dnl AC_CHECK_FUNCS(usleep)) -dnl ] -dnl ) -AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), -[AC_CHECK_LIB(posix4, nanosleep, AC_DEFINE(HAVE_NANOSLEEP), - [AC_CHECK_FUNCS(usleep, AC_DEFINE(HAVE_USLEEP), - AC_MSG_WARN(Sleep() function will not work) - )] - )] -) +dnl check for vsnprintf() - a safe version of vsprintf() +AC_CHECK_FUNCS(vsnprintf, + AC_DEFINE(HAVE_VSNPRINTF), + AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf) + ) + +dnl check for vfork() (even if it's the same as fork() in modern Unices) +AC_CHECK_FUNCS(vfork) + +POSIX4_LINK= +AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), [ + AC_CHECK_LIB(posix4, nanosleep, [ + AC_DEFINE(HAVE_NANOSLEEP) + POSIX4_LINK="-lposix4" + ], [ + AC_CHECK_FUNCS(usleep, + AC_DEFINE(HAVE_USLEEP), + AC_MSG_WARN(Sleep() function will not work)) + ]) +]) dnl check for uname (POSIX) and gethostname (BSD) AC_CHECK_FUNCS(uname gethostname, break) -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -AC_CHECK_HEADERS(iostream) -if test "x$HAVE_IOSTREAM" = "x" ; then - AC_DEFINE(wxUSE_IOSTREAMH) -fi -AC_LANG_RESTORE - -dnl defines HAVE_IOSTREAM dnl ################### dnl # checks typedefs # dnl ################### @@ -530,7 +531,6 @@ dnl defines HAVE_TZNAME if external array tzname is found dnl ################################### dnl # checks compiler characteristics # dnl ################################### -dnl AC_C_CROSS AC_C_CONST dnl defines const to be empty if c-compiler does not support const fully @@ -544,11 +544,70 @@ dnl defines HAVE_LONGDOUBLE if compiler supports long double AC_C_BIGENDIAN dnl defines WORDS_BIGENDIAN if system is big endian -AC_CHECK_SIZEOF(int *) -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(long long) -dnl defines the size of certain types of variables in SIZEOF_??? +dnl give some default values for cross-compiling +AC_CHECK_SIZEOF(int *, 4) +AC_CHECK_SIZEOF(int, 4) +AC_CHECK_SIZEOF(long, 4) +AC_CHECK_SIZEOF(long long, 0) +dnl defines the size of certain types of variables in SIZEOF_ + +dnl ###################### +dnl # check C++ features # +dnl ###################### + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +dnl check for iostream (as opposed to iostream.h) standard header +AC_CHECK_HEADERS(iostream) +if test "x$HAVE_IOSTREAM" = "x" ; then + AC_DEFINE(wxUSE_IOSTREAMH) +fi + +dnl Check for existence of builtin 'bool' data type +dnl +dnl do nothing for cross-compilation - assume bool is not defined +AC_MSG_CHECKING(if C++ compiler supports bool) +AC_TRY_RUN([ + +int main() +{ + bool b = true; + + return 0; +} + ], + AC_DEFINE(HAVE_BOOL) AC_MSG_RESULT(yes), + AC_MSG_RESULT(no), + AC_MSG_RESULT(no assumed for cross-compilation)) + +dnl Check whether overloading on size_t/int parameter works +AC_MSG_CHECKING(if size_t and int are different types) +AC_TRY_RUN([ +#include + +void wxFoo(int i) { } +void wxFoo(size_t n) { } + +int main() +{ + int i; + size_t n; + wxFoo(0); + wxFoo(1); + wxFoo(0u); + wxFoo(i); + wxFoo(n); + + return 0; +} + + ], + AC_DEFINE(wxUSE_SIZE_T_STRING_OPERATOR) AC_MSG_RESULT(yes), + AC_MSG_RESULT(no), + AC_MSG_RESULT(no assumed for cross-compilation)) + +AC_LANG_RESTORE dnl ############################ dnl # checks library functions # @@ -808,7 +867,7 @@ DEFAULT_wxUSE_WX_RESOURCES=1 DEFAULT_wxUSE_RPC=0 DEFAULT_wxUSE_HELP=1 -DEFAULT_wxUSE_UNICODE=1 +DEFAULT_wxUSE_UNICODE=0 DEFAULT_wxUSE_WCSRTOMBS=0 dnl ---------------------------------------------------------------- @@ -1042,10 +1101,10 @@ WX_LINK= MAKEINCLUDE= if test "$wxUSE_GTK" = 1; then - AM_PATH_GTK(1.0.4, [ + AM_PATH_GTK(1.0.0, [ GUI_TK_INCLUDE="$GTK_CFLAGS" GUI_TK_LIBRARY="$GTK_LIBS" - ], AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.0.4 up-to 1.0.6?)) + ], AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.X or 1.0.X?)) TOOLKIT=GTK TOOLKIT_DEF=__WXGTK__ WX_LINK=-lwx_gtk2 @@ -1079,49 +1138,60 @@ if test "$wxUSE_QT" = 1; then fi if test "$wxUSE_MOTIF" = 1; then - AC_MSG_CHECKING(for Motif/Lesstif includes) - AC_PATH_FIND_INCLUDES($SEARCH_INCLUDE,Xm/Xm.h) - if test "$ac_find_includes" != "" ; then - AC_MSG_RESULT(found $ac_find_includes) - AC_MSG_CHECKING(for Motif/Lesstif library) - AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xm) - if test "$ac_find_libraries" != "" ; then - AC_INCLUDE_PATH_EXIST($ac_find_includes,$CHECK_INCLUDE) - AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB) - CHECK_LINK="$CHECK_LIB $ac_path_to_link" - CHECK_INCLUDE="$CHECK_INCLUDE $ac_path_to_include" - AC_MSG_RESULT(found at $ac_find_libraries) - AC_MSG_CHECKING(for Xt library) - AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt) - if test "$ac_find_libraries" != "" ; then - AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB) - CHECK_LINK="$CHECK_LIB $ac_path_to_link" - AC_MSG_RESULT(found at $ac_find_libraries) - AC_MSG_CHECKING(for Xpm library) - AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) - if test "$ac_find_libraries" != "" ; then - AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB) - CHECK_LINK="$CHECK_LIB $ac_path_to_link" - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_MSG_ERROR(no) - fi - else - AC_MSG_ERROR(no) - fi - else - AC_MSG_ERROR(no) - fi - else - AC_MSG_ERROR(no) - fi + AC_MSG_CHECKING(for Motif/Lesstif includes) + AC_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h) + if test "$ac_find_includes" != "" ; then + AC_MSG_RESULT(found $ac_find_includes) + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h) + fi + + AC_MSG_CHECKING(for Motif/Lesstif library) + AC_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm) + if test "$ac_find_libraries" != "" ; then + AC_INCLUDE_PATH_EXIST($ac_find_includes, $CHECK_INCLUDE) + AC_LINK_PATH_EXIST($ac_find_libraries, $CHECK_LIB) + + CHECK_LINK="$CHECK_LIB $ac_path_to_link" + CHECK_INCLUDE="$CHECK_INCLUDE $ac_path_to_include" + AC_MSG_RESULT(found at $ac_find_libraries) + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm) + fi + + AC_MSG_CHECKING(for Xt library) + AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt) + if test "$ac_find_libraries" != "" ; then + AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB) + CHECK_LINK="$CHECK_LIB $ac_path_to_link" + AC_MSG_RESULT(found at $ac_find_libraries) + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt) + fi + + XPM_LINK="" + AC_MSG_CHECKING(for Xpm library) + AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) + if test "$ac_find_libraries" != "" ; then + AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB) + CHECK_LINK="$CHECK_LIB $ac_path_to_link" + XPM_LINK="-lXpm " + AC_DEFINE(wxHAVE_LIB_XPM) + AC_MSG_RESULT(found at $ac_find_libraries) + else + AC_MSG_RESULT(no) + AC_MSG_WARN(library will be compiled without support for images in XPM format) + fi - GUI_TK_LINK="-lXm -lXpm -lXmu -lXt -lX11 -lm" - GUI_TK_LIBRARY="$CHECK_LIB $GUI_TK_LINK" - TOOLKIT=MOTIF - TOOLKIT_DEF=__WXMOTIF__ - WX_LINK=-lwx_motif2 - MAKEINCLUDE=../motif.inc + GUI_TK_LINK="-lXm $(XPM_LINK)-lXmu -lXt -lX11 -lm" + GUI_TK_LIBRARY="$CHECK_LIB $GUI_TK_LINK" + TOOLKIT=MOTIF + TOOLKIT_DEF=__WXMOTIF__ + WX_LINK=-lwx_motif2 + MAKEINCLUDE=../motif.inc fi if test "$TOOLKIT" = ""; then @@ -1269,6 +1339,26 @@ if test "$wxUSE_SERIAL" = 1 ; then AC_DEFINE_UNQUOTED(wxUSE_SERIAL,$wxUSE_SERIAL) fi +dnl ------------------------------------------------------------------------ +dnl wxSocket +dnl ------------------------------------------------------------------------ + +if test "$wxUSE_SOCKETS" = "1"; then + dnl determine the type of third argument for getsockname + AC_MSG_CHECKING(the type of the third argument of getsockname) + AC_TRY_COMPILE( + [#include ], + [size_t len; getsockname(0, NULL, &len);], + AC_DEFINE(SOCKLEN_T, size_t) AC_MSG_RESULT(size_t), + AC_TRY_COMPILE( + [#include ], + [int len; getsockname(0, NULL, &len);], + AC_DEFINE(SOCKLEN_T, int) AC_MSG_RESULT(int), + AC_MSG_RESULT(unknown) + ) + ) +fi + dnl ------------------------------------------------------------------------ dnl wxLibrary class dnl ------------------------------------------------------------------------ @@ -1367,7 +1457,12 @@ if test "$wxUSE_CLIPBOARD" = 1 ; then fi if test "$wxUSE_TOOLTIPS" = 1 ; then - AC_DEFINE_UNQUOTED(wxUSE_TOOLTIPS,$wxUSE_TOOLTIPS) + if test "$wxUSE_MOTIF" = 1; then + AC_MSG_WARN(tooltips are not supported yet under Motif, sorry) + wxUSE_TOOLTIPS=0 + fi + + AC_DEFINE_UNQUOTED(wxUSE_TOOLTIPS,$wxUSE_TOOLTIPS) fi if test "$wxUSE_DRAG_AND_DROP" = 1 ; then @@ -1397,36 +1492,30 @@ THREADS_LINK="" UNIX_THREAD="" if test "$wxUSE_THREADS" = "1"; then - dnl For glibc 2 users who have the old libc 5 too - - AC_CHECK_LIB(pthread-0.7, pthread_create, [ - UNIX_THREAD="unix/threadpsx.cpp" - THREADS_LINK="pthread-0.7" - ],[ - AC_CHECK_HEADER(sys/prctl.h, [ - UNIX_THREAD="gtk/threadsgi.cpp" - ]) - - dnl pthread_create is always available in pthread but it seems not to be - dnl the case for pthread_setcanceltype. - - AC_CHECK_LIB(pthread, pthread_setcanceltype, [ - UNIX_THREAD="unix/threadpsx.cpp" - THREADS_LINK="pthread" - ]) - ]) - - if test "x$THREADS_LINK" = "x"; then - dnl thread functions are in libc_r under FreeBSD - AC_CHECK_LIB(c_r, pthread_create, - [ - UNIX_THREAD="unix/threadpsx.cpp" - THREADS_LINK="c_r" - ]) - fi - + dnl find if POSIX threads are available + + dnl standard lib name is pthread + dnl We no longer test for pthread-0.7 as it breaks compilation on some + dnl glibc2 systems, especially for static linkage. + AC_CHECK_LIB(pthread, pthread_create, [ + UNIX_THREAD="unix/threadpsx.cpp" + THREADS_LINK="pthread" + ], [ + dnl thread functions are in libc_r under FreeBSD + AC_CHECK_LIB(c_r, pthread_create, [ + UNIX_THREAD="unix/threadpsx.cpp" + THREADS_LINK="c_r" + ], [ + dnl VZ: SGI threads are not supported currently + AC_CHECK_HEADER(sys/prctl.h, [ + UNIX_THREAD="gtk/threadsgi.cpp" + ]) + ]) + ]) if test "$THREADS_LINK" != ""; then - AC_DEFINE(wxUSE_THREADS) + AC_DEFINE(wxUSE_THREADS) + else + AC_MSG_WARN(No thread support on this system) fi fi @@ -1436,22 +1525,43 @@ fi dnl do other tests only if we are using threads if test "$wxUSE_THREADS" = "1"; then - THREADS_LINK2="" + + dnl define autoconf macro to check for given function in both pthread and + dnl posix4 libraries + dnl usage: AC_FUNC_THREAD(FUNCTION_NAME) + dnl VZ: TODO + dnl AC_DEFUN(AC_FUNC_THREAD, + dnl [ + dnl AC_CHECK_LIB($THREADS_LINK, $1, + dnl AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'), + dnl [AC_CHECK_LIB("posix4", $1, + dnl [AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z')) + dnl POSIX4_LINK="-lposix4" + dnl ]) + dnl ]) + dnl ]) AC_CHECK_HEADERS(sched.h) AC_CHECK_LIB($THREADS_LINK, sched_yield, AC_DEFINE(HAVE_SCHED_YIELD), [AC_CHECK_LIB("posix4", sched_yield, - [AC_DEFINE(HAVE_SCHED_YIELD) THREADS_LINK2="-lposix4"], + [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK="-lposix4"], AC_MSG_WARN(wxThread::Yield() will not work properly) )] ) - AC_CHECK_LIB($THREADS_LINK, sched_get_priority_min, + dnl VZ: we should be checking for all of the following functions instead: + dnl 1. pthread_attr_getschedpolicy + dnl 2. sched_get_priority_min and sched_get_priority_max + dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam + dnl but it seems that if the first one is there, the other ones are too (of + dnl course the proper solution would be to implement AC_FUNC_THREAD above + dnl and do test for them all - anyone?) + AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy, AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS), - [AC_CHECK_LIB("posix4", sched_get_priority_min, - [AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) THREADS_LINK2="-lposix4"], + [AC_CHECK_LIB("posix4", pthread_attr_getschedpolicy, + [AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) POSIX4_LINK="-lposix4"], AC_MSG_WARN(Setting thread priority will not work) )] ) @@ -1460,11 +1570,12 @@ if test "$wxUSE_THREADS" = "1"; then AC_DEFINE(HAVE_PTHREAD_CANCEL), AC_MSG_WARN(wxThread::Kill() will not work properly)) - THREADS_LINK="-l$THREADS_LINK $THREADS_LINK2" + THREADS_LINK="-l$THREADS_LINK" fi AC_SUBST(UNIX_THREAD) AC_SUBST(THREADS_LINK) +AC_SUBST(POSIX4_LINK) dnl ------------------------------------------------------------------------ dnl compiler options for shared libs @@ -1553,7 +1664,7 @@ case "${canonical}" in if test "$GCC" != "yes" ; then PICFLAGS="-bM\:SRE" else - PICFLAGS="-fPIC" + PICFLAGS="-fPIC -D__SYSV__" fi CREATE_SHARED=sharedAIX AC_DEFINE(SYSV) @@ -1592,7 +1703,9 @@ dnl ------------------------------------------------------------------------ dnl add OS to list of configured echo $OS >> system.list -AC_CONFIG_HEADER(./include/wx/gtk/setup.h:./setup/setup.hin) +TOOLKIT_DIR=`echo ${TOOLKIT} | tr "A-Z" "a-z"` +AC_CONFIG_HEADER(./include/wx/${TOOLKIT_DIR}/setup.h:./setup/setup.hin) + AC_OUTPUT(./setup/substit ./wx-config:./wx-config.in,./setup/general/createall) AC_OVERRIDES_DONE