X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ebefb2f345299be048c4aa24e50dce767039de1d..eeec36a21f727e66e95a2e6d8eb84a2dffb33a3a:/configure.in?ds=sidebyside diff --git a/configure.in b/configure.in index 337b3ac2ee..ad4b955b30 100644 --- a/configure.in +++ b/configure.in @@ -7,11 +7,12 @@ 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 AC_DEFUN(AM_PATH_GTK, -[dnl +[dnl dnl Get the cflags and libraries from the gtk-config script dnl AC_ARG_WITH(gtk-prefix,[**--with-gtk-prefix=PFX Prefix where GTK is installed], @@ -51,7 +52,7 @@ dnl #include #include -int +int main () { int major, minor, micro; @@ -64,8 +65,8 @@ main () if (gtk_minor_version > 0) 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))); + ((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" @@ -75,7 +76,7 @@ main () fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) + ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) GTK_CFLAGS="" @@ -185,7 +186,7 @@ AC_DEFUN(AC_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 ]) @@ -197,7 +198,7 @@ AC_DEFUN(AC_LINK_PATH_EXIST, if test $result = 0; then ac_path_to_link="" else - ac_path_to_link="-L$1" + ac_path_to_link="-L$1" fi ]) @@ -245,7 +246,8 @@ SEARCH_INCLUDE="\ \ /usr/Motif1.2/include \ /usr/dt/include \ - \ + /usr/include/Xm \ + \ /usr/X11R6/include \ /usr/X11R5/include \ /usr/X11R4/include \ @@ -316,7 +318,7 @@ CFLAGS=`echo "$CFLAGS" | sed 's/-g//g'` dnl does compiler support -c and -o simultaniously AC_PROG_CC_C_O -dnl defines NO_MINUS_C_MINUS_O if compiler does not accept +dnl defines NO_MINUS_C_MINUS_O if compiler does not accept dnl both switches simultaniously dnl what is the c-preprocessor AC_PROG_CPP @@ -368,6 +370,11 @@ dnl =========== AC_PROG_AWK dnl defines AWK with the appropriate command +dnl strip command +dnl ============= +AC_CHECK_PROG(STRIP, strip, strip, true) +dnl defines STRIP as strip or nothing if not found + dnl ############### dnl # make checks # dnl ############### @@ -387,7 +394,7 @@ echo dummy > sub/file ${MAKE-make} -f confMake VPATH=sub 2> config.log > /dev/null RESULT=$? rm -f sub/file check final_file confMake -rmdir sub +rmdir sub if test "$RESULT" = 0; then AC_MSG_RESULT(yes) else @@ -402,7 +409,7 @@ export MAKE=gmake; ./configure for sh-type shells setenv MAKE gmake; ./configure for csh-type shells Also please do remember to use gmake in this case every time you are trying to compile. -) +) fi dnl #################### @@ -446,20 +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 vsnprintf() which is another GNU extension -AC_CHECK_FUNC(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF)) -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 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) -dnl defines HAVE_IOSTREAM dnl ################### dnl # checks typedefs # dnl ################### @@ -483,16 +510,16 @@ dnl # checks structures # dnl ##################### AC_HEADER_STAT -dnl defines STAT_MACROS_BROKEN if S_ISDIR and S_ISREG +dnl defines STAT_MACROS_BROKEN if S_ISDIR and S_ISREG dnl do not work properly AC_HEADER_TIME dnl defines TIME_WITH_SYS_TIME if time.h and sys/time.h can dnl both be included -AC_STRUCT_ST_BLKSIZE +AC_STRUCT_ST_BLKSIZE dnl defines HAVE_ST_BLKSIZE if struct stat contains st_blksize -AC_STRUCT_ST_BLOCKS +AC_STRUCT_ST_BLOCKS dnl defines HAVE_ST_BLOCKS if struct stat contains st_blocks -AC_STRUCT_ST_RDEV +AC_STRUCT_ST_RDEV dnl defines HAVE_ST_RDEV if struct stat contains st_rdev AC_STRUCT_TM dnl defines TM_IN_SYS_TIME if struct tm is not in time.h @@ -504,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 @@ -518,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 # @@ -538,10 +623,10 @@ dnl defines HAVE_LONG_FILENAMES if filenames longer then dnl 14 chars are supported dnl AC_SYS_RESTARTABLE_SYSCALLS -dnl defines HAVE_RESTARTABLE_SYSCALLS if the system restarts a +dnl defines HAVE_RESTARTABLE_SYSCALLS if the system restarts a dnl system call that is interrupted dnl by a signal - + dnl ################# dnl # checks PARSER # dnl ################# @@ -559,7 +644,7 @@ dnl defines LEXLIB with the appropriate library dnl what type is yytext AC_DECL_YYTEXT dnl defines YYTEXT_POINTER if yytext is char* -dnl defines LEX_OUTPUT_ROOT as to the base of the +dnl defines LEX_OUTPUT_ROOT as to the base of the dnl filename output by the lexer dnl ################################### @@ -598,7 +683,7 @@ if test x"$libltdl_cv_uscore" = xyes; then fnord() { int i=42;} main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 && !ptr2) exit(0); } exit(1); } + if(ptr1 && !ptr2) exit(0); } exit(1); } ], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes, libltdl_cv_need_uscore=no )]) @@ -670,13 +755,13 @@ case "${canonical}" in AC_DEFINE(__ALPHA__) fi ;; - *-*-irix5* | *-*-irix6* ) + *-*-irix5* | *-*-irix6* ) USE_SGI=1 USE_SVR4=1 AC_DEFINE(__SGI__) AC_DEFINE(__SVR4__) ;; - *-*-solaris2* ) + *-*-solaris2* ) USE_SUN=1 USE_SOLARIS=1 USE_SVR4=1 @@ -684,7 +769,7 @@ case "${canonical}" in AC_DEFINE(__SOLARIS__) AC_DEFINE(__SVR4__) ;; - *-*-sunos4* ) + *-*-sunos4* ) USE_SUN=1 USE_SUNOS=1 USE_BSD=1 @@ -698,25 +783,25 @@ case "${canonical}" in AC_DEFINE(__FREEBSD__) AC_DEFINE(__BSD__) ;; - *-*-osf* ) + *-*-osf* ) USE_ALPHA=1 USE_OSF=1 AC_DEFINE(__ALPHA__) AC_DEFINE(__OSF__) ;; - *-*-dgux5* ) + *-*-dgux5* ) USE_ALPHA=1 USE_SVR4=1 AC_DEFINE(__ALPHA__) AC_DEFINE(__SVR4__) ;; - *-*-sysv5* ) + *-*-sysv5* ) USE_SYSV=1 USE_SVR4=1 AC_DEFINE(__SYSV__) AC_DEFINE(__SVR4__) ;; - *-*-aix* ) + *-*-aix* ) USE_AIX=1 USE_SYSV=1 USE_SVR4=1 @@ -759,7 +844,9 @@ DEFAULT_wxUSE_TIMEDATE=1 DEFAULT_wxUSE_INTL=1 DEFAULT_wxUSE_CONFIG=1 DEFAULT_wxUSE_STREAMS=1 +DEFAULT_wxUSE_SOCKETS=1 DEFAULT_wxUSE_SERIAL=1 +DEFAULT_wxUSE_DYNLIB_CLASS=1 DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=1 DEFAULT_WX_NORMALIZED_PS_FONTS=1 @@ -843,6 +930,10 @@ AC_OVERRIDES(threads,threads, **--with-threads for enabling threads, wxUSE_THREADS) +AC_OVERRIDES(dynlib,dynlib, +**--with-dynlib to compile wxLibrary class, +wxUSE_DYNLIB_CLASS) + dnl ---------------------------------------------------------------- dnl user options for libraries dnl ---------------------------------------------------------------- @@ -887,6 +978,10 @@ AC_OVERRIDES(serial,serial, **--with-serial use class serialization, wxUSE_SERIAL) +AC_OVERRIDES(sockets,sockets, +**--with-sockets use wxSocket etc classes, +wxUSE_SOCKETS) + dnl ---------------------------------------------------------------- dnl user options for PostScript dnl ---------------------------------------------------------------- @@ -987,7 +1082,7 @@ dnl ---------------------------------------------------------------- dnl Linux: test for libc5/glibc2: glibc2 has gettext() included dnl ---------------------------------------------------------------- if test "$USE_LINUX" = 1; then - AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2)) + AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2)) fi dnl ---------------------------------------------------------------- @@ -1043,53 +1138,64 @@ 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 - - GUI_TK_LINK="-lXm -lXpm -lXmu -lXt -lX11 -lm" - GUI_TK_LIBRARY="$CHECK_LIB $GUI_TK_LINK" - TOOLKIT=MOTIF - TOOLKIT_DEF="__WXMOTIF__ -D__LINUX__ -D__UNIX__" - WX_LINK=-lwx_motif2 - MAKEINCLUDE=../motif.inc + 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 $(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 - AC_MSG_ERROR(You must specify a toolkit: --with-gtk --with-qt --with-motif) + AC_MSG_ERROR(You must specify a toolkit: --with-gtk --with-qt --with-motif) fi AC_SUBST(GUI_TK_INCLUDE) @@ -1111,17 +1217,15 @@ EXTRA_LINK= WXDEBUG= if test "$wxUSE_DEBUG_GDB" = 1 ; then - wxUSE_DEBUG_INFO=1 - WXDEBUG="-ggdb" - wxUSE_OPTIMISE=0 -else - if test "$wxUSE_DEBUG_INFO" = 1 ; then + wxUSE_DEBUG_INFO=1 + WXDEBUG="-ggdb" +fi + +if test "$wxUSE_DEBUG_INFO" = 1 ; then WXDEBUG="-g" wxUSE_OPTIMISE=0 - else - EXTRA_LINK="-s $EXTRA_LINK" - fi fi + AC_SUBST(WXDEBUG) if test "$wxUSE_DEBUG_FLAG" = 1 ; then @@ -1187,7 +1291,7 @@ fi AC_SUBST(Z_C_SRC) if test "$wxUSE_LIBPNG" = 1 ; then - AC_DEFINE_UNQUOTED(wxUSE_LIBPNG,$wxUSE_LIBPNG) + AC_DEFINE_UNQUOTED(wxUSE_LIBPNG,$wxUSE_LIBPNG) PNG_C_SRC="\$(PNG_C_SRC)" fi AC_SUBST(PNG_C_SRC) @@ -1195,14 +1299,14 @@ AC_SUBST(PNG_C_SRC) JPEG_LINK="" if test "$wxUSE_LIBJPEG" = 1 ; then AC_DEFINE_UNQUOTED(wxUSE_LIBJPEG,$wxUSE_LIBJPEG) - AC_CHECK_LIB(jpeg) + AC_CHECK_LIB(jpeg,main,,AC_MSG_ERROR("libjpeg is not available.")) JPEG_LINK="-ljpeg" fi AC_SUBST(JPEG_LINK) IODBC_C_SRC="" if test "$wxUSE_ODBC" = 1 ; then - AC_DEFINE_UNQUOTED(wxUSE_ODBC,$wxUSE_ODBC) + AC_DEFINE_UNQUOTED(wxUSE_ODBC,$wxUSE_ODBC) IODBC_C_SRC="\$(IODBC_C_SRC)" fi AC_SUBST(IODBC_C_SRC) @@ -1227,10 +1331,59 @@ if test "$wxUSE_STREAMS" = 1 ; then AC_DEFINE_UNQUOTED(wxUSE_STREAMS,$wxUSE_STREAMS) fi +if test "$wxUSE_SOCKETS" = 1 ; then + AC_DEFINE_UNQUOTED(wxUSE_SOCKETS,$wxUSE_SOCKETS) +fi + 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 ------------------------------------------------------------------------ + +HAVE_DL_FUNCS=0 +if test "$wxUSE_DYNLIB_CLASS" = "1"; then + dnl the test is a bit complicated because we check for dlopen() both with + dnl and without -ldl + AC_CHECK_FUNCS(dlopen, + [AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1], + [AC_CHECK_LIB(dl, dlopen, + [AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1])]) + AC_CHECK_FUNCS(shl_load, [AC_DEFINE(HAVE_SHL_LOAD) HAVE_DL_FUNCS=1]) + + if test "$HAVE_DL_FUNCS" = 0; then + AC_MSG_WARN("--with-dynlib will be disabled because no function was found to load a shared library on this platform") + + wxUSE_DYNLIB_CLASS=0 + fi +fi + +if test "$wxUSE_DYNLIB_CLASS" = 1 ; then + AC_DEFINE_UNQUOTED(wxUSE_DYNLIB_CLASS,$wxUSE_DYNLIB_CLASS) +fi + dnl ---------------------------------------------------------------- dnl Register Prolog and Resources options for makefiles and setup.h dnl ---------------------------------------------------------------- @@ -1304,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 @@ -1326,56 +1484,103 @@ dnl ---------------------------------------------------------------- dnl thread support dnl ---------------------------------------------------------------- +dnl defines UNIX_THREAD it contains the source file to use for threads. (GL) +dnl defines THREADS_LINK it contains the thread library to link with. (GL) +dnl defines wxUSE_THREADS if thread support is activated. (GL) + 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="gtk/threadpsx.cpp" - THREADS_LINK="-lpthread-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="gtk/threadpsx.cpp" - THREADS_LINK="-lpthread" - ]) + dnl find if POSIX threads are available + + dnl For glibc 2 users who have the old libc 5 too check pthread-0.7 first + AC_CHECK_LIB(pthread-0.7, pthread_create, [ + UNIX_THREAD="unix/threadpsx.cpp" + THREADS_LINK="pthread-0.7" + ],[ + dnl standard lib name is pthread + 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 - - dnl -lposix4 seems to be required on Solaris - - AC_CHECK_LIB(posix4, printf, [ - THREADS_LINK="$THREADS_LINK -lposix4" - ]) - -fi - -if test "$wxUSE_MOTIF" = "1"; then - UNIX_THREAD="motif/thread.cpp" fi if test -z "$UNIX_THREAD"; then wxUSE_THREADS=0 fi +dnl do other tests only if we are using threads +if test "$wxUSE_THREADS" = "1"; then + + 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) POSIX4_LINK="-lposix4"], + AC_MSG_WARN(wxThread::Yield() will not work properly) + )] + ) + + 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", pthread_attr_getschedpolicy, + [AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) POSIX4_LINK="-lposix4"], + AC_MSG_WARN(Setting thread priority will not work) + )] + ) + + AC_CHECK_LIB($THREADS_LINK, pthread_cancel, + AC_DEFINE(HAVE_PTHREAD_CANCEL), + AC_MSG_WARN(wxThread::Kill() will not work properly)) + + THREADS_LINK="-l$THREADS_LINK" +fi + AC_SUBST(UNIX_THREAD) AC_SUBST(THREADS_LINK) - -dnl defines UNIX_THREAD it contains the source file to use for threads. (GL) -dnl defines THREADS_LINK it contains the thread library to link with. (GL) -dnl defines wxUSE_THREADS if thread support is activated. (GL) +AC_SUBST(POSIX4_LINK) dnl ------------------------------------------------------------------------ dnl compiler options for shared libs @@ -1384,7 +1589,6 @@ dnl ------------------------------------------------------------------------ PICFLAGS= CREATE_SHARED= case "${canonical}" in - *-hp-hpux* ) if test "$GCC" != "yes" ; then CXXFLAGS="${CXXFLAGS} +a1 -z -Aa -D_HPUX_SOURCE" @@ -1402,14 +1606,14 @@ case "${canonical}" in CREATE_SHARED=sharedLinux ;; - *-*-irix5* | *-*-irix6* ) + *-*-irix5* | *-*-irix6* ) # PICFLAGS can remain empty, as pic is the default LDFLAGS="-Wl,+s" CREATE_SHARED=sharedIrix AC_DEFINE(SVR4) ;; - *-*-solaris2* ) + *-*-solaris2* ) if test "$GCC" != "yes" ; then PICFLAGS="-KPIC" else @@ -1419,7 +1623,7 @@ case "${canonical}" in AC_DEFINE(SVR4) ;; - *-*-sunos4* ) + *-*-sunos4* ) if test "$GCC" != "yes" ; then PICFLAGS="-PIC" else @@ -1436,12 +1640,12 @@ case "${canonical}" in AC_DEFINE(BSD) ;; - *-*-osf* ) + *-*-osf* ) PICFLAGS="-fPIC" CREATE_SHARED=sharedOSF ;; - *-*-dgux5* ) + *-*-dgux5* ) if test "$GCC" != "yes" ; then PICFLAGS="-K PIC" else @@ -1451,7 +1655,7 @@ case "${canonical}" in AC_DEFINE(SVR4) ;; - *-*-sysv5* ) + *-*-sysv5* ) if test "$GCC" != "yes" ; then PICFLAGS="-K PIC" else @@ -1461,11 +1665,11 @@ case "${canonical}" in AC_DEFINE(SVR4) ;; - *-*-aix* ) + *-*-aix* ) if test "$GCC" != "yes" ; then PICFLAGS="-bM\:SRE" else - PICFLAGS="-fPIC" + PICFLAGS="-fPIC -D__SYSV__" fi CREATE_SHARED=sharedAIX AC_DEFINE(SYSV) @@ -1504,7 +1708,10 @@ 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 +