]> git.saurik.com Git - wxWidgets.git/blobdiff - aclocal.m4
Fix wxGLCanvas ctor prototypes in docs. Closes bug #1237072.
[wxWidgets.git] / aclocal.m4
index 0440201c4c47bdc319d1db9d62299794fe90429f..97430256a5d989f1220e67da6b937a4314cad8b7 100644 (file)
@@ -1,6 +1,6 @@
-# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
 
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # PARTICULAR PURPOSE.
 
 dnl ---------------------------------------------------------------------------
-dnl
-dnl Macros for configure.in for wxWindows by Robert Roebling, Phil Blecker,
-dnl Vadim Zeitlin and Ron Lee
-dnl
-dnl This script is under the wxWindows licence.
-dnl
-dnl Version: $Id$
+dnl Compiler detection macros by David Elliott
 dnl ---------------------------------------------------------------------------
 
+
 dnl ===========================================================================
-dnl macros to detect specialty compiler options
+dnl Macros to detect non-GNU compilers (MetroWerks, XLC)
 dnl ===========================================================================
 
-dnl Figure out if we need to pass -ext o to compiler (MetroWerks)
-AC_DEFUN([AC_WX_METROWERKS_EXTO],
-[AC_CACHE_CHECK([if the _AC_LANG compiler requires -ext o], wx_cv_[]_AC_LANG_ABBREV[]_exto,
-dnl First create an empty conf test
-[AC_LANG_CONFTEST([AC_LANG_PROGRAM()])
-dnl Now remove .o and .c.o or .cc.o
-rm -f conftest.$ac_objext conftest.$ac_ext.o
-dnl Now compile the test
-AS_IF([AC_TRY_EVAL(ac_compile)],
-dnl If the test succeeded look for conftest.c.o or conftest.cc.o
-[for ac_file in `(ls conftest.* 2>/dev/null)`; do
-    case $ac_file in
-        conftest.$ac_ext.o)
-            wx_cv_[]_AC_LANG_ABBREV[]_exto="-ext o"
-            ;;
-        *)
-            ;;
-    esac
-done],
-[AC_MSG_FAILURE([cannot figure out if compiler needs -ext o: cannot compile])
-]) dnl AS_IF
-
-rm -f conftest.$ac_ext.o conftest.$ac_objext conftest.$ac_ext
-]) dnl AC_CACHE_CHECK
+dnl Based on autoconf _AC_LANG_COMPILER_GNU
+AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_MWERKS],
+[AC_CACHE_CHECK([whether we are using the Metrowerks _AC_LANG compiler],
+    [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks],
+    [AC_TRY_COMPILE([],[#ifndef __MWERKS__
+       choke me
+#endif
+],
+        [bakefile_compiler_mwerks=yes],
+        [bakefile_compiler_mwerks=no])
+    bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks=$bakefile_compiler_mwerks
+    ])
+])
 
-if test "x$wx_cv_[]_AC_LANG_ABBREV[]_exto" '!=' "x"; then
-    if test "[]_AC_LANG_ABBREV[]" = "c"; then
-        CFLAGS="$wx_cv_[]_AC_LANG_ABBREV[]_exto $CFLAGS"
-    fi
-    if test "[]_AC_LANG_ABBREV[]" = "cxx"; then
-        CXXFLAGS="$wx_cv_[]_AC_LANG_ABBREV[]_exto $CXXFLAGS"
-    fi
-fi
-]) dnl AC_DEFUN
+dnl Loosely based on autoconf AC_PROG_CC
+dnl TODO: Maybe this should wrap the call to AC_PROG_CC and be used instead.
+AC_DEFUN([AC_BAKEFILE_PROG_MWCC],
+[AC_LANG_PUSH(C)
+_AC_BAKEFILE_LANG_COMPILER_MWERKS
+MWCC=`test $bakefile_cv_c_compiler_mwerks = yes && echo yes`
+AC_LANG_POP(C)
+])
 
+dnl Loosely based on autoconf AC_PROG_CXX
+dnl TODO: Maybe this should wrap the call to AC_PROG_CXX and be used instead.
+AC_DEFUN([AC_BAKEFILE_PROG_MWCXX],
+[AC_LANG_PUSH(C++)
+_AC_BAKEFILE_LANG_COMPILER_MWERKS
+MWCXX=`test $bakefile_cv_cxx_compiler_mwerks = yes && echo yes`
+AC_LANG_POP(C++)
+])
 
 dnl Based on autoconf _AC_LANG_COMPILER_GNU
-AC_DEFUN([_AC_WX_LANG_COMPILER_XLC],
+AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_XLC],
 [AC_CACHE_CHECK([whether we are using the IBM xlC _AC_LANG compiler],
     [wx_cv_[]_AC_LANG_ABBREV[]_compiler_xlc],
     [AC_TRY_COMPILE([],[#ifndef __xlC__
@@ -76,665 +67,131 @@ AC_DEFUN([_AC_WX_LANG_COMPILER_XLC],
 ])
 
 dnl Loosely based on autoconf AC_PROG_CC
-AC_DEFUN([AC_WX_PROG_XLCC],
+AC_DEFUN([AC_BAKEFILE_PROG_XLCC],
 [AC_LANG_PUSH(C)
-_AC_WX_LANG_COMPILER_XLC
-XLCC=`test $wx_compiler_xlc = yes && echo yes`
+_AC_BAKEFILE_LANG_COMPILER_XLC
+XLCC=`test $wx_cv_c_compiler_xlc = yes && echo yes`
 AC_LANG_POP(C)
 ])
 
 dnl Loosely based on autoconf AC_PROG_CXX
-AC_DEFUN([AC_WX_PROG_XLCXX],
+AC_DEFUN([AC_BAKEFILE_PROG_XLCXX],
 [AC_LANG_PUSH(C++)
-_AC_WX_LANG_COMPILER_XLC
-XLCXX=`test $wx_compiler_xlc = yes && echo yes`
+_AC_BAKEFILE_LANG_COMPILER_XLC
+XLCXX=`test $wx_cv_cxx_compiler_xlc = yes && echo yes`
 AC_LANG_POP(C++)
 ])
 
-
-dnl ===========================================================================
-dnl macros to find the a file in the list of include/lib paths
-dnl ===========================================================================
-
-dnl ---------------------------------------------------------------------------
-dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
-dnl to the full name of the file that was found or leaves it empty if not found
-dnl ---------------------------------------------------------------------------
-AC_DEFUN([WX_PATH_FIND_INCLUDES],
+dnl Based on autoconf _AC_LANG_COMPILER_GNU
+dnl _AC_BAKEFILE_LANG_COMPILER(NAME, LANG, SYMBOL, IF-YES, IF-NO)
+AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER],
 [
-ac_find_includes=
-for ac_dir in $1 /usr/include;
-  do
-    if test -f "$ac_dir/$2"; then
-      ac_find_includes=$ac_dir
-      break
+    AC_LANG_PUSH($2)
+    AC_CACHE_CHECK(
+        [whether we are using the $1 $2 compiler],
+        [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3],
+        [AC_TRY_COMPILE(
+            [],
+            [
+             #ifndef $3
+                choke me
+             #endif
+            ],
+            [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=yes],
+            [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=no]
+         )
+        ]
+    )
+    AC_LANG_POP($2)
+    if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3" = "xyes"; then
+        :; $4
+    else
+        :; $5
     fi
-  done
 ])
 
-dnl ---------------------------------------------------------------------------
-dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries
-dnl to the full name of the file that was found or leaves it empty if not found
-dnl ---------------------------------------------------------------------------
-AC_DEFUN([WX_PATH_FIND_LIBRARIES],
+dnl Loosely based on autoconf AC_PROG_CC
+AC_DEFUN([AC_BAKEFILE_PROG_SUNCC],
 [
-ac_find_libraries=
-for ac_dir in $1 /usr/lib;
-  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
-      fi
-    done
-  done
+    _AC_BAKEFILE_LANG_COMPILER(Sun, C, __SUNPRO_C, SUNCC=yes)
 ])
 
-dnl ---------------------------------------------------------------------------
-dnl Path to include, already defined
-dnl ---------------------------------------------------------------------------
-AC_DEFUN([WX_INCLUDE_PATH_EXIST],
+dnl Loosely based on autoconf AC_PROG_CC
+AC_DEFUN([AC_BAKEFILE_PROG_SUNCXX],
 [
-  dnl never add -I/usr/include to the CPPFLAGS
-  if test "x$1" = "x/usr/include"; then
-    ac_path_to_include=""
-  else
-    echo "$2" | grep "\-I$1" > /dev/null
-    result=$?
-    if test $result = 0; then
-      ac_path_to_include=""
-    else
-      ac_path_to_include=" -I$1"
-    fi
-  fi
+    _AC_BAKEFILE_LANG_COMPILER(Sun, C++, __SUNPRO_CC, SUNCXX=yes)
 ])
 
-dnl ---------------------------------------------------------------------------
-dnl Path to link, already defined
-dnl ---------------------------------------------------------------------------
-AC_DEFUN([WX_LINK_PATH_EXIST],
-[
-  echo "$2" | grep "\-L$1" > /dev/null
-  result=$?
-  if test $result = 0; then
-    ac_path_to_link=""
-  else
-    ac_path_to_link=" -L$1"
-  fi
-])
 
 dnl ===========================================================================
-dnl C++ features test
+dnl macros to detect specialty compiler options
 dnl ===========================================================================
 
-dnl ---------------------------------------------------------------------------
-dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
-dnl or only the old <iostream.h> one - it may be generally assumed that if
-dnl <iostream> exists, the other "new" headers (without .h) exist too.
-dnl
-dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false)
-dnl ---------------------------------------------------------------------------
-
-AC_DEFUN([WX_CPP_NEW_HEADERS],
-[
-    AC_LANG_SAVE
-    AC_LANG_CPLUSPLUS
+dnl Figure out if we need to pass -ext o to compiler (MetroWerks)
+AC_DEFUN([AC_BAKEFILE_METROWERKS_EXTO],
+[AC_CACHE_CHECK([if the _AC_LANG compiler requires -ext o], wx_cv_[]_AC_LANG_ABBREV[]_exto,
+dnl First create an empty conf test
+[AC_LANG_CONFTEST([AC_LANG_PROGRAM()])
+dnl Now remove .o and .c.o or .cc.o
+rm -f conftest.$ac_objext conftest.$ac_ext.o
+dnl Now compile the test
+AS_IF([AC_TRY_EVAL(ac_compile)],
+dnl If the test succeeded look for conftest.c.o or conftest.cc.o
+[for ac_file in `(ls conftest.* 2>/dev/null)`; do
+    case $ac_file in
+        conftest.$ac_ext.o)
+            wx_cv_[]_AC_LANG_ABBREV[]_exto="-ext o"
+            ;;
+        *)
+            ;;
+    esac
+done],
+[AC_MSG_FAILURE([cannot figure out if compiler needs -ext o: cannot compile])
+]) dnl AS_IF
 
-    AC_CHECK_HEADERS(iostream)
+rm -f conftest.$ac_ext.o conftest.$ac_objext conftest.$ac_ext
+]) dnl AC_CACHE_CHECK
 
-    if test "$ac_cv_header_iostream" = "yes" ; then
-      ifelse([$1], , :, [$1])
-    else
-      ifelse([$2], , :, [$2])
+if test "x$wx_cv_[]_AC_LANG_ABBREV[]_exto" '!=' "x"; then
+    if test "[]_AC_LANG_ABBREV[]" = "c"; then
+        CFLAGS="$wx_cv_[]_AC_LANG_ABBREV[]_exto $CFLAGS"
+    fi
+    if test "[]_AC_LANG_ABBREV[]" = "cxx"; then
+        CXXFLAGS="$wx_cv_[]_AC_LANG_ABBREV[]_exto $CXXFLAGS"
     fi
-
-    AC_LANG_RESTORE
-])
-
-dnl ---------------------------------------------------------------------------
-dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
-dnl
-dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
-dnl ---------------------------------------------------------------------------
-
-AC_DEFUN([WX_CPP_BOOL],
-[
-  AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
-  [
-    AC_LANG_SAVE
-    AC_LANG_CPLUSPLUS
-
-    AC_TRY_COMPILE(
-      [
-      ],
-      [
-        bool b = true;
-
-        return 0;
-      ],
-      [
-        wx_cv_cpp_bool=yes
-      ],
-      [
-        wx_cv_cpp_bool=no
-      ]
-    )
-
-    AC_LANG_RESTORE
-  ])
-
-  if test "$wx_cv_cpp_bool" = "yes"; then
-    AC_DEFINE(HAVE_BOOL)
-  fi
-])
-
-dnl ---------------------------------------------------------------------------
-dnl WX_CPP_EXPLICIT checks whether the C++ compiler support the explicit
-dnl keyword and defines HAVE_EXPLICIT if this is the case
-dnl ---------------------------------------------------------------------------
-
-AC_DEFUN([WX_CPP_EXPLICIT],
-[
-  AC_CACHE_CHECK([if C++ compiler supports the explicit keyword],
-                 wx_cv_explicit,
-  [
-    AC_LANG_SAVE
-    AC_LANG_CPLUSPLUS
-
-    dnl do the test in 2 steps: first check that the compiler knows about the
-    dnl explicit keyword at all and then verify that it really honours it
-    AC_TRY_COMPILE(
-      [
-        class Foo { public: explicit Foo(int) {} };
-      ],
-      [
-        return 0;
-      ],
-      [
-        AC_TRY_COMPILE(
-            [
-                class Foo { public: explicit Foo(int) {} };
-                static void TakeFoo(const Foo& foo) { }
-            ],
-            [
-                TakeFoo(17);
-                return 0;
-            ],
-            wx_cv_explicit=no,
-            wx_cv_explicit=yes
-        )
-      ],
-      wx_cv_explicit=no
-    )
-
-    AC_LANG_RESTORE
-  ])
-
-  if test "$wx_cv_explicit" = "yes"; then
-    AC_DEFINE(HAVE_EXPLICIT)
-  fi
-])
-
-dnl ---------------------------------------------------------------------------
-dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
-dnl ---------------------------------------------------------------------------
-
-AC_DEFUN([WX_C_BIGENDIAN],
-[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian,
-[ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/param.h>], [
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/param.h>], [
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
-if test $ac_cv_c_bigendian = unknown; then
-AC_TRY_RUN([main () {
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long l;
-    char c[sizeof (long)];
-  } u;
-  u.l = 1;
-  exit (u.c[sizeof (long) - 1] == 1);
-}], [ac_cv_c_bigendian=no], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=unknown])
-fi])
-if test $ac_cv_c_bigendian = unknown; then
-  AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file])
-fi
-if test $ac_cv_c_bigendian = yes; then
-  AC_DEFINE(WORDS_BIGENDIAN)
 fi
-])
-
-dnl ---------------------------------------------------------------------------
-dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
-dnl ---------------------------------------------------------------------------
-
-AC_DEFUN([WX_ARG_CACHE_INIT],
-        [
-          wx_arg_cache_file="configarg.cache"
-          echo "loading argument cache $wx_arg_cache_file"
-          rm -f ${wx_arg_cache_file}.tmp
-          touch ${wx_arg_cache_file}.tmp
-          touch ${wx_arg_cache_file}
-        ])
-
-AC_DEFUN([WX_ARG_CACHE_FLUSH],
-        [
-          echo "saving argument cache $wx_arg_cache_file"
-          mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
-        ])
-
-dnl this macro checks for a three-valued command line --with argument:
-dnl   possible arguments are 'yes', 'no', 'sys', or 'builtin'
-dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
-AC_DEFUN([WX_ARG_SYS_WITH],
-        [
-          AC_MSG_CHECKING([for --with-$1])
-          no_cache=0
-          AC_ARG_WITH($1, [$2],
-                      [
-                        if test "$withval" = yes; then
-                          ac_cv_use_$1='$3=yes'
-                        elif test "$withval" = no; then
-                          ac_cv_use_$1='$3=no'
-                        elif test "$withval" = sys; then
-                          ac_cv_use_$1='$3=sys'
-                        elif test "$withval" = builtin; then
-                          ac_cv_use_$1='$3=builtin'
-                        else
-                          AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
-                        fi
-                      ],
-                      [
-                        LINE=`grep "$3" ${wx_arg_cache_file}`
-                        if test "x$LINE" != x ; then
-                          eval "DEFAULT_$LINE"
-                        else
-                          no_cache=1
-                        fi
-
-                        ac_cv_use_$1='$3='$DEFAULT_$3
-                      ])
-
-          eval "$ac_cv_use_$1"
-          if test "$no_cache" != 1; then
-            echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
-          fi
-
-          if test "$$3" = yes; then
-            AC_MSG_RESULT(yes)
-          elif test "$$3" = no; then
-            AC_MSG_RESULT(no)
-          elif test "$$3" = sys; then
-            AC_MSG_RESULT([system version])
-          elif test "$$3" = builtin; then
-            AC_MSG_RESULT([builtin version])
-          else
-            AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
-          fi
-        ])
-
-dnl this macro checks for a command line argument and caches the result
-dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
-AC_DEFUN([WX_ARG_WITH],
-        [
-          AC_MSG_CHECKING([for --with-$1])
-          no_cache=0
-          AC_ARG_WITH($1, [$2],
-                      [
-                        if test "$withval" = yes; then
-                          ac_cv_use_$1='$3=yes'
-                        else
-                          ac_cv_use_$1='$3=no'
-                        fi
-                      ],
-                      [
-                        LINE=`grep "$3" ${wx_arg_cache_file}`
-                        if test "x$LINE" != x ; then
-                          eval "DEFAULT_$LINE"
-                        else
-                          no_cache=1
-                        fi
-
-                        ac_cv_use_$1='$3='$DEFAULT_$3
-                      ])
-
-          eval "$ac_cv_use_$1"
-          if test "$no_cache" != 1; then
-            echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
-          fi
-
-          if test "$$3" = yes; then
-            AC_MSG_RESULT(yes)
-          else
-            AC_MSG_RESULT(no)
-          fi
-        ])
-
-dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
-dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name, enablestring)
-dnl
-dnl enablestring is a hack and allows to show "checking for --disable-foo"
-dnl message when running configure instead of the default "checking for
-dnl --enable-foo" one whih is useful for the options enabled by default
-AC_DEFUN([WX_ARG_ENABLE],
-        [
-         enablestring=$4
-          AC_MSG_CHECKING([for --${enablestring:-enable}-$1])
-          no_cache=0
-          AC_ARG_ENABLE($1, [$2],
-                        [
-                          if test "$enableval" = yes; then
-                            ac_cv_use_$1='$3=yes'
-                          else
-                            ac_cv_use_$1='$3=no'
-                          fi
-                        ],
-                        [
-                          LINE=`grep "$3" ${wx_arg_cache_file}`
-                          if test "x$LINE" != x ; then
-                            eval "DEFAULT_$LINE"
-                          else
-                            no_cache=1
-                          fi
-
-                          ac_cv_use_$1='$3='$DEFAULT_$3
-                        ])
-
-          eval "$ac_cv_use_$1"
-          if test "$no_cache" != 1; then
-            echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
-          fi
-
-          if test "$$3" = yes; then
-            AC_MSG_RESULT(yes)
-          else
-            AC_MSG_RESULT(no)
-          fi
-        ])
-
-
-dnl ===========================================================================
-dnl Linker features test
-dnl ===========================================================================
-
-dnl ---------------------------------------------------------------------------
-dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
-dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
-dnl version script file named versionfile
-dnl
-dnl call WX_VERSIONED_SYMBOLS(versionfile)
-dnl ---------------------------------------------------------------------------
-AC_DEFUN([WX_VERSIONED_SYMBOLS],
-[
-  found_versioning=no
-
-  dnl FIXME - doesn't work, Solaris linker doesn't accept wildcards
-  dnl         in the script.
-  dnl dnl Check for known non-gcc cases:
-  dnl case "${host}" in
-  dnl   *-*-solaris2* )
-  dnl     if test "x$GCC" != "xyes" ; then
-  dnl         LDFLAGS_VERSIONING="-M $1"
-  dnl         found_versioning=yes
-  dnl     fi
-  dnl   ;;
-  dnl esac
-  
-  dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
-  if test $found_versioning = no ; then
-      AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
-      [
-        echo "VER_1 { *; };" >conftest.sym
-        echo "int main() { return 0; }" >conftest.cpp
-  
-        if AC_TRY_COMMAND([
-                $CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
-                -Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
-          if test -s conftest.stderr ; then
-              wx_cv_version_script=no
-          else
-              wx_cv_version_script=yes
-          fi
-        else
-          wx_cv_version_script=no
-        fi
-        rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
-      ])
-      if test $wx_cv_version_script = yes ; then
-        LDFLAGS_VERSIONING="-Wl,--version-script,$1"
-      fi
-  fi
-])
+]) dnl AC_DEFUN
 
 
 dnl ===========================================================================
-dnl "3rd party" macros included here because they are not widely available
+dnl Macros to do all of the compiler detections as one macro
 dnl ===========================================================================
-
-dnl ---------------------------------------------------------------------------
-dnl test for availability of iconv()
-dnl ---------------------------------------------------------------------------
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV],
+AC_DEFUN([AC_BAKEFILE_PROG_CC],
 [
-  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
-  dnl those with the standalone portable GNU libiconv installed).
-
-  AC_ARG_WITH([libiconv-prefix],
-[  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib], [
-    for dir in `echo "$withval" | tr : ' '`; do
-      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
-      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
-    done
-   ])
-
-  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-      [iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);],
-      am_cv_func_iconv=yes)
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS -liconv"
-      AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-        [iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);],
-        am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes)
-      LIBS="$am_save_LIBS"
+    AC_PROG_CC
+    AC_BAKEFILE_METROWERKS_EXTO
+    dnl By the time we find out that we need -ext o some tests have failed.
+    if test "x$wx_cv_c_exto" '!=' "x"; then
+        unset ac_cv_prog_cc_g
+        _AC_PROG_CC_G
     fi
-  ])
-  if test "$am_cv_func_iconv" = yes; then
-    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
-    AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
-      AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-        ],
-        [],
-        wx_cv_func_iconv_const="no",
-        wx_cv_func_iconv_const="yes"
-      )
-    )
-
-    iconv_const=
-    if test "x$wx_cv_func_iconv_const" = "xyes"; then
-        iconv_const="const"
-    fi
-
-    AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
-      [Define as const if the declaration of iconv() needs const.])
-  fi
-  LIBICONV=
-  if test "$am_cv_lib_iconv" = yes; then
-    LIBICONV="-liconv"
-  fi
-  AC_SUBST(LIBICONV)
-])
-
-dnl ---------------------------------------------------------------------------
-dnl AC_SYS_LARGEFILE (partly based on the code from autoconf 2.5x)
-dnl ---------------------------------------------------------------------------
-
-dnl WX_SYS_LARGEFILE_TEST
-dnl
-dnl NB: original autoconf test was checking if compiler supported 6 bit off_t
-dnl     arithmetic properly but this failed miserably with gcc under Linux
-dnl     whereas the system still supports 64 bit files, so now simply check
-dnl     that off_t is big enough
-define(WX_SYS_LARGEFILE_TEST,
-[typedef struct {
-    unsigned int field: sizeof(off_t) == 8;
-} wxlf;
+    AC_BAKEFILE_PROG_MWCC
+    AC_BAKEFILE_PROG_XLCC
+    AC_BAKEFILE_PROG_SUNCC
 ])
 
-
-dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR)
-define(WX_SYS_LARGEFILE_MACRO_VALUE,
+AC_DEFUN([AC_BAKEFILE_PROG_CXX],
 [
-    AC_CACHE_CHECK([for $1 value needed for large files], [$3],
-        [
-          AC_TRY_COMPILE([#define $1 $2
-                          #include <sys/types.h>],
-                         WX_SYS_LARGEFILE_TEST,
-                         [$3=$2],
-                         [$3=no])
-        ]
-    )
-
-    if test "$$3" != no; then
-        wx_largefile=yes
-        AC_DEFINE_UNQUOTED([$1], [$$3])
-    fi
-])
-
-
-dnl AC_SYS_LARGEFILE
-dnl ----------------
-dnl By default, many hosts won't let programs access large files;
-dnl one must use special compiler options to get large-file access to work.
-dnl For more details about this brain damage please see:
-dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
-AC_DEFUN([AC_SYS_LARGEFILE],
-[AC_ARG_ENABLE(largefile,
-               [  --disable-largefile     omit support for large files])
-if test "$enable_largefile" != no; then
-    dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ...
-    dnl _LARGE_FILES -- for AIX
-    wx_largefile=no
-    WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
-    if test "x$wx_largefile" != "xyes"; then
-        WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
+    AC_PROG_CXX
+    AC_BAKEFILE_METROWERKS_EXTO
+    dnl By the time we find out that we need -ext o some tests have failed.
+    if test "x$wx_cv_cxx_exto" '!=' "x"; then
+        unset ac_cv_prog_cxx_g
+        _AC_PROG_CXX_G
     fi
-
-    AC_MSG_CHECKING(if large file support is available)
-    if test "x$wx_largefile" = "xyes"; then
-        AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
-    fi
-    AC_MSG_RESULT($wx_largefile)
-fi
-])
-
-
-dnl Available from the GNU Autoconf Macro Archive at:
-dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_const_cast.html
-dnl
-AC_DEFUN([AC_CXX_CONST_CAST],
-[AC_CACHE_CHECK(whether the compiler supports const_cast<>,
-ac_cv_cxx_const_cast,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE(,[int x = 0;const int& y = x;int& z = const_cast<int&>(y);return z;],
- ac_cv_cxx_const_cast=yes, ac_cv_cxx_const_cast=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_const_cast" = yes; then
-  AC_DEFINE(HAVE_CONST_CAST,,[define if the compiler supports const_cast<>])
-fi
-])
-
-dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_reinterpret_cast.html
-AC_DEFUN([AC_CXX_REINTERPRET_CAST],
-[AC_CACHE_CHECK(whether the compiler supports reinterpret_cast<>,
-ac_cv_cxx_reinterpret_cast,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <typeinfo>
-class Base { public : Base () {} virtual void f () = 0;};
-class Derived : public Base { public : Derived () {} virtual void f () {} };
-class Unrelated { public : Unrelated () {} };
-int g (Unrelated&) { return 0; }],[
-Derived d;Base& b=d;Unrelated& e=reinterpret_cast<Unrelated&>(b);return g(e);],
- ac_cv_cxx_reinterpret_cast=yes, ac_cv_cxx_reinterpret_cast=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_reinterpret_cast" = yes; then
-  AC_DEFINE(HAVE_REINTERPRET_CAST,,
-            [define if the compiler supports reinterpret_cast<>])
-fi
-])
-
-dnl and http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_static_cast.html
-AC_DEFUN([AC_CXX_STATIC_CAST],
-[AC_CACHE_CHECK(whether the compiler supports static_cast<>,
-ac_cv_cxx_static_cast,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <typeinfo>
-class Base { public : Base () {} virtual void f () = 0; };
-class Derived : public Base { public : Derived () {} virtual void f () {} };
-int g (Derived&) { return 0; }],[
-Derived d; Base& b = d; Derived& s = static_cast<Derived&> (b); return g (s);],
- ac_cv_cxx_static_cast=yes, ac_cv_cxx_static_cast=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_static_cast" = yes; then
-  AC_DEFINE(HAVE_STATIC_CAST,, [define if the compiler supports static_cast<>])
-fi
-])
-
-dnl http://autoconf-archive.cryp.to/ac_cxx_dynamic_cast.html
-AC_DEFUN([AC_CXX_DYNAMIC_CAST],
-[AC_CACHE_CHECK(whether the compiler supports dynamic_cast<>,
-ac_cv_cxx_dynamic_cast,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <typeinfo>
-class Base { public : Base () {} virtual void f () = 0;};
-class Derived : public Base { public : Derived () {} virtual void f () {} };],[
-Derived d; Base& b=d; return dynamic_cast<Derived*>(&b) ? 0 : 1;],
- ac_cv_cxx_dynamic_cast=yes, ac_cv_cxx_dynamic_cast=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_dynamic_cast" = yes; then
-  AC_DEFINE(HAVE_DYNAMIC_CAST,,[define if the compiler supports dynamic_cast<>])
-fi
+    AC_BAKEFILE_PROG_MWCXX
+    AC_BAKEFILE_PROG_XLCXX
+    AC_BAKEFILE_PROG_SUNCXX
 ])
 
 
@@ -745,37 +202,7 @@ dnl ---------------------------------------------------------------------------
 dnl Lots of compiler & linker detection code contained here was taken from
 dnl wxWindows configure.in script (see http://www.wxwindows.org)
 
-dnl Based on autoconf _AC_LANG_COMPILER_GNU
-AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_MWERKS],
-[AC_CACHE_CHECK([whether we are using the Metrowerks _AC_LANG compiler],
-    [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks],
-    [AC_TRY_COMPILE([],[#ifndef __MWERKS__
-       choke me
-#endif
-],
-        [bakefile_compiler_mwerks=yes],
-        [bakefile_compiler_mwerks=no])
-    bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks=$bakefile_compiler_mwerks
-    ])
-])
 
-dnl Loosely based on autoconf AC_PROG_CC
-dnl TODO: Maybe this should wrap the call to AC_PROG_CC and be used instead.
-AC_DEFUN([AC_BAKEFILE_PROG_MWCC],
-[AC_LANG_PUSH(C)
-_AC_BAKEFILE_LANG_COMPILER_MWERKS
-MWCC=`test $bakefile_compiler_mwerks = yes && echo yes`
-AC_LANG_POP(C)
-])
-
-dnl Loosely based on autoconf AC_PROG_CXX
-dnl TODO: Maybe this should wrap the call to AC_PROG_CXX and be used instead.
-AC_DEFUN([AC_BAKEFILE_PROG_MWCXX],
-[AC_LANG_PUSH(C++)
-_AC_BAKEFILE_LANG_COMPILER_MWERKS
-MWCXX=`test $bakefile_compiler_mwerks = yes && echo yes`
-AC_LANG_POP(C++)
-])
 
 dnl ---------------------------------------------------------------------------
 dnl AC_BAKEFILE_GNUMAKE
@@ -823,7 +250,7 @@ AC_DEFUN([AC_BAKEFILE_PLATFORM],
 
     if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then 
         case "${BAKEFILE_HOST}" in
-            *-*-cygwin* | *-*-mingw32* )
+            *-*-mingw32* )
                 PLATFORM_WIN32=1
             ;;
             *-pc-msdosdjgpp )
@@ -832,7 +259,7 @@ AC_DEFUN([AC_BAKEFILE_PLATFORM],
             *-pc-os2_emx | *-pc-os2-emx )
                 PLATFORM_OS2=1
             ;;
-            powerpc-*-darwin* )
+            *-*-darwin* )
                 PLATFORM_MAC=1
                 PLATFORM_MACOSX=1
             ;; 
@@ -901,8 +328,14 @@ AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS],
       *-*-darwin* )
         dnl For Unix to MacOS X porting instructions, see:
         dnl http://fink.sourceforge.net/doc/porting/porting.html
-        CFLAGS="$CFLAGS -fno-common"
-        CXXFLAGS="$CXXFLAGS -fno-common"
+        if test "x$GCC" = "xyes"; then
+            CFLAGS="$CFLAGS -fno-common"
+            CXXFLAGS="$CXXFLAGS -fno-common"
+        fi
+        if test "x$XLCC" = "xyes"; then
+            CFLAGS="$CFLAGS -qnocommon"
+            CXXFLAGS="$CXXFLAGS -qnocommon"
+        fi
         ;;
 
       *-pc-os2_emx | *-pc-os2-emx )
@@ -941,6 +374,7 @@ AC_DEFUN([AC_BAKEFILE_SUFFIXES],
     DLLPREFIX="lib"
     DLLPREFIX_MODULE=""
     DLLIMP_SUFFIX=""
+    dlldir="$libdir"
     
     case "${BAKEFILE_HOST}" in
         *-hp-hpux* )
@@ -956,16 +390,26 @@ AC_DEFUN([AC_BAKEFILE_SUFFIXES],
             SO_SUFFIX="a"
             SO_SUFFIX_MODULE="a"
         ;;
-        *-*-cygwin* | *-*-mingw32* )
+        *-*-cygwin* )
+            SO_SUFFIX="dll"
+            SO_SUFFIX_MODULE="dll"
+            DLLIMP_SUFFIX="dll.a"
+            EXEEXT=".exe"
+            DLLPREFIX="cyg"
+            dlldir="$bindir"
+        ;;
+        *-*-mingw32* )
             SO_SUFFIX="dll"
             SO_SUFFIX_MODULE="dll"
             DLLIMP_SUFFIX="dll.a"
             EXEEXT=".exe"
             DLLPREFIX=""
+            dlldir="$bindir"
         ;;
         *-pc-msdosdjgpp )
             EXEEXT=".exe"
             DLLPREFIX=""
+            dlldir="$bindir"
         ;;
         *-pc-os2_emx | *-pc-os2-emx )
             SO_SUFFIX="dll"
@@ -975,8 +419,9 @@ AC_DEFUN([AC_BAKEFILE_SUFFIXES],
             DLLPREFIX=""
             LIBPREFIX=""
             LIBEXT=".$OS2_LIBEXT"
+            dlldir="$bindir"
         ;;
-        powerpc-*-darwin* )
+        *-*-darwin* )
             SO_SUFFIX="dylib"
             SO_SUFFIX_MODULE="bundle"
         ;;
@@ -994,6 +439,7 @@ AC_DEFUN([AC_BAKEFILE_SUFFIXES],
     AC_SUBST(LIBEXT)
     AC_SUBST(DLLPREFIX)
     AC_SUBST(DLLPREFIX_MODULE)
+    AC_SUBST(dlldir)
 ])
 
 
@@ -1016,6 +462,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
     dnl Defaults for GCC and ELF .so shared libs:
     SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o"
     SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o"
+    WINDOWS_IMPLIB=0
 
     case "${BAKEFILE_HOST}" in
       *-hp-hpux* )
@@ -1101,7 +548,12 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
             SHARED_LD_MODULE_CXX="\${CXX} -bundle -single_module -headerpad_max_install_names -o"
         fi
 
-        PIC_FLAG="-dynamic -fPIC"
+        if test "x$GCC" == "xyes"; then
+            PIC_FLAG="-dynamic -fPIC"
+        fi
+        if test "x$XLCC" = "xyes"; then
+            PIC_FLAG="-dynamic -DPIC"
+        fi
       ;;
 
       *-*-aix* )
@@ -1135,6 +587,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
         PIC_FLAG=""
         SHARED_LD_CC="\$(CC) -shared -o"
         SHARED_LD_CXX="\$(CXX) -shared -o"
+        WINDOWS_IMPLIB=1
       ;;
 
       *-pc-os2_emx | *-pc-os2-emx )
@@ -1150,7 +603,8 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
       *-*-sunos4* | \
       *-*-osf* | \
       *-*-dgux5* | \
-      *-*-sysv5* )
+      *-*-sysv5* | \
+      *-pc-msdosdjgpp )
         dnl defaults are ok
       ;;
 
@@ -1174,6 +628,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
     AC_SUBST(SHARED_LD_MODULE_CC)
     AC_SUBST(SHARED_LD_MODULE_CXX)
     AC_SUBST(PIC_FLAG)
+    AC_SUBST(WINDOWS_IMPLIB)
 ])
 
 
@@ -1188,6 +643,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
     USE_SOVERSION=0
     USE_SOVERLINUX=0
     USE_SOVERSOLARIS=0
+    USE_SOVERCYGWIN=0
     USE_SOSYMLINKS=0
     USE_MACVERSION=0
     SONAME_FLAG=
@@ -1211,12 +667,18 @@ AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
         USE_MACVERSION=1
         USE_SOVERSION=1
         USE_SOSYMLINKS=1
-      ;;      
+      ;;
+
+      *-*-cygwin* )
+        USE_SOVERSION=1
+        USE_SOVERCYGWIN=1
+      ;;
     esac
 
     AC_SUBST(USE_SOVERSION)
     AC_SUBST(USE_SOVERLINUX)
     AC_SUBST(USE_SOVERSOLARIS)
+    AC_SUBST(USE_SOVERCYGWIN)
     AC_SUBST(USE_MACVERSION)
     AC_SUBST(USE_SOSYMLINKS)
     AC_SUBST(SONAME_FLAG)
@@ -1238,7 +700,7 @@ AC_DEFUN([AC_BAKEFILE_DEPS],
         DEPSMODE=gcc
         DEPS_TRACKING=1
         case "${BAKEFILE_HOST}" in
-            powerpc-*-darwin* )
+            *-*-darwin* )
                 dnl -cpp-precomp (the default) conflicts with -MMD option
                 dnl used by bk-deps (see also http://developer.apple.com/documentation/Darwin/Conceptual/PortingUnix/compiling/chapter_4_section_3.html)
                 DEPSFLAG_GCC="-no-cpp-precomp -MMD"
@@ -1253,6 +715,11 @@ AC_DEFUN([AC_BAKEFILE_DEPS],
         DEPS_TRACKING=1
         DEPSFLAG_MWCC="-MM"
         AC_MSG_RESULT([mwcc])
+    elif test "x$SUNCC" = "xyes"; then
+        DEPSMODE=suncc
+        DEPS_TRACKING=1
+        DEPSFLAG_SUNCC="-xM1"
+        AC_MSG_RESULT([suncc])
     else
         AC_MSG_RESULT([none])
     fi
@@ -1430,11 +897,15 @@ AC_DEFUN([AC_BAKEFILE],
     AC_BAKEFILE_DEPS
     AC_BAKEFILE_RES_COMPILERS
 
-    BAKEFILE_BAKEFILE_M4_VERSION="0.1.7"
+    BAKEFILE_BAKEFILE_M4_VERSION="0.1.9"
    
     dnl includes autoconf_inc.m4:
     $1
     
+    if test "$BAKEFILE_AUTOCONF_INC_M4_VERSION" = "" ; then
+        AC_MSG_ERROR([No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.in wasn't updated (see the documentation)?])
+    fi
+    
     if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then
         AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.])
     fi
@@ -1947,6 +1418,7 @@ DEPSMODE=${DEPSMODE}
 DEPSDIR=.deps
 DEPSFLAG_GCC="${DEPSFLAG_GCC}"
 DEPSFLAG_MWCC="${DEPSFLAG_MWCC}"
+DEPSFLAG_SUNCC="${DEPSFLAG_SUNCC}"
 
 mkdir -p ${D}DEPSDIR
 
@@ -2009,6 +1481,28 @@ elif test ${D}DEPSMODE = mwcc ; then
     done
     ${D}* ${D}DEPSFLAG_MWCC >${D}{DEPSDIR}/${D}{objfile}.d
     exit 0
+elif test ${D}DEPSMODE = suncc; then
+    ${D}* || exit
+    # Run compiler again with deps flag and redirect into the dep file.
+    # It doesn't work if the '-o FILE' option is used, but without it the
+    # dependency file will contain the wrong name for the object. So it is
+    # removed from the command line, and the dep file is fixed with sed.
+    cmd=""
+    while test ${D}# -gt 0; do
+        case "${D}1" in
+            -o )
+                shift
+                objfile=${D}1
+            ;;
+            * )
+                eval arg${D}#=\\${D}1
+                cmd="${D}cmd \\${D}arg${D}#"
+            ;;
+        esac
+        shift
+    done
+    eval "${D}cmd ${D}DEPSFLAG_SUNCC" | sed "s|.*:|${D}objfile:|" >${D}{DEPSDIR}/${D}{objfile}.d
+    exit 0
 else
     ${D}*
     exit ${D}?
@@ -2037,6 +1531,7 @@ verbose=0
 args=""
 objects=""
 linking_flag="-dynamiclib"
+ldargs="-r -keep_private_externs -nostdlib"
 
 while test ${D}# -gt 0; do
     case ${D}1 in
@@ -2050,6 +1545,11 @@ while test ${D}# -gt 0; do
         args="${D}{args} ${D}1 ${D}2"
         shift
         ;;
+       
+       -s|-Wl,*)
+        # collect these load args
+        ldargs="${D}{ldargs} ${D}1"
+        ;;
 
        -l*|-L*|-flat_namespace|-headerpad_max_install_names)
         # collect these options
@@ -2079,28 +1579,27 @@ while test ${D}# -gt 0; do
     shift
 done
 
+status=0
+
 #
 # Link one module containing all the others
 #
 if test ${D}{verbose} = 1; then
-    echo "c++ -r -keep_private_externs -nostdlib ${D}{objects} -o master.${D}${D}.o"
+    echo "c++ ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o"
 fi
-c++ -r -keep_private_externs -nostdlib ${D}{objects} -o master.${D}${D}.o
+c++ ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o
 status=${D}?
-if test ${D}{status} != 0; then
-    exit ${D}{status}
-fi
 
 #
-# Link the shared library from the single module created
+# Link the shared library from the single module created, but only if the
+# previous command didn't fail:
 #
-if test ${D}{verbose} = 1; then
-    echo "cc ${D}{linking_flag} master.${D}${D}.o ${D}{args}"
-fi
-c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}
-status=${D}?
-if test ${D}{status} != 0; then
-    exit ${D}{status}
+if test ${D}{status} = 0; then
+    if test ${D}{verbose} = 1; then
+        echo "c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}"
+    fi
+    c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}
+    status=${D}?
 fi
 
 #
@@ -2108,7 +1607,7 @@ fi
 #
 rm -f master.${D}${D}.o
 
-exit 0
+exit ${D}status
 EOF
 dnl ===================== shared-ld-sh ends here =====================
 ])
@@ -2165,6 +1664,87 @@ EOF
 dnl ===================== bk-make-pch ends here =====================
 ])
 
+dnl
+dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl
+AC_DEFUN(AM_PATH_CPPUNIT,
+[
+
+AC_ARG_WITH(cppunit-prefix,[  --with-cppunit-prefix=PFX   Prefix where CppUnit is installed (optional)],
+            cppunit_config_prefix="$withval", cppunit_config_prefix="")
+AC_ARG_WITH(cppunit-exec-prefix,[  --with-cppunit-exec-prefix=PFX  Exec prefix where CppUnit is installed (optional)],
+            cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
+
+  if test x$cppunit_config_exec_prefix != x ; then
+     cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
+     if test x${CPPUNIT_CONFIG+set} != xset ; then
+        CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
+     fi
+  fi
+  if test x$cppunit_config_prefix != x ; then
+     cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
+     if test x${CPPUNIT_CONFIG+set} != xset ; then
+        CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
+     fi
+  fi
+
+  AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
+  cppunit_version_min=$1
+
+  AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
+  no_cppunit=""
+  if test "$CPPUNIT_CONFIG" = "no" ; then
+    no_cppunit=yes
+  else
+    CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
+    CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
+    cppunit_version=`$CPPUNIT_CONFIG --version`
+
+    cppunit_major_version=`echo $cppunit_version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    cppunit_minor_version=`echo $cppunit_version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    cppunit_micro_version=`echo $cppunit_version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+    cppunit_major_min=`echo $cppunit_version_min | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    cppunit_minor_min=`echo $cppunit_version_min | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    cppunit_micro_min=`echo $cppunit_version_min | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+    cppunit_version_proper=`expr \
+        $cppunit_major_version \> $cppunit_major_min \| \
+        $cppunit_major_version \= $cppunit_major_min \& \
+        $cppunit_minor_version \> $cppunit_minor_min \| \
+        $cppunit_major_version \= $cppunit_major_min \& \
+        $cppunit_minor_version \= $cppunit_minor_min \& \
+        $cppunit_micro_version \>= $cppunit_micro_min `
+
+    if test "$cppunit_version_proper" = "1" ; then
+      AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
+    else
+      AC_MSG_RESULT(no)
+      no_cppunit=yes
+    fi
+  fi
+
+  if test "x$no_cppunit" = x ; then
+     ifelse([$2], , :, [$2])     
+  else
+     CPPUNIT_CFLAGS=""
+     CPPUNIT_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+
+  AC_SUBST(CPPUNIT_CFLAGS)
+  AC_SUBST(CPPUNIT_LIBS)
+])
+
+
+
+
 # Configure paths for GTK+
 # Owen Taylor     1997-2001
 
@@ -2796,108 +2376,4 @@ int main(int argc, char *argv[])
   rm -f conf.sdltest
 ])
 
-dnl Perform a check for a GStreamer element using gst-inspect
-dnl Thomas Vander Stichele <thomas at apestaart dot org>
-dnl Last modification: 25/01/2005
-
-dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
-
-AC_DEFUN([AM_GST_ELEMENT_CHECK],
-[
-  if test "x$GST_INSPECT" == "x"; then
-    AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, [])
-  fi
-
-  if test "x$GST_INSPECT" != "x"; then
-    AC_MSG_CHECKING(GStreamer element $1)
-    if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
-      AC_MSG_RESULT(found.)
-      $2
-    else
-      AC_MSG_RESULT(not found.)
-      $3
-    fi
-  fi
-])
-
-dnl
-dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-dnl
-AC_DEFUN(AM_PATH_CPPUNIT,
-[
-
-AC_ARG_WITH(cppunit-prefix,[  --with-cppunit-prefix=PFX   Prefix where CppUnit is installed (optional)],
-            cppunit_config_prefix="$withval", cppunit_config_prefix="")
-AC_ARG_WITH(cppunit-exec-prefix,[  --with-cppunit-exec-prefix=PFX  Exec prefix where CppUnit is installed (optional)],
-            cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
-
-  if test x$cppunit_config_exec_prefix != x ; then
-     cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
-     if test x${CPPUNIT_CONFIG+set} != xset ; then
-        CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
-     fi
-  fi
-  if test x$cppunit_config_prefix != x ; then
-     cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
-     if test x${CPPUNIT_CONFIG+set} != xset ; then
-        CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
-     fi
-  fi
-
-  AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
-  cppunit_version_min=$1
-
-  AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
-  no_cppunit=""
-  if test "$CPPUNIT_CONFIG" = "no" ; then
-    no_cppunit=yes
-  else
-    CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
-    CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
-    cppunit_version=`$CPPUNIT_CONFIG --version`
-
-    cppunit_major_version=`echo $cppunit_version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    cppunit_minor_version=`echo $cppunit_version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    cppunit_micro_version=`echo $cppunit_version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-
-    cppunit_major_min=`echo $cppunit_version_min | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    cppunit_minor_min=`echo $cppunit_version_min | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    cppunit_micro_min=`echo $cppunit_version_min | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-
-    cppunit_version_proper=`expr \
-        $cppunit_major_version \> $cppunit_major_min \| \
-        $cppunit_major_version \= $cppunit_major_min \& \
-        $cppunit_minor_version \> $cppunit_minor_min \| \
-        $cppunit_major_version \= $cppunit_major_min \& \
-        $cppunit_minor_version \= $cppunit_minor_min \& \
-        $cppunit_micro_version \>= $cppunit_micro_min `
-
-    if test "$cppunit_version_proper" = "1" ; then
-      AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
-    else
-      AC_MSG_RESULT(no)
-      no_cppunit=yes
-    fi
-  fi
-
-  if test "x$no_cppunit" = x ; then
-     ifelse([$2], , :, [$2])     
-  else
-     CPPUNIT_CFLAGS=""
-     CPPUNIT_LIBS=""
-     ifelse([$3], , :, [$3])
-  fi
-
-  AC_SUBST(CPPUNIT_CFLAGS)
-  AC_SUBST(CPPUNIT_LIBS)
-])
-
-
-
-
+m4_include([acinclude.m4])