]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
applied the bit's of #473508 that were still relevant, and fixed a couple of
[wxWidgets.git] / configure.in
index 98c2b61f090d5924cd8585e98f923be9fb9c51cb..7aafc547e25b7abedd6073ccfab44f00427facd2 100644 (file)
@@ -370,6 +370,8 @@ WX_RELEASE_NUMBER=2
 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
 WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
 
+WX_MSW_VERSION=$WX_MAJOR_VERSION_NUMBER$WX_MINOR_VERSION_NUMBER$WX_RELEASE_NUMBER
+
 WX_CURRENT=1
 WX_REVISION=0
 WX_AGE=0
@@ -404,8 +406,6 @@ USE_OPENBSD=
 USE_NETBSD=
 USE_VMS=
 USE_ULTRIX=
-USE_CYGWIN=
-USE_MINGW=
 USE_DATA_GENERAL=
 
 dnl on some platforms xxx_r() functions are declared inside "#ifdef
@@ -416,7 +416,7 @@ NEEDS_D_REENTRANT_FOR_R_FUNCS=0
 dnl the list of all available toolkits
 dnl
 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
-ALL_TOOLKITS="CYGWIN GTK MAC MGL MINGW MOTIF PM WINE"
+ALL_TOOLKITS="GTK MAC MGL MOTIF MSW PM WINE"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
@@ -992,8 +992,7 @@ AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$wi
 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(mac,           [  --with-mac              use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
 AC_ARG_WITH(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
-AC_ARG_WITH(cygwin,        [  --with-cygwin           use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1])
-AC_ARG_WITH(mingw,         [  --with-mingw            use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW TOOLKIT_GIVEN=1])
 AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(mgl,           [  --with-mgl              use SciTech MGL], [wxUSE_MGL="$withval" CACHE_MGL=1 TOOLKIT_GIVEN=1])
 
@@ -1351,8 +1350,7 @@ if test "$wxUSE_GUI" = "yes"; then
     dnl we suppose that expr is available (maybe there is a better way to do
     dnl this? what about using ALL_TOOLKITS? TODO)
     NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0}  \
-                  + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0} \
-                  + ${wxUSE_MGL:-0}`
+                  + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0}`
 
     dnl Allow wxUSE_PM only for OS/2 with EMX.
     dnl Path separator; ':' for unix.
@@ -1463,6 +1461,18 @@ AC_CHECK_PROG(AR, ar, ar, ar)
 dnl install checks
 dnl   defines INSTALL with the appropriate command
 AC_PROG_INSTALL
+case "${host}" in
+
+    dnl The other BSD's should probably go in here too, since this is
+    dnl to workaround a strange static lib BSDism.
+    dnl Mac OS X install seems to ignore -p option...
+    powerpc-*-darwin* )
+        INSTALL_PROGRAM="cp -fp"
+        INSTALL_DATA="cp -fp"
+        ;;
+    *)
+        ;;
+esac
 
 dnl strip command
 dnl   defines STRIP as strip or nothing if not found
@@ -1867,8 +1877,8 @@ if test "$USE_WIN32" = 1 ; then
         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
     ])
 
-    dnl check if can use _WIN_IE macro
-    AC_CACHE_CHECK([if w32api has good enough MSIE support], wx_cv_w32api_win_ie,
+    dnl check if can use _WIN32_IE macro
+    AC_CACHE_CHECK([if w32api has good enough MSIE support], wx_cv_w32api_win32_ie,
     [
       AC_TRY_COMPILE([#include <w32api.h>],
                      [
@@ -1881,36 +1891,31 @@ if test "$USE_WIN32" = 1 ; then
                        #error You need w32api 1.1 or newer
                        #endif
                      ], [
-                        wx_cv_w32api_win_ie=yes
-                        CPPFLAGS="$CPPFLAGS -D_WIN_IE=0x400"
+                        wx_cv_w32api_win32_ie=yes
                      ], [
-                        wx_cv_w32api_win_ie=no
+                        wx_cv_w32api_win32_ie=no
                      ])
     ])
+    if test "$wx_cv_w32api_win32_ie" = "yes" ; then
+        CPPFLAGS="$CPPFLAGS -D_WIN32_IE=0x400"
+    fi
 
     dnl --- FIXME: This is still a somewhat random list of libs,
     dnl ---        some of them should probably be included conditionally.
     LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lwsock32"
 
-    dnl Cygwin doesn't link these by default
-    if test "$wxUSE_CYGWIN" = 1; then
-        LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32"
-    fi
+    case "${host}" in
+        *-*-cygwin* )
+            dnl Cygwin doesn't include these by default
+            LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32"
+            TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__"
+    esac
 
     dnl add extra odbc libs if we have compiled in odbc
     if test "$wxUSE_ODBC" = "yes" ; then
         LIBS="$LIBS -lodbc32 -lole32 -loleaut32"
     fi
 
-    dnl -mwindows is needed to avoid that spawning of a console window
-    dnl This probably doesn't belong here..  The user may actually *want*
-    dnl a console window.  People should add this to their own app makefiles
-    dnl instead.  Unless someone cries murder about it, expect this to
-    dnl disappear from here soon.
-    if test "$wxUSE_MINGW" = 1; then
-        LDFLAGS="$LDFLAGS -mwindows"
-    fi
-
     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
 fi
@@ -1924,9 +1929,17 @@ if test "$wxUSE_GUI" = "yes"; then
     WXGTK127=
     WXGTK20=
 
-    if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
+    if test "$wxUSE_MSW" = 1 ; then
         TOOLKIT=MSW
         GUIDIST=MSW_DIST
+
+        dnl -mwindows causes a heap of other default gui libs to be linked in.
+        dnl FIXME: If cygwin needs this, please push it above, if not, please
+        dnl        remove this comment :-)
+        case "${host}" in
+            *-*-mingw32* )
+                EXTRA_LIBS="$EXTRA_LIBS -Wl,--subsystem,windows -mwindows"
+        esac
     fi
 
     if test "$wxUSE_GTK" = 1; then
@@ -1938,7 +1951,7 @@ if test "$wxUSE_GUI" = "yes"; then
                 dnl stupid GTK+ AM macros produce their own messages, so we
                 dnl have to pass to the next line
                 gtk_version_cached=0
-                AC_MSG_RESULT("")
+                AC_MSG_RESULT()
 
                 wx_cv_lib_gtk=
                 if test "x$wxUSE_GTK2" = "xyes"; then
@@ -2014,12 +2027,14 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         mgl_lib_type=""
 
         if test "$wxUSE_DEBUG_FLAG" = yes ; then
-            if test -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.a ; then
+            if test -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.a -o \
+                    -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.so; then
                 mgl_lib_type=debug
             fi
         fi
         if test "x$mgl_lib_type" = x ; then
-            if test -f $MGL_ROOT/lib/release/$mgl_os/libmgl.a ; then
+            if test -f $MGL_ROOT/lib/release/$mgl_os/libmgl.a -o \
+                    -f $MGL_ROOT/lib/release/$mgl_os/libmgl.so; then
                 mgl_lib_type=release
             else
                 AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
@@ -2296,23 +2311,31 @@ dnl OpenGL libraries
 dnl ---------------------------------------------------------------------------
 if test "$wxUSE_OPENGL" = "yes"; then
   if test "$wxUSE_MAC" = 1; then
-    AC_DEFINE(wxUSE_OPENGL)
-    AC_DEFINE(wxUSE_GLCANVAS)
     OPENGL_LIBS="-framework OpenGL -framework AGL"
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl"
   else
+    dnl check for OpenGL libs availability first
     AC_CHECK_HEADER(GL/gl.h, [
-      AC_DEFINE(wxUSE_OPENGL)
-      AC_DEFINE(wxUSE_GLCANVAS)
-      SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl"
       AC_CHECK_LIB(GL, glFlush, [
         OPENGL_LIBS="-lGL -lGLU"
-      ],[
-          AC_CHECK_LIB(MesaGL, glFlush, [
+      ], [
+        AC_CHECK_LIB(MesaGL, glFlush, [
           OPENGL_LIBS="-lMesaGL -lMesaGLU"
-        ],)
-       ],)
-      ],wxUSE_OPENGL=0)
+        ])
+      ])
+    ])
+
+    if test "x$OPENGL_LIBS" = "x"; then
+        dnl it should be an error and not a warning because OpenGL is not on
+        dnl by default and so if it had been explicitely requested, we
+        dnl shouldn't just fall back to compiling the library without it
+        AC_MSG_ERROR(OpenGL libraries not available)
+    fi
+  fi
+
+  if test "$wxUSE_OPENGL" = "yes"; then
+    AC_DEFINE(wxUSE_OPENGL)
+    AC_DEFINE(wxUSE_GLCANVAS)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl"
   fi
 fi
 
@@ -2325,10 +2348,6 @@ if test -n "$TOOLKIT" ; then
     TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
 fi
 
-if test "$wxUSE_CYGWIN" = 1 ; then
-  TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__"
-fi
-
 lib_unicode_suffix=
 if test "$wxUSE_UNICODE" = "yes"; then
     lib_unicode_suffix=u
@@ -2337,7 +2356,6 @@ fi
 lib_debug_suffix=
 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
     lib_debug_suffix=d
-    TOOLCHAIN_NAME="${TOOLCHAIN_NAME}d"
 fi
 
 TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
@@ -2352,17 +2370,6 @@ dnl library link name
 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
 
-dnl define which libs wx-config should link.
-WXCONFIG_LIBS="-l${WX_LIBRARY}"
-
-if test "$wxUSE_OPENGL" = "yes"; then
-    WXCONFIG_LIBS_GL="-l${WX_LIBRARY_GL} $OPENGL_LIBS"
-fi
-
-dnl the name of the static library
-WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
-WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY_GL}.a"
-
 dnl the name of the shared library
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
 WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -2377,6 +2384,39 @@ dnl the name of the resources file for wxMac
 WX_RESOURCES_MACOSX="lib${WX_LIBRARY}.rsrc"
 WX_RESOURCES_MACOSX_COMPILED="lib${WX_LIBRARY}.r"
 
+case "${host}" in
+    *-*-cygwin* | *-*-mingw32* )
+
+        dnl If we are cross compiling we want to use the 'full' unix type name for the
+        dnl lib, but for a native install use the windows style naming convention.
+        dnl (excepting again that we strip the ELF style version numbers off it).
+
+        dnl FIXME: is this GL stuff actually even used for wxMSW?  should it be??
+
+        if test "$cross_compiling" != "yes"; then
+            WX_LIBRARY="wxmsw${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}"
+            WX_LIBRARY_GL="wxmsw_gl${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}"
+            WX_LIBRARY_NAME_SHARED="${WX_LIBRARY}.${SO_SUFFIX}"
+            WX_LIBRARY_NAME_SHARED_GL="${WX_LIBRARY_GL}.${SO_SUFFIX}"
+        else
+            WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}"
+            WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
+        fi
+
+esac
+
+dnl the name of the static library
+WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
+WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY_GL}.a"
+
+dnl define which libs wx-config should link.
+WXCONFIG_LIBS="-l${WX_LIBRARY}"
+
+if test "$wxUSE_OPENGL" = "yes"; then
+    WXCONFIG_LIBS_GL="-l${WX_LIBRARY_GL} $OPENGL_LIBS"
+fi
+
+
 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
 
 if test "$wxUSE_SHARED" = "yes"; then
@@ -2471,13 +2511,13 @@ if test "$wxUSE_SHARED" = "yes"; then
       ;;
 
       *-*-cygwin* | *-*-mingw32* )
-        WX_LIBRARY="wxmsw${WX_MAJOR_VERSION_NUMBER}${WX_MINOR_VERSION_NUMBER}${WX_RELEASE_NUMBER}${lib_unicode_suffix}${lib_debug_suffix}"
-        WX_LIBRARY_NAME_SHARED="${WX_LIBRARY}.dll"
-        WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
-        WXCONFIG_LIBS="-l${WX_LIBRARY}"
-        SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_NAME_STATIC} -o"
+
+        WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a"
+
+        SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o"
         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -DWXUSINGDLL=1"
-        WXMSW_DLL_DEFINES="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1"
+
+        PIC_FLAG="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1"
 
         dnl install shared libs without symlinks
         if test "$wxUSE_OPENGL" = "yes"; then
@@ -2486,9 +2526,6 @@ if test "$wxUSE_SHARED" = "yes"; then
         else
             WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
         fi
-        dnl -fPIC is not required for mingw build -- all code is already
-        dnl position independent
-        PIC_FLAG=
       ;;
 
       *-pc-os2_emx | *-pc-os2-emx )
@@ -2612,9 +2649,18 @@ dnl   defines uid_t and gid_t if not already defined
 AC_TYPE_UID_T
 
 dnl   check for wchar_t
+dnl   Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
 AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t,
 [
-    AC_TRY_COMPILE([#include <wchar.h>],
+    AC_TRY_COMPILE(
+        [
+            #ifdef HAVE_WCHAR_H
+            #  include <wchar.h>
+            #endif
+            #ifdef HAVE_STDLIB_H
+            #  include <stdlib.h>
+            #endif
+        ],
         [
             wchar_t wc, *ws;
             wc = L'a';
@@ -2726,7 +2772,7 @@ AC_CHECK_SIZEOF(long, 4)
 AC_CHECK_SIZEOF(long long, 0)
 
 dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
-dnl wchar_t an AC_CHECK_SIZEOF only includes stdio.h
+dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h
 dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
 AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
 [
@@ -4011,7 +4057,7 @@ if test "$wxUSE_HELP" = "yes"; then
     AC_DEFINE(wxUSE_HELP)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
 
-    if test "$USE_WIN32" = 1; then
+    if test "$wxUSE_MSW" = 1; then
       if test "$wxUSE_MS_HTML_HELP" = "yes"; then
         AC_CHECK_HEADER(htmlhelp.h, 
             [
@@ -4062,9 +4108,9 @@ dnl ---------------------------------------------------------------------------
 
 dnl check for ole headers and disable a few features requiring it if not
 dnl present (earlier versions of mingw32 don't have ole2.h)
-if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
-                            -o "$wxUSE_CLIPBOARD"     = "yes" \
-                            -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
+if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
+                          -o "$wxUSE_CLIPBOARD"     = "yes" \
+                          -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
     AC_CHECK_HEADERS(ole2.h)
 
     if test "$ac_cv_header_ole2_h" = "yes" ; then
@@ -4086,7 +4132,6 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
         wxUSE_DATAOBJ=no
     fi
 
-    dnl this is for MSW only, so we test for it inside "if USE_WIN32"
     if test "$wxUSE_METAFILE" = "yes"; then
         AC_DEFINE(wxUSE_METAFILE)
 
@@ -4578,7 +4623,7 @@ dnl all additional libraries (except wxWindows itself) we link with
 dnl
 dnl note that we always link with -lm except for Mac OS X
 dnl extended.c uses floor() and is always linked in
-EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm"
+EXTRA_LIBS="$EXTRA_LIBS $LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm"
 
 if test "$wxUSE_MAC" = 1 ; then
     EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System"
@@ -4652,6 +4697,7 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER)
 AC_SUBST(WX_RELEASE_NUMBER)
 AC_SUBST(WX_LIBRARY_NAME_STATIC)
 AC_SUBST(WX_LIBRARY_NAME_SHARED)
+AC_SUBST(WX_LIBRARY_IMPORTLIB)
 AC_SUBST(WX_TARGET_LIBRARY)
 AC_SUBST(WX_LIBRARY_LINK1)
 AC_SUBST(WX_LIBRARY_LINK2)
@@ -4691,6 +4737,7 @@ AC_SUBST(TOOLCHAIN_NAME)
 AC_SUBST(TOOLCHAIN_DEFS)
 
 dnl wx-config options
+AC_SUBST(host_alias)
 AC_SUBST(cross_compiling)
 AC_SUBST(WXCONFIG_LIBS)
 AC_SUBST(WXCONFIG_LIBS_GL)
@@ -4716,7 +4763,6 @@ AC_SUBST(OPENGL_LIBS)
 AC_SUBST(EXTRADEFS)
 AC_SUBST(LIBS)
 AC_SUBST(LD_LIBS)
-AC_SUBST(WXMSW_DLL_DEFINES)
 
 dnl additional resurces settings
 AC_SUBST(RESCOMP)