X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a17d0eb54fa294ff9fba21810d9b7e6cd025a8d..57bff99cf406cace309b47d406b7307bc7ef1f3a:/configure.in diff --git a/configure.in b/configure.in index f51dd9373e..1bbbe16d09 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; @@ -61,11 +62,11 @@ 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)) || - ((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 ]) @@ -235,10 +236,18 @@ dnl ------------------------------------------------------------------------ dnl search path for includes and libraries dnl ------------------------------------------------------------------------ +dnl VZ: added standard locations for Xm.h for Irix, HP-UX and SunOS (19.02.99) SEARCH_INCLUDE="\ + /usr/Motif-1.2/include \ + /usr/Motif-2.1/include \ + \ + /usr/include/Motif1.2 \ + /opt/xpm/include/X11 \ + \ /usr/Motif1.2/include \ - /usr/dt/include/Xm \ - \ + /usr/dt/include \ + /usr/include/Xm \ + \ /usr/X11R6/include \ /usr/X11R5/include \ /usr/X11R4/include \ @@ -279,19 +288,14 @@ SEARCH_INCLUDE="\ /usr/lpp/Xamples/include \ \ /usr/local/include/gtk \ - /usr/local/include/Xm \ /usr/local/include/qt \ - /usr/X11R6/include/Xm \ - /usr/X11/include/Xm \ /usr/include/qt \ \ /usr/openwin/include \ /usr/openwin/share/include \ " -SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` \ - /usr/dt/lib \ - " +SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` " dnl ------------------------------------------------------------------------ dnl standard checks @@ -314,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 @@ -366,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 ############### @@ -385,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 @@ -400,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 #################### @@ -434,6 +443,10 @@ AC_CHECK_HEADERS(sys/time.h) dnl defines HAVE_SYS_TIME_H AC_CHECK_HEADERS(unistd.h) dnl defines HAVE_UNISTD_H +AC_CHECK_HEADERS(wchar.h) +dnl defines HAVE_WCHAR_H +AC_CHECK_HEADERS(wcstr.h) +dnl defines HAVE_WCSTR_H AC_CHECK_HEADERS(fnmatch.h) dnl defines HAVE_FNMATCH_H dnl As it needs Linux 2.1.x for the moment: check whether the file exists (GL). @@ -444,20 +457,52 @@ 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 wcslen +AC_CHECK_LIB(c, wcslen, [ + AC_DEFINE(HAVE_WCSLEN) + WCHAR_LINK="" + ], [ + AC_CHECK_LIB(w, wcslen, [ + AC_DEFINE(HAVE_WCSLEN) + WCHAR_LINK="-lw" + ]) + ]) +AC_SUBST(WCHAR_LINK) + 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_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 ################### @@ -481,16 +526,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 @@ -502,7 +547,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 @@ -516,11 +560,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 # @@ -536,10 +639,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 ################# @@ -557,7 +660,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 ################################### @@ -596,7 +699,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 )]) @@ -668,13 +771,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 @@ -682,7 +785,7 @@ case "${canonical}" in AC_DEFINE(__SOLARIS__) AC_DEFINE(__SVR4__) ;; - *-*-sunos4* ) + *-*-sunos4* ) USE_SUN=1 USE_SUNOS=1 USE_BSD=1 @@ -696,25 +799,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 @@ -750,14 +853,16 @@ DEFAULT_wxUSE_IOSTREAMH=1 DEFAULT_wxUSE_ZLIB=1 DEFAULT_wxUSE_LIBPNG=1 -DEFAULT_wxUSE_LIBJPEG=0 +DEFAULT_wxUSE_LIBJPEG=1 DEFAULT_wxUSE_ODBC=1 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 @@ -768,6 +873,7 @@ DEFAULT_wxUSE_RESOURCES=1 DEFAULT_wxUSE_CLIPBOARD=1 DEFAULT_wxUSE_TOOLTIPS=1 DEFAULT_wxUSE_DRAG_AND_DROP=1 +DEFAULT_wxUSE_SPLINE=1 DEFAULT_wxUSE_MDI_ARCHITECTURE=1 DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=1 @@ -778,7 +884,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 ---------------------------------------------------------------- @@ -841,20 +947,24 @@ 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 ---------------------------------------------------------------- AC_OVERRIDES(zlib,zlib, -**--with-zlib use zlib for LZW comression, +**--without-zlib don't use zlib for LZW comression, wxUSE_ZLIB) AC_OVERRIDES(libpng,libpng, -**--with-libpng use libpng (PNG image format), +**--without-libpng don't use libpng (PNG image format), wxUSE_LIBPNG) AC_OVERRIDES(libjpeg,libjpeg, -**--with-libjpeg use libjpeg (JPEG image format), +**--without-libjpeg don't use libjpeg (JPEG image format), wxUSE_LIBJPEG) AC_OVERRIDES(odbc,odbc, @@ -885,6 +995,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 ---------------------------------------------------------------- @@ -953,6 +1067,10 @@ AC_OVERRIDES(dnd,dnd, **--with-dnd use Drag'n'Drop classes, wxUSE_DRAG_AND_DROP) +AC_OVERRIDES(spline,spline, +**--with-spline use Spline drawing code, +wxUSE_SPLINE) + dnl ---------------------------------------------------------------- dnl user options for architectures dnl ---------------------------------------------------------------- @@ -985,7 +1103,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 ---------------------------------------------------------------- @@ -1003,15 +1121,20 @@ WX_LINK= MAKEINCLUDE= +WXGTK12= + 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 MAKEINCLUDE=../gtk.inc + AM_PATH_GTK(1.2.0, [ + WXGTK12=1 + ]) fi if test "$wxUSE_QT" = 1; then @@ -1041,53 +1164,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.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) @@ -1105,21 +1239,23 @@ dnl ---------------------------------------------------------------- dnl Register compile options for makefiles and setup.h dnl ---------------------------------------------------------------- +if test "$WXGTK12" = 1 ; then + AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12) +fi + 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 @@ -1185,26 +1321,141 @@ 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) -JPEG_LINK="" if test "$wxUSE_LIBJPEG" = 1 ; then AC_DEFINE_UNQUOTED(wxUSE_LIBJPEG,$wxUSE_LIBJPEG) - AC_CHECK_LIB(jpeg) - JPEG_LINK="-ljpeg" + JPEG_C_SRC="\$(JPEG_C_SRC)" fi +AC_SUBST(JPEG_C_SRC) + +JPEG_LINK="" +dnl if test "$wxUSE_LIBJPEG" = 1 ; then +dnl AC_DEFINE_UNQUOTED(wxUSE_LIBJPEG,$wxUSE_LIBJPEG) +dnl AC_CHECK_LIB(jpeg,main,,AC_MSG_ERROR("libjpeg is not available.")) +dnl JPEG_LINK="-ljpeg" +dnl 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) +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 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) + else + AC_MSG_WARN(No thread support on this system) + fi +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)) + + AC_MSG_CHECKING([for pthread_cleanup_push/pop]) + AC_TRY_COMPILE([#include ], + [ + pthread_cleanup_push(NULL, NULL); + pthread_cleanup_pop(0); + ], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS) + ], + [AC_MSG_RESULT(no)] + ) + + THREADS_LINK="-l$THREADS_LINK" +fi + +AC_SUBST(UNIX_THREAD) +AC_SUBST(THREADS_LINK) +AC_SUBST(POSIX4_LINK) + dnl ---------------------------------------------------------------- dnl Register non-GUI class options for makefiles and setup.h dnl ---------------------------------------------------------------- @@ -1225,10 +1476,72 @@ if test "$wxUSE_STREAMS" = 1 ; then AC_DEFINE_UNQUOTED(wxUSE_STREAMS,$wxUSE_STREAMS) fi +if test "$wxUSE_SOCKETS" = 1 ; then + if test "$wxUSE_THREADS" = 1 ; then + AC_DEFINE_UNQUOTED(wxUSE_SOCKETS,$wxUSE_SOCKETS) + else + AC_MSG_WARN(sockets or only supported with threads) + wxUSE_SOCKETS=0 + fi +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 + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + dnl determine the type of third argument for getsockname + AC_MSG_CHECKING(the type of the third argument of getsockname) + AC_TRY_COMPILE( + [#include ], + [socklen_t len; getsockname(0, NULL, &len);], + AC_DEFINE(SOCKLEN_T, socklen_t) AC_MSG_RESULT(socklen_t), + 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) + ) + ) + ) + AC_LANG_RESTORE +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 ---------------------------------------------------------------- @@ -1302,11 +1615,24 @@ 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) + wxUSE_TOOLTIPS=0 + fi + AC_DEFINE_UNQUOTED(wxUSE_TOOLTIPS,$wxUSE_TOOLTIPS) fi if test "$wxUSE_DRAG_AND_DROP" = 1 ; then - AC_DEFINE_UNQUOTED(wxUSE_DRAG_AND_DROP,$wxUSE_DRAG_AND_DROP) + if test "$WXGTK12" = 1 ; then + AC_DEFINE_UNQUOTED(wxUSE_DRAG_AND_DROP,$wxUSE_DRAG_AND_DROP) + else + AC_MSG_WARN(drag and drop is only supported under GTK 1.2) + wxUSE_DRAG_AND_DROP=0 + fi +fi + +if test "$wxUSE_SPLINE" = 1 ; then + AC_DEFINE_UNQUOTED(wxUSE_SPLINE,$wxUSE_SPLINE) fi dnl ---------------------------------------------------------------- @@ -1320,61 +1646,6 @@ if test "$wxUSE_HELP" = 1 ; then fi AC_SUBST(HELP) -dnl ---------------------------------------------------------------- -dnl thread support -dnl ---------------------------------------------------------------- - -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" - ]) - ]) - - if test "$THREADS_LINK" != ""; then - AC_DEFINE(wxUSE_THREADS) - 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 - -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) - dnl ------------------------------------------------------------------------ dnl compiler options for shared libs dnl ------------------------------------------------------------------------ @@ -1382,7 +1653,6 @@ dnl ------------------------------------------------------------------------ PICFLAGS= CREATE_SHARED= case "${canonical}" in - *-hp-hpux* ) if test "$GCC" != "yes" ; then CXXFLAGS="${CXXFLAGS} +a1 -z -Aa -D_HPUX_SOURCE" @@ -1400,14 +1670,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 @@ -1417,7 +1687,7 @@ case "${canonical}" in AC_DEFINE(SVR4) ;; - *-*-sunos4* ) + *-*-sunos4* ) if test "$GCC" != "yes" ; then PICFLAGS="-PIC" else @@ -1434,12 +1704,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 @@ -1449,7 +1719,7 @@ case "${canonical}" in AC_DEFINE(SVR4) ;; - *-*-sysv5* ) + *-*-sysv5* ) if test "$GCC" != "yes" ; then PICFLAGS="-K PIC" else @@ -1459,11 +1729,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) @@ -1502,7 +1772,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 +