2009-10-12 Dirk Schulze <krit@webkit.org>
[WebKit-https.git] / autotools / webkit.m4
index 65f7933..14dd0a5 100644 (file)
@@ -6,11 +6,27 @@ dnl WebKit and JavaScriptCore builds.
 # global states
 m4_define([initialized], [no])
 
 # global states
 m4_define([initialized], [no])
 
-# check for pkg-config
-AC_DEFUN([WEBKIT_INIT],
+AC_DEFUN([INIT_C_CXX_FLAGS],
+[dnl
+# If CXXFLAGS and CFLAGS are unset, default to empty.
+# This is to tell automake not to include '-g' if CXXFLAGS is not set
+# For more info - http://www.gnu.org/software/automake/manual/autoconf.html#C_002b_002b-Compiler
+if test -z "$CXXFLAGS"; then
+   CXXFLAGS=""
+fi
+if test -z "$CFLAGS"; then
+   CFLAGS=""
+fi
+])
+
+AC_DEFUN_ONCE([WEBKIT_INIT],
 [dnl
 dnl check if we have the required packages to have successful checks
 dnl
 [dnl
 dnl check if we have the required packages to have successful checks
 dnl
+# Make sure CXXFLAGS and CFLAGS are set before expanding AC_PROG_CXX to avoid
+# building with '-g -O2' on Release builds.
+AC_REQUIRE([INIT_C_CXX_FLAGS])
+
 # check for -fvisibility=hidden compiler support (GCC >= 4)
 saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fvisibility=hidden -fvisibility-inlines-hidden"
 # check for -fvisibility=hidden compiler support (GCC >= 4)
 saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fvisibility=hidden -fvisibility-inlines-hidden"
@@ -23,6 +39,7 @@ CFLAGS="$saved_CFLAGS"
 AC_SUBST(SYMBOL_VISIBILITY)
 AC_SUBST(SYMBOL_VISIBILITY_INLINES)
 
 AC_SUBST(SYMBOL_VISIBILITY)
 AC_SUBST(SYMBOL_VISIBILITY_INLINES)
 
+# check for pkg-config
 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
 if test "$PKG_CONFIG" = "no"; then
    AC_MSG_ERROR([Cannot find pkg-config, make sure it is installed in your PATH])
 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
 if test "$PKG_CONFIG" = "no"; then
    AC_MSG_ERROR([Cannot find pkg-config, make sure it is installed in your PATH])
@@ -43,19 +60,10 @@ if test -z "$MV"; then
    AC_MSG_ERROR([You need 'mv' to compile WebKit])
 fi
 
    AC_MSG_ERROR([You need 'mv' to compile WebKit])
 fi
 
-# If CXXFLAGS and CFLAGS are unset, default to empty.
-# This is to tell automake not to include '-g' if CXXFLAGS is not set
-# For more info - http://www.gnu.org/software/automake/manual/autoconf.html#C_002b_002b-Compiler
-if test -z "$CXXFLAGS"; then
-   CXXFLAGS=""
-fi
-if test -z "$CFLAGS"; then
-   CFLAGS=""
-fi
-
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_CXX])
 AM_PROG_CC_STDC
 AM_PROG_CC_C_O
 AM_PROG_CC_STDC
 AM_PROG_CC_C_O
-AC_PROG_CXX
 AC_PROG_INSTALL
 AC_SYS_LARGEFILE
 
 AC_PROG_INSTALL
 AC_SYS_LARGEFILE
 
@@ -71,13 +79,13 @@ AC_C_INLINE
 AC_C_VOLATILE
 
 # C/C++ Headers
 AC_C_VOLATILE
 
 # C/C++ Headers
-AC_HEADER_STDC
+AC_REQUIRE([AC_HEADER_STDC])
 AC_HEADER_STDBOOL
 
 m4_define([initialized], [yes])
 ])
 
 AC_HEADER_STDBOOL
 
 m4_define([initialized], [yes])
 ])
 
-AC_DEFUN([WEBKIT_CHECK_DEPENDENCIES],
+AC_DEFUN_ONCE([WEBKIT_CHECK_DEPENDENCIES],
 [dnl
 dnl check for module dependencies
 for module in $1
 [dnl
 dnl check for module dependencies
 for module in $1
@@ -91,11 +99,11 @@ do
 done
 ])
 
 done
 ])
 
-AC_DEFUN([_WEBKIT_CHECK_GLIB],
+AC_DEFUN_ONCE([_WEBKIT_CHECK_GLIB],
 [dnl
 dnl check for glib
 # Version requirements
 [dnl
 dnl check for glib
 # Version requirements
-GLIB_REQUIRED_VERSION=2.0
+GLIB_REQUIRED_VERSION=2.21.3
 GOBJECT_REQUIRED_VERSION=2.0
 GTHREAD_REQUIRED_VERSION=2.0
 
 GOBJECT_REQUIRED_VERSION=2.0
 GTHREAD_REQUIRED_VERSION=2.0
 
@@ -115,7 +123,7 @@ if test -z "$GLIB_GENMARSHAL" || test -z "$GLIB_MKENUMS"; then
 fi
 ])
 
 fi
 ])
 
-AC_DEFUN([_WEBKIT_CHECK_UNICODE],
+AC_DEFUN_ONCE([_WEBKIT_CHECK_UNICODE],
 [dnl
 dnl determine the Unicode backend
 AC_MSG_CHECKING([which Unicode backend to use])
 [dnl
 dnl determine the Unicode backend
 AC_MSG_CHECKING([which Unicode backend to use])
@@ -136,13 +144,16 @@ AC_MSG_RESULT([$with_unicode_backend])
 # with the WTF Unicode backend being based on GLib while text codecs and TextBreakIterator
 # keep the ICU dependency. That's why we temporarily add icu headers and libs for glib config case as well.
 if test "$with_unicode_backend" = "icu" -o "$with_unicode_backend" = "glib"; then
 # with the WTF Unicode backend being based on GLib while text codecs and TextBreakIterator
 # keep the ICU dependency. That's why we temporarily add icu headers and libs for glib config case as well.
 if test "$with_unicode_backend" = "icu" -o "$with_unicode_backend" = "glib"; then
-       if test "$os_darwin" = "yes"; then
-               UNICODE_CFLAGS="-I\$(srcdir)/JavaScriptCore/icu -I\$(srcdir)/WebCore/icu"
+        case "$host" in
+            *-*-darwin*)
+               UNICODE_CFLAGS="-I$srcdir/JavaScriptCore/icu -I$srcdir/WebCore/icu"
                UNICODE_LIBS="-licucore"
                UNICODE_LIBS="-licucore"
-       elif test "$os_win32" = "yes"; then
+                ;;
+            *-*-mingw*)
                UNICODE_CFLAGS=""
                UNICODE_LIBS="-licuin -licuuc"
                UNICODE_CFLAGS=""
                UNICODE_LIBS="-licuin -licuuc"
-       else
+                ;;
+            *)
                AC_PATH_PROG(icu_config, icu-config, no)
                if test "$icu_config" = "no"; then
                        AC_MSG_ERROR([Cannot find icu-config. The ICU library is needed.])
                AC_PATH_PROG(icu_config, icu-config, no)
                if test "$icu_config" = "no"; then
                        AC_MSG_ERROR([Cannot find icu-config. The ICU library is needed.])
@@ -152,8 +163,9 @@ if test "$with_unicode_backend" = "icu" -o "$with_unicode_backend" = "glib"; the
                # necessarily want, like debugging and optimization flags
                # See man (1) icu-config for more info.
                UNICODE_CFLAGS=`$icu_config --cppflags`
                # necessarily want, like debugging and optimization flags
                # See man (1) icu-config for more info.
                UNICODE_CFLAGS=`$icu_config --cppflags`
-               UNICODE_LIBS=`$icu_config --ldflags`
-       fi
+               UNICODE_LIBS=`$icu_config --ldflags-libsonly`
+                ;;
+        esac
 fi
 
 if test "$with_unicode_backend" = "glib"; then
 fi
 
 if test "$with_unicode_backend" = "glib"; then