]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
corrected appeaance of boxes und OSX
[wxWidgets.git] / configure.in
index 34b2361d621b71f1da09a81ccd3f52a6f61aa913..518986efdf9cd0fcf694e2bf32d2a4a7b1d27501 100644 (file)
@@ -286,28 +286,6 @@ if test "$USE_UNIX" = 1 ; then
     AC_DEFINE(__UNIX__)
 fi
 
-dnl check for glibc version
-if test "$USE_LINUX" = 1; then
-    AC_CACHE_CHECK([for glibc 2.1 or later], wx_lib_glibc21,[
-        AC_TRY_COMPILE([#include <features.h>],
-            [
-                #if !__GLIBC_PREREQ(2, 1)
-                    #error not glibc2.1
-                #endif
-            ],
-            [
-                wx_lib_glibc21=yes
-            ],
-            [
-                wx_lib_glibc21=no
-            ]
-        )
-    ])
-    if test "$wx_lib_glibc21" = "yes"; then
-        AC_DEFINE(wxHAVE_GLIBC2)
-    fi
-fi
-
 dnl ---------------------------------------------------------------------------
 dnl command line options for configure
 dnl ---------------------------------------------------------------------------
@@ -335,8 +313,8 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_OPTIMISE=no
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
-  DEFAULT_wxUSE_NO_RTTI=yes
-  DEFAULT_wxUSE_NO_EXCEPTIONS=yes
+  DEFAULT_wxUSE_NO_RTTI=no
+  DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_PERMISSIVE=no
   DEFAULT_wxUSE_DEBUG_FLAG=yes
   DEFAULT_wxUSE_DEBUG_INFO=yes
@@ -509,8 +487,8 @@ else
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
-  DEFAULT_wxUSE_NO_RTTI=yes
-  DEFAULT_wxUSE_NO_EXCEPTIONS=yes
+  DEFAULT_wxUSE_NO_RTTI=no
+  DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_PERMISSIVE=no
   DEFAULT_wxUSE_DEBUG_FLAG=no
   DEFAULT_wxUSE_DEBUG_INFO=no
@@ -708,7 +686,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(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW TOOLKIT_GIVEN=1])
+AC_ARG_WITH(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 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])
 AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
@@ -1174,7 +1152,7 @@ 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=}
+CFLAGS=${CFLAGS:=}
 AC_PROG_CC
 
 dnl is -traditional needed for correct compilations
@@ -1191,7 +1169,7 @@ dnl   defines GXX empty if not using gxx
 dnl   defines CXXFLAGS
 dnl
 dnl see CFLAGS line above
-CXXFLAGS=${CXXFLAGS=}
+CXXFLAGS=${CXXFLAGS:=}
 AC_PROG_CXX
 
 AC_LANG_RESTORE
@@ -1384,6 +1362,28 @@ dnl ------------------------------------------------------------------------
 dnl flush the cache because checking for libraries below might abort
 AC_CACHE_SAVE
 
+dnl check for glibc version
+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>],
+            [
+                #if !__GLIBC_PREREQ(2, 1)
+                    #error not glibc2.1
+                #endif
+            ],
+            [
+                wx_cv_lib_glibc21=yes
+            ],
+            [
+                wx_cv_lib_glibc21=no
+            ]
+        )
+    ])
+    if test "$wx_cv_lib_glibc21" = "yes"; then
+        AC_DEFINE(wxHAVE_GLIBC2)
+    fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Optional libraries
 dnl
@@ -2183,11 +2183,13 @@ fi
 dnl ---------------------------------------------------------------------------
 dnl OpenGL libraries
 dnl ---------------------------------------------------------------------------
+
 if test "$wxUSE_OPENGL" = "yes"; then
     if test "$wxUSE_MAC" = 1; then
         OPENGL_LIBS="-framework OpenGL -framework AGL"
+    elif test "$wxUSE_MSW" = 1; then
+        OPENGL_LIBS="-lopengl32 -lglu32"
     else
-
         AC_CHECK_HEADER(GL/gl.h,
             [
                 AC_MSG_CHECKING([for -lGL])
@@ -2216,26 +2218,6 @@ if test "$wxUSE_OPENGL" = "yes"; then
                 fi
             ])
 
-    dnl check for OpenGL libs availability first
-    dnl -lGL requires -lm with soem OpenGL versions
-
-#    AC_CHECK_HEADER(GL/gl.h,
-#        [
-#            AC_CHECK_LIB(GL, glFlush,
-#                [
-#                    OPENGL_LIBS="-lGL -lGLU"
-#                ],
-#                [
-#                    AC_CHECK_LIB(MesaGL, glFlush,
-#                        [
-#                            OPENGL_LIBS="-lMesaGL -lMesaGLU"
-#                        ],
-#                        [],
-#                        [-lm])
-#                ],
-#                [-lm])
-#        ])
-
         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
@@ -2292,10 +2274,6 @@ WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}"
 WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}"
 WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
 
-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* )
 
@@ -2314,7 +2292,17 @@ case "${host}" in
             WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}"
             WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
         fi
+        ;;
 
+    *-*-darwin* )
+        dnl Under Mac OS X, we should build real frameworks instead of simple
+        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_DATA="lib${WX_LIBRARY}.rsrc"
+        fi
+        ;;
 esac
 
 dnl the name of the static library
@@ -2429,12 +2417,13 @@ if test "$wxUSE_SHARED" = "yes"; then
       *-*-darwin* )
         dnl For Unix to MacOS X porting instructions, see:
         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"
+        CFLAGS="$CFLAGS -fno-common -DWXMAKINGDLL"
+        CXXFLAGS="$CXXFLAGS -fno-common -DWXMAKINGDLL"
+        dnl wxWindows must be fully binded (lazy binding breaks RTTI classinfo)
+        dnl this can be done either with the exe linker flag -Wl,-bind_at_load
+        dnl or with a double stage link in order to create a single module
+        dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
+        SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o"
         PIC_FLAG="-dynamic -fPIC"
         SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION}"
         SONAME_FLAGS_GL=${SONAME_FLAGS}
@@ -2521,14 +2510,21 @@ fi
 
 if test "$wxUSE_MAC" = 1; then
     dnl add the resources target for wxMac
-    WX_ALL="${WX_ALL} \$(build_libdir)/lib${WX_LIBRARY}.r"
+    LIBWXMACRES="\$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}"
+    WX_ALL="${WX_ALL} ${LIBWXMACRES}"
     WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_res"
     AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
     MACOSX_BUNDLE="bundle"
-    LIBWXMACRES="\$(top_builddir)/lib/lib${WX_LIBRARY}.r"
-    LIBWXMACRESCOMP="\$(RESCOMP) Carbon.r -t APPL ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
-    LIBWXMACRESWXCONFIG="${RESCOMP} Carbon.r -t APPL \${prefix}/lib/${WX_RESOURCES_MACOSX_COMPILED} -o"
+    if test "$wxUSE_SHARED" = "yes"; then
+        dnl resources are bundled with shared library, not with applications
+        LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r -o \$(BIN_PROGRAM)"
+        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r -o"
+    else
+        dnl resources are bundled with applications, not with static library
+        LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
+        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
+    fi
 else
     if test "$wxUSE_PM" = 1; then
         LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)"
@@ -2568,6 +2564,11 @@ dnl AC_CHECK_HEADERS(wctype.h)
 
 dnl defines HAVE_FNMATCH_H
 AC_CHECK_HEADERS(fnmatch.h)
+
+if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
+    AC_CHECK_FUNCS(fnmatch)
+fi
+
 dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
 AC_CHECK_HEADERS(langinfo.h)
 
@@ -2593,37 +2594,6 @@ AC_TYPE_SIZE_T
 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)
-dnl   on Cygwin wchar.h needs stddef.h to be #included by hand
-AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t,
-[
-    AC_TRY_COMPILE(
-        [
-            #ifdef HAVE_WCHAR_H
-            #  ifdef __CYGWIN__
-            #    include <stddef.h>
-            #  endif
-            #  include <wchar.h>
-            #endif
-            #ifdef HAVE_STDLIB_H
-            #  include <stdlib.h>
-            #endif
-        ],
-        [
-            wchar_t wc, *ws;
-            wc = L'a';
-            ws = L"Hello, world!";
-        ],
-        wx_cv_type_wchar_t=yes,
-        wx_cv_type_wchar_t=no
-    )
-])
-
-if test "$wx_cv_type_wchar_t" = "yes"; then
-    AC_DEFINE(wxUSE_WCHAR_T)
-fi
-
 dnl check what exactly size_t is on this machine - this is necessary to avoid
 dnl ambiguos overloads in several places, notably wx/string.h and wx/array.h
 AC_LANG_SAVE
@@ -2774,25 +2744,41 @@ 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, [
+dnl don't check for wchar_t functions if we haven't got wchar_t itself
+WCHAR_OK=0
+if test "$wx_cv_sizeof_wchar_t" != "0"; then
+    dnl check for wcslen
+    WCHAR_LINK=
+    AC_CHECK_LIB(c, wcslen, [
                 AC_DEFINE(HAVE_WCSLEN)
-                WCHAR_LINK=" -lw"
+                WCHAR_OK=1
             ], [
-                AC_CHECK_LIB(msvcrt, wcslen, [
+                AC_CHECK_LIB(w, wcslen, [
                     AC_DEFINE(HAVE_WCSLEN)
-                    WCHAR_LINK=
+                    WCHAR_LINK=" -lw"
+                    WCHAR_OK=1
                 ])
             ])
+
+    if test "$TOOLKIT" = "MSW" -a "$WCHAR_OK" = 0; then
+        AC_CHECK_LIB(msvcrt, wcslen, [
+            AC_DEFINE(HAVE_WCSLEN)
+            WCHAR_OK=1
         ])
+    fi
+fi
 
-dnl use wcsrtombs instead of wcstombs which is buggy in old GNU libc versions
-dnl if possible
-AC_CHECK_FUNCS(wcsrtombs)
+dnl we need at least the definition of wchar_t itself and wcslen() to compile
+dnl with wchar_t support -- turn it off if we don't have this
+if test "$WCHAR_OK" = 1; then
+    AC_DEFINE(wxUSE_WCHAR_T)
+
+    dnl also try to use wcsrtombs instead of wcstombs which is buggy in old GNU
+    dnl libc versions if possible
+    AC_CHECK_FUNCS(wcsrtombs)
+else
+    AC_MSG_WARN([Wide character support is unavailable])
+fi
 
 dnl check for vprintf/vsprintf() which are GNU extensions
 AC_FUNC_VPRINTF
@@ -3180,7 +3166,11 @@ if test "$TOOLKIT" != "MSW"; then
                 dnl and finally the userland threads
                 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
                 ;;
-          *-*-aix* )
+          *-*-darwin*)
+                dnl Darwin / Mac OS X just uses -lpthread tested below
+                THREAD_OPTS=""
+                ;;
+          *-*-aix*)
                 dnl AIX calls the library libpthreads - thanks IBM!
                 THREAD_OPTS="pthreads"
                 ;;
@@ -3341,7 +3331,7 @@ if test "$TOOLKIT" != "MSW"; then
       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_lib_glibc21" = "xyes"; then
+      if test "x$wx_cv_lib_glibc21" = "xyes"; then
           CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
       fi
 
@@ -4879,6 +4869,7 @@ AC_SUBST(SAMPLES_SUBDIRS)
 dnl additional libraries and linker settings
 AC_SUBST(LDFLAGS)
 AC_SUBST(LDFLAGS_GL)
+AC_SUBST(LDFLAGS_EXE)
 AC_SUBST(OPENGL_LIBS)
 AC_SUBST(DMALLOC_LIBS)
 AC_SUBST(EXTRADEFS)
@@ -4887,8 +4878,8 @@ dnl additional resurces settings
 AC_SUBST(RESCOMP)
 AC_SUBST(RESFLAGS)
 AC_SUBST(RESPROGRAMOBJ)
-AC_SUBST(WX_RESOURCES_MACOSX)
-AC_SUBST(WX_RESOURCES_MACOSX_COMPILED)
+AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
+AC_SUBST(WX_RESOURCES_MACOSX_DATA)
 
 dnl additional for Mac OS X
 AC_SUBST(DEREZ)
@@ -4933,7 +4924,7 @@ if test "$wxUSE_GUI" = "yes"; then
     export wx_cv_path_samplesubdirs wx_cv_if_gnu_make \
            wx_cv_path_ifs wx_cv_program_ext \
            wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
-    AC_CONFIG_SUBDIRS(demos samples utils contrib mobile)
+    AC_CONFIG_SUBDIRS(demos samples utils contrib)
 fi
 
 dnl create each of the files in the space separated list from the file.in