]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
define wxUSE_XPM_IN_MSW for MSW compilation
[wxWidgets.git] / configure.in
index 81cc4a6e6da5328931131eaecccfce15b083b537..31b5d229d85d5c706adf2f8121838aa3488a7550 100644 (file)
@@ -249,6 +249,8 @@ case "${host}" in
     AC_DEFINE(__DOS__)
     PROGRAM_EXT=".exe"
     DEFAULT_DEFAULT_wxUSE_MGL=1
+    dnl DJGPP needs explicit -lstdc++ for some reason (VS: mayb some versions only?)
+    LIBS="$LIBS -lstdc++"
   ;;
 
   *-pc-os2_emx | *-pc-os2-emx )
@@ -390,7 +392,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_PROTOCOL_FTP=no
   DEFAULT_wxUSE_PROTOCOL_FILE=no
   DEFAULT_wxUSE_URL=no
-  
+
   DEFAULT_wxUSE_COMMONDLGS=no
   DEFAULT_wxUSE_CHOICEDLG=no
   DEFAULT_wxUSE_COLOURDLG=no
@@ -735,6 +737,13 @@ WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without depe
 WX_ARG_ENABLE(compat20,      [  --enable-compat20       enable wxWindows 2.0 compatibility], WXWIN_COMPATIBILITY_2)
 WX_ARG_ENABLE(compat22,      [  --disable-compat22      disable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
 
+AC_ARG_ENABLE(rpath,         [  --enable-rpath=DIR      output the rpath flag from wx-config], [wxRPATH_DIR="$enableval"])
+
+if test "$wxRPATH_DIR" != "" -a "$wxRPATH_DIR" != "disable"; then
+   WXCONFIG_RPATH="-Wl,-rpath -Wl,$wxRPATH_DIR"
+fi
+
+
 dnl ---------------------------------------------------------------------------
 dnl (small) optional non GUI classes
 dnl ---------------------------------------------------------------------------
@@ -1116,19 +1125,25 @@ dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
 dnl 'just' a POSIX platform, so the Win32 API must not be available
 dnl ---------------------------------------------------------------------------
 
-define_win32=0
+dnl (Windows-only piece)
+wants_win32=0
+doesnt_want_win32=0
 case "${host}" in
   *-*-cygwin*)
       if test "$wxUSE_MSW" = 1 ; then
-        define_win32=1
+        wants_win32=1
+      else
+        doesnt_want_win32=1
       fi
   ;;
   *-*-mingw*)
-      define_win32=1
+      wants_win32=1
   ;;
 esac
 
-if test "$define_win32" = 1 ; then
+dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
+dnl     take effect on Cygwin/Mingw and not other platforms.
+if test "$wants_win32" = 1 ; then
     USE_UNIX=0
     USE_WIN32=1
     AC_DEFINE(__WIN32__)
@@ -1137,10 +1152,12 @@ if test "$define_win32" = 1 ; then
     AC_DEFINE(__GNUWIN32__)
     AC_DEFINE(STRICT)
     AC_DEFINE(WINVER, 0x0400)
-else
+fi
+if test "$doesnt_want_win32" = 1 ; then
     USE_UNIX=1
     USE_WIN32=0
 fi
+dnl (end of Windows-only piece)
 
 if test "$USE_UNIX" = 1 ; then
     wxUSE_UNIX=yes
@@ -1219,7 +1236,7 @@ dnl   make install path absolute (if not already); will fail with MSDOS paths
 case ${INSTALL} in
   /* ) # Absolute
      ;;
-  *)     
+  *)
      INSTALL=`pwd`/${INSTALL} ;;
 esac
 
@@ -1526,7 +1543,7 @@ AC_CACHE_SAVE
 dnl check for glibc version
 dnl
 dnl VZ: I have no idea why had this check been there originally, but now
-dnl     it is only used to get the recursive mutexes under Linux
+dnl     we could probably do without it by just always adding _GNU_SOURCE
 if test "$USE_LINUX" = 1; then
     AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
         AC_TRY_COMPILE([#include <features.h>],
@@ -1548,6 +1565,20 @@ if test "$USE_LINUX" = 1; then
     fi
 fi
 
+dnl we may need _GNU_SOURCE for 2 things:
+dnl
+dnl  1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
+dnl  only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
+dnl  which breaks libtiff compilation, so it is simpler to just define
+dnl  _GNU_SOURCE to get everything)
+dnl
+dnl  2. for Unicode functions
+if test "x$wx_cv_lib_glibc21" = "xyes"; then
+    if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
+        AC_DEFINE(_GNU_SOURCE)
+    fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Optional libraries
 dnl
@@ -1637,7 +1668,7 @@ PNG_INCLUDE=
 PNG_LINK=
 if test "$wxUSE_LIBPNG" != "no" ; then
     AC_DEFINE(wxUSE_LIBPNG)
-    
+
     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
         AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
         wxUSE_LIBPNG=sys
@@ -1926,6 +1957,21 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                     ;;
         esac
 
+        if test "$WXGTK20" = 1; then
+            if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
+                PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+                        LIBS="$LIBS $PANGOFT2_LIBS"
+                    ],
+                    [
+                        AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
+                        wxUSE_PRINTING_ARCHITECTURE="no"
+                    ]
+                )
+            fi
+        fi
+
         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
         GUI_TK_LIBRARY="$wx_cv_libs_gtk"
 
@@ -2223,16 +2269,47 @@ equivalent variable and GTK+ is version 1.2.3 or above.
             )
         fi
 
-        dnl MBN: this should really be an AC_TRY_LINK, but it is faster
-        dnl      to special case it
-        xt_needs_sm_ice=
-        case "${host}" in
-          *-*-cygwin* )
-            xt_needs_sm_ice=" -lSM -lICE"
-            ;;
-        esac
+        AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
+        libp_link=""
+        libsm_ice_link=""
+        libs_found=0
+        for libp in "" " -lXp"; do
+            if test "$libs_found" = "0"; then
+                for libsm_ice in " -lSM -lICE"; do
+                    if test "$libs_found" = "0"; then                
+                        save_LIBS="$LIBS"
+                        LIBS="$GUI_TK_LIBRARY -lXm${xpm_link} ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
+                        AC_TRY_LINK(
+                            [
+                                #include <Xm/Xm.h>
+                                #include <Xm/List.h>
+                            ],
+                            [
+                                XmString string = NULL;
+                                Widget w = NULL;
+                                int position = 0;
+                                XmListAddItem(w, string, position);
+                            ],
+                            [
+                                libp_link="$libp"
+                                libsm_ice_link="$libsm_ice"
+                                AC_MSG_RESULT(
+                                    [need${libp_link}${libsm_ice_link}])
+                                libs_found=1
+                            ], []
+                        )
+                        LIBS="$save_LIBS"
+                    fi
+                done
+            fi
+        done
 
-        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link -lXmu -lXext -lXt${xt_needs_sm_ice} -lX11"
+        if test "$libs_found" = "0"; then
+            AC_MSG_RESULT([can't find the right libraries])
+            AC_MSG_ERROR([can't link a simple motif program])
+        fi
+
+        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
         TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo"
         TOOLKIT=MOTIF
         GUIDIST=MOTIF_DIST
@@ -2480,7 +2557,7 @@ case "${host}" in
         dnl dynamic shared libraries (in order to embed the resources)
         if test "$wxUSE_MAC" = 1; then
             dnl the name of the resources file for wxMac
-            WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r" 
+            WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r"
             WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc"
         fi
         ;;
@@ -3404,14 +3481,6 @@ if test "$TOOLKIT" != "MSW"; then
       dnl defined, we do it by directly assigned
       dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
 
-      dnl we need _GNU_SOURCE to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+
-      dnl (strictly speaking we only need _XOPEN_SOURCE=500 but just defining
-      dnl this disables _BSD_SOURCE which breaks libtiff compilation, so it is
-      dnl simpler to just define _GNU_SOURCE to get everything)
-      if test "x$wx_cv_lib_glibc21" = "xyes"; then
-          CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-      fi
-
       AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
       [
         AC_TRY_COMPILE([#include <pthread.h>],
@@ -3895,11 +3964,6 @@ dnl ------------------------------------------------------------------------
 
 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxX11
 if test "$wxUSE_SOCKETS" = "yes"; then
-    if test "$wxUSE_X11" = "1"; then
-        AC_MSG_WARN([wxSocket not yet supported under X11... disabled])
-        wxUSE_SOCKETS="no"
-    fi
-
     if test "$wxUSE_MGL" = "1"; then
         AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
         wxUSE_SOCKETS="no"
@@ -4108,7 +4172,7 @@ fi
 
 if test "$wxUSE_UNICODE" = "yes" ; then
   AC_DEFINE(wxUSE_UNICODE)
-  
+
   if test "$wxUSE_MSW" != 1; then
       wxUSE_UNICODE_MSLU=no
   fi
@@ -4164,15 +4228,17 @@ if test "$wxUSE_CONSTRAINTS" = "yes"; then
 fi
 
 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-    if test "$wxUSE_UNIVERSAL" = "yes"; then
-        AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled)
-        wxUSE_MDI_ARCHITECTURE=no
-    fi
 
-    if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-        AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
-        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
-    fi
+dnl     There is now experimental generic MDI support 
+dnl     if test "$wxUSE_UNIVERSAL" = "yes"; then
+dnl         AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled)
+dnl         wxUSE_MDI_ARCHITECTURE=no
+dnl     fi
+
+   if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
+       AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
+       SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
+   fi
 fi
 
 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
@@ -4586,7 +4652,7 @@ if test "$wxUSE_POPUPWIN" = "yes"; then
         else
             if test "$wxUSE_PM" = 1; then
                 AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
-            else 
+            else
                 AC_DEFINE(wxUSE_POPUPWIN)
 
                 USES_CONTROLS=1
@@ -4598,7 +4664,7 @@ fi
 if test "$wxUSE_TIPWINDOW" = "yes"; then
     if test "$wxUSE_PM" = 1; then
         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
-    else 
+    else
         AC_DEFINE(wxUSE_TIPWINDOW)
     fi
 fi
@@ -4851,7 +4917,7 @@ if test "$wxUSE_GUI" = "yes"; then
     dnl      ipc, mfc, nativdlg, oleauto, ownerdrw
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \
                      drawing dynamic erase event exec font image \
-                     minimal richedit rotate widgets"
+                     minimal propsize rotate widgets"
 
     dnl this is needed to be able to find AFM files
     CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
@@ -4897,8 +4963,8 @@ 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'`
+CFLAGS=`echo $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
+CXXFLAGS=`echo $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
 LIBS=`echo $LIBS | sed 's/ \+/ /g'`
 
 LDFLAGS="$LDFLAGS $PROFILE"
@@ -4971,6 +5037,7 @@ AC_SUBST(WXCONFIG_LIBS_GL)
 AC_SUBST(WXCONFIG_LIBS_STATIC)
 AC_SUBST(WXCONFIG_LIBS_STATIC_GL)
 AC_SUBST(WXCONFIG_INCLUDE)
+AC_SUBST(WXCONFIG_RPATH)
 
 dnl the list of files to compile/install
 AC_SUBST(ALL_OBJECTS)