]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
always let the multiline text control process the Enter key presses
[wxWidgets.git] / configure.in
index 29f11262644fd8c5920854426b1c35ed2655f6f4..34b2361d621b71f1da09a81ccd3f52a6f61aa913 100644 (file)
@@ -1170,6 +1170,11 @@ dnl   defines CC with the compiler to use
 dnl   defines GCC with yes if using gcc
 dnl   defines GCC empty if not using gcc
 dnl   defines CFLAGS
+dnl
+dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
+dnl default CFLAGS (something like "-g -O2") - we don't need this as add
+dnl -g and -O flags ourselves below
+CFLAGS=${CFLAGS=}
 AC_PROG_CC
 
 dnl is -traditional needed for correct compilations
@@ -1184,6 +1189,9 @@ dnl   defines CXX with the compiler to use
 dnl   defines GXX with yes if using gxx
 dnl   defines GXX empty if not using gxx
 dnl   defines CXXFLAGS
+dnl
+dnl see CFLAGS line above
+CXXFLAGS=${CXXFLAGS=}
 AC_PROG_CXX
 
 AC_LANG_RESTORE
@@ -2423,6 +2431,9 @@ if test "$wxUSE_SHARED" = "yes"; then
         dnl http://fink.sourceforge.net/doc/porting/porting.html
         CFLAGS="$CFLAGS -fno-common -DDYLIB_INIT"
         CXXFLAGS="$CXXFLAGS -fno-common -DDYLIB_INIT"
+        dnl Executables must necessarily fully bind the wxWindows library at
+        dnl program launch otherwise lazy binding breaks RTTI class info
+        LDFLAGS="$LDFLAGS -Wl,-bind_at_load"
         SHARED_LD="$CXX -dynamiclib -init _wxWindowsDylibInit -o"
         PIC_FLAG="-dynamic -fPIC"
         SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION}"
@@ -3158,8 +3169,8 @@ if test "$TOOLKIT" != "MSW"; then
         case "${host}" in
           *-*-solaris2* | *-*-sunos4* )
                 if test "x$GCC" = "xyes"; then
-                    dnl apparently some Solaris/gcc combinations use this one
-                    THREAD_OPTS="$THREAD_OPTS -pthreads"
+                    dnl Solaris/gcc combination use this one for some reason
+                    THREAD_OPTS="-pthreads $THREAD_OPTS"
                 else
                     THREAD_OPTS="-mt $THREAD_OPTS"
                 fi
@@ -3173,12 +3184,13 @@ if test "$TOOLKIT" != "MSW"; then
                 dnl AIX calls the library libpthreads - thanks IBM!
                 THREAD_OPTS="pthreads"
                 ;;
-          *)
-                dnl the default is ok but if it doesn't work try without it
-                dnl just in case
-                THREAD_OPTS="$THREAD_OPTS none"
         esac
 
+        dnl simply linking with libpthread should make the test below work but
+        dnl it's far from certain that the threaded programs compiled without
+        dnl any special switches actually work, so try it after all the others
+        THREAD_OPTS="$THREAD_OPTS pthread none"
+
         dnl now test for all possibilities
         THREADS_OK=no
         for flag in $THREAD_OPTS; do
@@ -3201,7 +3213,7 @@ if test "$TOOLKIT" != "MSW"; then
               save_LIBS="$LIBS"
               save_CFLAGS="$CFLAGS"
               LIBS="$THREADS_LINK $LIBS"
-              CFLAGS="$CFLAGS $THREADS_CFLAGS"
+              CFLAGS="$THREADS_CFLAGS $CFLAGS"
 
               AC_TRY_LINK([#include <pthread.h>],
                           [pthread_create(0,0,0,0);],
@@ -3223,6 +3235,10 @@ if test "$TOOLKIT" != "MSW"; then
           wxUSE_THREADS=no
           AC_MSG_WARN([No thread support on this system... disabled])
       else
+          dnl yes, these special compiler flags should be used with the
+          dnl linker as well
+          LIBS="$THREADS_LINK $THREADS_CFLAGS $LIBS"
+
           AC_MSG_CHECKING([if more special flags are required for pthreads])
           flag=no
           case "${host}" in
@@ -3235,14 +3251,11 @@ if test "$TOOLKIT" != "MSW"; then
           esac
           AC_MSG_RESULT(${flag})
           if test "x$flag" != xno; then
-              THREADS_CFLAGS="$flag $THREADS_CFLAGS"
-          fi
-
-          if test "x$THREADS_LINK" != "x"; then
-            LIBS="$THREADS_LINK $LIBS"
+              THREADS_CFLAGS="$THREADS_CFLAGS $flag"
           fi
 
           if test "x$THREADS_CFLAGS" != "x"; then
+            dnl don't add these options to CPPFLAGS as cpp might not know them
             CFLAGS="$CFLAGS $THREADS_CFLAGS"
             CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS"
           fi
@@ -3378,9 +3391,6 @@ fi
 if test "$wxUSE_THREADS" = "yes"; then
   AC_DEFINE(wxUSE_THREADS)
 
-  dnl we must define _REENTRANT or something along these lines for MT code
-  TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS $THREADS_CFLAGS"
-
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
 else
   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
@@ -3466,9 +3476,6 @@ if test "$GCC" = "yes" ; then
     fi
 fi
 
-
-CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
-CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
 if test "$wxUSE_OPTIMISE" = "no" ; then
     OPTIMISE=
 else
@@ -4780,10 +4787,12 @@ fi
 
 EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"
 
+dnl remove the extra white space from the cc/c++/ld options
 CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
 CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
+LIBS=`echo $LIBS | sed 's/ \+/ /g'`
 
-LDFLAGS="$LDFLAGS$PROFILE"
+LDFLAGS="$LDFLAGS $PROFILE"
 
 dnl for convenience, sort the samples in alphabetical order
 dnl