]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
correction for Mac OS X compilation
[wxWidgets.git] / configure.in
index 33fce9c447f5ee8d21dac4ce1000ff14073698e5..7f37257f62862016d56a7d8df29c8ed1c793a791 100644 (file)
@@ -40,7 +40,7 @@ AC_DEFUN(WX_PATH_FIND_LIBRARIES,
 ac_find_libraries=
 for ac_dir in $1;
   do
-    for ac_extension in a so sl; do
+    for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/lib$2.$ac_extension"; then
         ac_find_libraries=$ac_dir
         break 2
@@ -393,6 +393,7 @@ USE_SUNOS=
 USE_ALPHA=
 USE_OSF=
 USE_BSD=
+USE_DARWIN=
 USE_FREEBSD=
 USE_OPENBSD=
 USE_NETBSD=
@@ -556,9 +557,9 @@ case "${host}" in
 
   *-*-darwin* )
     USE_BSD=1
-    USE_MAC=1
-    AC_DEFINE(__MAC__)
+    USE_DARWIN=1
     AC_DEFINE(__BSD__)
+    AC_DEFINE(__DARWIN__)
     AC_DEFINE(__UNIX__)
     DEFAULT_DEFAULT_wxUSE_MAC=1
   ;;
@@ -634,6 +635,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_GUI=yes
   DEFAULT_wxUSE_CONTROLS=no
 
+  DEFAULT_wxUSE_REGEX=no
   DEFAULT_wxUSE_ZLIB=no
   DEFAULT_wxUSE_LIBPNG=no
   DEFAULT_wxUSE_LIBJPEG=no
@@ -687,7 +689,6 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_IPC=no
   DEFAULT_wxUSE_HELP=no
   DEFAULT_wxUSE_MS_HTML_HELP=no
-  
   DEFAULT_wxUSE_WXHTML_HELP=no
   DEFAULT_wxUSE_WXTREE=no
   DEFAULT_wxUSE_METAFILE=no
@@ -790,6 +791,7 @@ else
 
   DEFAULT_wxUSE_GUI=yes
 
+  DEFAULT_wxUSE_REGEX=yes
   DEFAULT_wxUSE_ZLIB=yes
   DEFAULT_wxUSE_LIBPNG=yes
   DEFAULT_wxUSE_LIBJPEG=yes
@@ -973,6 +975,7 @@ fi
 dnl for GUI only
 
 WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
+WX_ARG_SYS_WITH(regex,     [  --with-regex            enable support for wxRegEx class], wxUSE_REGEX)
 WX_ARG_SYS_WITH(zlib,      [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
 WX_ARG_WITH(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
 
@@ -1589,15 +1592,24 @@ if test "$wxUSE_GUI" = "yes"; then
     WXWINE=
 
     if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
-        AC_CHECK_HEADER(windows.h, [], 
-            [
-                AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
-            ])
-        
+        AC_CHECK_HEADER(windows.h, [],
+        [
+            AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
+        ])
+
         INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS msw"
+
+        dnl VZ: my mingw32 doesn't define WINVER which means that __WIN95__ is
+        dnl     not defined in wx/defs.h and all kinds of things break so I
+        dnl     add it here
+        dnl
+        dnl     if newer versions of mingw32 do define it, we should
+        dnl     explicitly test for this
+        CXXFLAGS="${CXXFLAGS} -DWINVER=0x0400"
+
         dnl --- Quick & Dirty ; link against most/all libraries
         dnl --- This will bloat the executable, but it'll work for now...
-        LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
+        LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lwsock32"
 
         dnl add extra odbc libs if we have compiled in odbc
         if test "$wxUSE_ODBC" = "yes" ; then
@@ -2024,6 +2036,12 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         fi
     fi
 
+    dnl REGEX_INCLUDE is only set if we want regex support and if we use our
+    dnl own sources and not the system library
+    if test "x$REGEX_INCLUDE" != "x" ; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)"
+    fi
+
     if test "$wxUSE_LIBJPEG" = "yes" ; then
         ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)"
     fi
@@ -2074,6 +2092,9 @@ else
     dnl this may be (almost) unneccesary for wxBase now we use TOOLKIT_NAME
     TOOLKIT_DIR="base"
 
+    dnl well, we have to set it to something...
+    TOOLKIT_VPATH="."
+
     dnl the base name of the library and wxXXX-config files
     if test "$wxUSE_DEBUG_FLAG" = "yes"; then
         TOOLKIT_NAME="${TOOLKIT_DIR}d"
@@ -2087,6 +2108,12 @@ else
     ALL_OBJECTS="\$(BASE_OBJS) \$(BASE_UNIX_OBJS)"
     ALL_DEPFILES="\$(BASE_DEPS) \$(BASE_UNIX_DEPS)"
 
+    dnl REGEX_INCLUDE is only set if we want regex support and if we use our
+    dnl own sources and not the system library
+    if test "x$REGEX_INCLUDE" != "x" ; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)"
+    fi
+
     if test "$wxUSE_ZLIB" = "yes" ; then
         ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
     fi
@@ -2094,7 +2121,7 @@ else
     dnl building wxBase only
     WX_LIBRARY="wx_${TOOLKIT_NAME}"
 
-    PORT_FILES="src/files.lst"
+    PORT_FILES="\${top_srcdir}/src/files.lst"
     RPM_FILES="src/rpmfiles.lst"
     RPM_SPEC="wxBase.spec"
 
@@ -2227,6 +2254,9 @@ if test "$wxUSE_SHARED" = "yes"; then
         fi
       ;;
       *-*-darwin* )
+       TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -D__DARWIN__ -D__POWERPC__"
+       CFLAGS="${CFLAGS} -fno-common"
+       CPPFLAGS="${CPPFLAGS} -fno-common"
         SHARED_LD="${CXX} -dynamiclib -o"
         PIC_FLAG="-dynamic -fPIC"
         if test "$wxUSE_OPENGL" = "yes"; then
@@ -2236,8 +2266,10 @@ if test "$wxUSE_SHARED" = "yes"; then
             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
             WX_ALL="CREATE_LINKS"
         fi
-        dnl add the resources target
-        WX_ALL="${WX_ALL} ./lib/lib${WX_LIBRARY}-${WX_RELEASE}.r"
+        dnl add the resources target for wxMac
+       if test "$wxUSE_MAC" = 1 ; then
+               WX_ALL="${WX_ALL} ./lib/lib${WX_LIBRARY}-${WX_RELEASE}.r"
+       fi
         dnl the name of the shared library
         WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.dylib.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
         WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.dylib.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -2757,7 +2789,7 @@ if test "$USE_BEOS" = 1; then
     HAVE_SOME_SLEEP_FUNC=1
 fi
 
-if test "$USE_MAC" = 1; then
+if test "$USE_DARWIN" = 1; then
     dnl Mac OS X has both nanosleep and usleep
     dnl but only usleep is defined in unistd.h
     AC_DEFINE(HAVE_USLEEP)
@@ -3037,8 +3069,8 @@ fi
 if test "$wxUSE_THREADS" = "yes"; then
   AC_DEFINE(wxUSE_THREADS)
 
-  dnl must define _REENTRANT for multithreaded code except for Mac OS X
-  if test "$wxUSE_MAC" = "0"; then
+  dnl must define _REENTRANT for multithreaded code except for Darwin/Mac OS X
+  if test "$USE_DARWIN" != 1; then
     CFLAGS="${CFLAGS} -D_REENTRANT"
     CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
   fi
@@ -3077,9 +3109,9 @@ if test "$WXWINE" = 1 ; then
 fi
 
 if test "$wxUSE_MAC" = 1 ; then
-  TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -D__POWERPC__ -DTARGET_CARBON"
-  CFLAGS="${CFLAGS} -fno-common -fpascal-strings"
-  CPPFLAGS="${CPPFLAGS} -cpp-precomp -fno-common -fpascal-strings"
+  TOOLKIT_DEF="${TOOLKIT_DEF} -DTARGET_CARBON"
+  CFLAGS="${CFLAGS} -fpascal-strings"
+  CPPFLAGS="${CPPFLAGS} -cpp-precomp -fpascal-strings"
   AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
   AC_CHECK_PROG(DEREZ, Derez, Derez, /Developer/Tools/Derez)
   RESCOMP=${REZ}
@@ -3181,6 +3213,26 @@ dnl ---------------------------------------------------------------------------
 dnl Optional libraries
 dnl ---------------------------------------------------------------------------
 
+REGEX_INCLUDE=
+if test "$wxUSE_REGEX" != "no"; then
+    dnl according to Unix 98 specs, regcomp() is in libc but I believe that
+    dnl on some old systems it may be in libregex - check for it too?
+    AC_CHECK_HEADER(regex.h, AC_CHECK_FUNCS(regcomp))
+
+    if test "x$ac_cv_func_regcomp" != "xyes"; then
+        dnl we were asked to use the system version of regex lib only but it
+        dnl is not available
+        if test "$wxUSE_REGEX" = "sys"; then
+            AC_MSG_ERROR([system regex library not found! Use --with-regex to use the built-in regex library.])
+        fi
+
+        dnl fallback to the built in code
+        REGEX_INCLUDE="-I\${top_srcdir}/src/regex"
+    fi
+
+    AC_DEFINE(wxUSE_REGEX)
+fi
+
 ZLIB_INCLUDE=
 if test "$wxUSE_ZLIB" = "yes" -o "$wxUSE_ZLIB" = "sys" ; then
   AC_DEFINE(wxUSE_ZLIB)
@@ -3296,17 +3348,23 @@ if test "$wxUSE_FREETYPE" = "yes" -o "$wxUSE_FREETYPE" = "sys" ; then
 fi
 
 if test "$wxUSE_OPENGL" = "yes"; then
-  AC_CHECK_HEADER(GL/gl.h, [
+  if test "$wxUSE_MAC" = 1; then
     AC_DEFINE(wxUSE_OPENGL)
     AC_DEFINE(wxUSE_GLCANVAS)
-    AC_CHECK_LIB(GL, glFlush, [
-      OPENGL_LINK="-lGL -lGLU"
-    ],[
-        AC_CHECK_LIB(MesaGL, glFlush, [
-        OPENGL_LINK="-lMesaGL -lMesaGLU"
-      ],)
-     ],)
-    ],wxUSE_OPENGL=0)
+    OPENGL_LINK="-framework OpenGL -framework AGL"
+  else
+    AC_CHECK_HEADER(GL/gl.h, [
+      AC_DEFINE(wxUSE_OPENGL)
+      AC_DEFINE(wxUSE_GLCANVAS)
+      AC_CHECK_LIB(GL, glFlush, [
+        OPENGL_LINK="-lGL -lGLU"
+      ],[
+          AC_CHECK_LIB(MesaGL, glFlush, [
+          OPENGL_LINK="-lMesaGL -lMesaGLU"
+        ],)
+       ],)
+      ],wxUSE_OPENGL=0)
+  fi
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -3727,8 +3785,8 @@ if test "$TOOLKIT" != "MSW"; then
 HAVE_DL_FUNCS=0
 HAVE_SHL_FUNCS=0
 if test "$wxUSE_DYNLIB_CLASS" = "yes"; then
-    if test "$USE_MAC" = 1; then
-        dnl Mac OS X needs dl_macosx.c to be compiled in to fake dlopen/dlerror
+    if test "$USE_DARWIN" = 1; then
+        dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
         HAVE_DL_FUNCS=1
     else
         dnl the test is a bit complicated because we check for dlopen() both with
@@ -3870,8 +3928,8 @@ if test "$wxUSE_HELP" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
 
     if test "$USE_WIN32" = 1; then
-      if test "$wxUSE_WXHTML_HELP" = "yes"; then
-        AC_DEFINE(wxUSE_WXHTML_HELP)
+      if test "$wxUSE_MS_HTML_HELP" = "yes"; then
+        AC_DEFINE(wxUSE_MS_HTML_HELP)
         AC_CHECK_HEADER(htmlhelp.h, 
             [
                 AC_DEFINE(wxUSE_MS_HTML_HELP)
@@ -3882,6 +3940,15 @@ if test "$wxUSE_HELP" = "yes"; then
             ])
       fi
     fi
+
+    if test "$wxUSE_WXHTML_HELP" = "yes"; then
+      if test "$wxUSE_HTML" = "yes"; then
+        AC_DEFINE(wxUSE_WXHTML_HELP)
+      else
+        AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
+        wxUSE_WXHTML_HELP=no
+      fi
+    fi
 fi
 
 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
@@ -4392,7 +4459,7 @@ 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"
-if test "$USE_MAC" = 1 ; then
+if test "$wxUSE_MAC" = 1 ; then
     EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System"
 fi
 if test "$wxUSE_GUI" = "yes"; then
@@ -4404,7 +4471,9 @@ dnl makefile system without libtool
 LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS"
 
 dnl all -I options we must pass to the compiler
-INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $FREETYPE_INCLUDE $TOOLKIT_INCLUDE"
+INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include \
+$REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE \
+$FREETYPE_INCLUDE $TOOLKIT_INCLUDE"
 
 dnl wxGTK does not need TOOLKIT includes in wx-config
 if test "$wxUSE_GTK" = 1; then
@@ -4589,11 +4658,12 @@ if test "$wxUSE_GUI" = "yes"; then
     wx_cv_path_ifs=$PATH_IFS
     wx_cv_program_ext=$PROGRAM_EXT
     wx_cv_target_library=$WX_TARGET_LIBRARY
+    wx_cv_target_library_gl=$WX_TARGET_LIBRARY_GL
     wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
     dnl we need to export them because passing them through cache won't
     dnl work when cache=/dev/null (which is default for autoconf 2.50)
     export wx_cv_path_samplesubdirs wx_cv_path_ifs wx_cv_program_ext \
-           wx_cv_target_library wx_cv_target_libtype
+           wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
     AC_CONFIG_SUBDIRS(demos samples utils contrib)
 fi
 dnl from wxUSE_GUI