1 # aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
3 # Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
4 # Free Software Foundation, Inc.
5 # This file is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14 dnl ---------------------------------------------------------------------------
16 dnl Macros for configure.in for wxWindows by Robert Roebling, Phil Blecker,
17 dnl Vadim Zeitlin and Ron Lee
19 dnl This script is under the wxWindows licence.
22 dnl ---------------------------------------------------------------------------
24 dnl ===========================================================================
25 dnl macros to find the a file in the list of include/lib paths
26 dnl ===========================================================================
28 dnl ---------------------------------------------------------------------------
29 dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
30 dnl to the full name of the file that was found or leaves it empty if not found
31 dnl ---------------------------------------------------------------------------
32 AC_DEFUN([WX_PATH_FIND_INCLUDES],
35 for ac_dir in $1 /usr/include;
37 if test -f "$ac_dir/$2"; then
38 ac_find_includes=$ac_dir
44 dnl ---------------------------------------------------------------------------
45 dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries
46 dnl to the full name of the file that was found or leaves it empty if not found
47 dnl ---------------------------------------------------------------------------
48 AC_DEFUN([WX_PATH_FIND_LIBRARIES],
51 for ac_dir in $1 /usr/lib;
53 for ac_extension in a so sl dylib; do
54 if test -f "$ac_dir/lib$2.$ac_extension"; then
55 ac_find_libraries=$ac_dir
62 dnl ---------------------------------------------------------------------------
63 dnl Path to include, already defined
64 dnl ---------------------------------------------------------------------------
65 AC_DEFUN([WX_INCLUDE_PATH_EXIST],
67 dnl never add -I/usr/include to the CPPFLAGS
68 if test "x$1" = "x/usr/include"; then
71 echo "$2" | grep "\-I$1" > /dev/null
73 if test $result = 0; then
76 ac_path_to_include=" -I$1"
81 dnl ---------------------------------------------------------------------------
82 dnl Path to link, already defined
83 dnl ---------------------------------------------------------------------------
84 AC_DEFUN([WX_LINK_PATH_EXIST],
86 echo "$2" | grep "\-L$1" > /dev/null
88 if test $result = 0; then
91 ac_path_to_link=" -L$1"
95 dnl ===========================================================================
97 dnl ===========================================================================
99 dnl ---------------------------------------------------------------------------
100 dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
101 dnl or only the old <iostream.h> one - it may be generally assumed that if
102 dnl <iostream> exists, the other "new" headers (without .h) exist too.
104 dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false)
105 dnl ---------------------------------------------------------------------------
107 AC_DEFUN([WX_CPP_NEW_HEADERS],
112 AC_CHECK_HEADERS(iostream)
114 if test "$ac_cv_header_iostream" = "yes" ; then
115 ifelse([$1], , :, [$1])
117 ifelse([$2], , :, [$2])
123 dnl ---------------------------------------------------------------------------
124 dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
126 dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
127 dnl ---------------------------------------------------------------------------
129 AC_DEFUN([WX_CPP_BOOL],
131 AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
155 if test "$wx_cv_cpp_bool" = "yes"; then
160 dnl ---------------------------------------------------------------------------
161 dnl WX_CPP_EXPLICIT checks whether the C++ compiler support the explicit
162 dnl keyword and defines HAVE_EXPLICIT if this is the case
163 dnl ---------------------------------------------------------------------------
165 AC_DEFUN([WX_CPP_EXPLICIT],
167 AC_CACHE_CHECK([if C++ compiler supports the explicit keyword],
173 dnl do the test in 2 steps: first check that the compiler knows about the
174 dnl explicit keyword at all and then verify that it really honours it
177 class Foo { public: explicit Foo(int) {} };
185 class Foo { public: explicit Foo(int) {} };
186 static void TakeFoo(const Foo& foo) { }
202 if test "$wx_cv_explicit" = "yes"; then
203 AC_DEFINE(HAVE_EXPLICIT)
207 dnl ---------------------------------------------------------------------------
208 dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
209 dnl ---------------------------------------------------------------------------
211 AC_DEFUN([WX_C_BIGENDIAN],
212 [AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian,
213 [ac_cv_c_bigendian=unknown
214 # See if sys/param.h defines the BYTE_ORDER macro.
215 AC_TRY_COMPILE([#include <sys/types.h>
216 #include <sys/param.h>], [
217 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
219 #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
220 AC_TRY_COMPILE([#include <sys/types.h>
221 #include <sys/param.h>], [
222 #if BYTE_ORDER != BIG_ENDIAN
224 #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
225 if test $ac_cv_c_bigendian = unknown; then
226 AC_TRY_RUN([main () {
227 /* Are we little or big endian? From Harbison&Steele. */
231 char c[sizeof (long)];
234 exit (u.c[sizeof (long) - 1] == 1);
235 }], [ac_cv_c_bigendian=no], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=unknown])
237 if test $ac_cv_c_bigendian = unknown; then
238 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])
240 if test $ac_cv_c_bigendian = yes; then
241 AC_DEFINE(WORDS_BIGENDIAN)
245 dnl ---------------------------------------------------------------------------
246 dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
247 dnl ---------------------------------------------------------------------------
249 AC_DEFUN([WX_ARG_CACHE_INIT],
251 wx_arg_cache_file="configarg.cache"
252 echo "loading argument cache $wx_arg_cache_file"
253 rm -f ${wx_arg_cache_file}.tmp
254 touch ${wx_arg_cache_file}.tmp
255 touch ${wx_arg_cache_file}
258 AC_DEFUN([WX_ARG_CACHE_FLUSH],
260 echo "saving argument cache $wx_arg_cache_file"
261 mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
264 dnl this macro checks for a three-valued command line --with argument:
265 dnl possible arguments are 'yes', 'no', 'sys', or 'builtin'
266 dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
267 AC_DEFUN([WX_ARG_SYS_WITH],
269 AC_MSG_CHECKING([for --with-$1])
271 AC_ARG_WITH($1, [$2],
273 if test "$withval" = yes; then
274 ac_cv_use_$1='$3=yes'
275 elif test "$withval" = no; then
277 elif test "$withval" = sys; then
278 ac_cv_use_$1='$3=sys'
279 elif test "$withval" = builtin; then
280 ac_cv_use_$1='$3=builtin'
282 AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
286 LINE=`grep "$3" ${wx_arg_cache_file}`
287 if test "x$LINE" != x ; then
293 ac_cv_use_$1='$3='$DEFAULT_$3
297 if test "$no_cache" != 1; then
298 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
301 if test "$$3" = yes; then
303 elif test "$$3" = no; then
305 elif test "$$3" = sys; then
306 AC_MSG_RESULT([system version])
307 elif test "$$3" = builtin; then
308 AC_MSG_RESULT([builtin version])
310 AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
314 dnl this macro checks for a command line argument and caches the result
315 dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
316 AC_DEFUN([WX_ARG_WITH],
318 AC_MSG_CHECKING([for --with-$1])
320 AC_ARG_WITH($1, [$2],
322 if test "$withval" = yes; then
323 ac_cv_use_$1='$3=yes'
329 LINE=`grep "$3" ${wx_arg_cache_file}`
330 if test "x$LINE" != x ; then
336 ac_cv_use_$1='$3='$DEFAULT_$3
340 if test "$no_cache" != 1; then
341 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
344 if test "$$3" = yes; then
351 dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
352 dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name, enablestring)
354 dnl enablestring is a hack and allows to show "checking for --disable-foo"
355 dnl message when running configure instead of the default "checking for
356 dnl --enable-foo" one whih is useful for the options enabled by default
357 AC_DEFUN([WX_ARG_ENABLE],
360 AC_MSG_CHECKING([for --${enablestring:-enable}-$1])
362 AC_ARG_ENABLE($1, [$2],
364 if test "$enableval" = yes; then
365 ac_cv_use_$1='$3=yes'
371 LINE=`grep "$3" ${wx_arg_cache_file}`
372 if test "x$LINE" != x ; then
378 ac_cv_use_$1='$3='$DEFAULT_$3
382 if test "$no_cache" != 1; then
383 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
386 if test "$$3" = yes; then
394 dnl ===========================================================================
395 dnl Linker features test
396 dnl ===========================================================================
398 dnl ---------------------------------------------------------------------------
399 dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
400 dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
401 dnl version script file named versionfile
403 dnl call WX_VERSIONED_SYMBOLS(versionfile)
404 dnl ---------------------------------------------------------------------------
405 AC_DEFUN([WX_VERSIONED_SYMBOLS],
409 dnl FIXME - doesn't work, Solaris linker doesn't accept wildcards
411 dnl dnl Check for known non-gcc cases:
412 dnl case "${host}" in
414 dnl if test "x$GCC" != "xyes" ; then
415 dnl LDFLAGS_VERSIONING="-M $1"
416 dnl found_versioning=yes
421 dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
422 if test $found_versioning = no ; then
423 AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
425 echo "VER_1 { *; };" >conftest.sym
426 echo "int main() { return 0; }" >conftest.cpp
429 $CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
430 -Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
431 if test -s conftest.stderr ; then
432 wx_cv_version_script=no
434 wx_cv_version_script=yes
437 wx_cv_version_script=no
439 rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
441 if test $wx_cv_version_script = yes ; then
442 LDFLAGS_VERSIONING="-Wl,--version-script,$1"
448 dnl ===========================================================================
449 dnl "3rd party" macros included here because they are not widely available
450 dnl ===========================================================================
452 dnl ---------------------------------------------------------------------------
453 dnl test for availability of iconv()
454 dnl ---------------------------------------------------------------------------
456 dnl From Bruno Haible.
460 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
461 dnl those with the standalone portable GNU libiconv installed).
463 AC_ARG_WITH([libiconv-prefix],
464 [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
465 for dir in `echo "$withval" | tr : ' '`; do
466 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
467 if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
471 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
472 am_cv_func_iconv="no, consider installing GNU libiconv"
474 AC_TRY_LINK([#include <stdlib.h>
476 [iconv_t cd = iconv_open("","");
477 iconv(cd,NULL,NULL,NULL,NULL);
479 am_cv_func_iconv=yes)
480 if test "$am_cv_func_iconv" != yes; then
483 AC_TRY_LINK([#include <stdlib.h>
485 [iconv_t cd = iconv_open("","");
486 iconv(cd,NULL,NULL,NULL,NULL);
489 am_cv_func_iconv=yes)
493 if test "$am_cv_func_iconv" = yes; then
494 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
495 AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
503 #if defined(__STDC__) || defined(__cplusplus)
504 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
510 wx_cv_func_iconv_const="no",
511 wx_cv_func_iconv_const="yes"
516 if test "x$wx_cv_func_iconv_const" = "xyes"; then
520 AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
521 [Define as const if the declaration of iconv() needs const.])
524 if test "$am_cv_lib_iconv" = yes; then
530 dnl ---------------------------------------------------------------------------
531 dnl AC_SYS_LARGEFILE (partly based on the code from autoconf 2.5x)
532 dnl ---------------------------------------------------------------------------
534 dnl WX_SYS_LARGEFILE_TEST
536 dnl NB: original autoconf test was checking if compiler supported 6 bit off_t
537 dnl arithmetic properly but this failed miserably with gcc under Linux
538 dnl whereas the system still supports 64 bit files, so now simply check
539 dnl that off_t is big enough
540 define(WX_SYS_LARGEFILE_TEST,
542 unsigned int field: sizeof(off_t) == 8;
547 dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR)
548 define(WX_SYS_LARGEFILE_MACRO_VALUE,
550 AC_CACHE_CHECK([for $1 value needed for large files], [$3],
552 AC_TRY_COMPILE([#define $1 $2
553 #include <sys/types.h>],
554 WX_SYS_LARGEFILE_TEST,
560 if test "$$3" != no; then
562 AC_DEFINE_UNQUOTED([$1], [$$3])
569 dnl By default, many hosts won't let programs access large files;
570 dnl one must use special compiler options to get large-file access to work.
571 dnl For more details about this brain damage please see:
572 dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
573 AC_DEFUN([AC_SYS_LARGEFILE],
574 [AC_ARG_ENABLE(largefile,
575 [ --disable-largefile omit support for large files])
576 if test "$enable_largefile" != no; then
577 dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ...
578 dnl _LARGE_FILES -- for AIX
580 WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
581 if test "x$wx_largefile" != "xyes"; then
582 WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
585 AC_MSG_CHECKING(if large file support is available)
586 if test "x$wx_largefile" = "xyes"; then
587 AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
589 AC_MSG_RESULT($wx_largefile)
594 dnl Available from the GNU Autoconf Macro Archive at:
595 dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_const_cast.html
597 AC_DEFUN([AC_CXX_CONST_CAST],
598 [AC_CACHE_CHECK(whether the compiler supports const_cast<>,
599 ac_cv_cxx_const_cast,
602 AC_TRY_COMPILE(,[int x = 0;const int& y = x;int& z = const_cast<int&>(y);return z;],
603 ac_cv_cxx_const_cast=yes, ac_cv_cxx_const_cast=no)
606 if test "$ac_cv_cxx_const_cast" = yes; then
607 AC_DEFINE(HAVE_CONST_CAST,,[define if the compiler supports const_cast<>])
611 dnl and http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_static_cast.html
612 AC_DEFUN([AC_CXX_STATIC_CAST],
613 [AC_CACHE_CHECK(whether the compiler supports static_cast<>,
614 ac_cv_cxx_static_cast,
617 AC_TRY_COMPILE([#include <typeinfo>
618 class Base { public : Base () {} virtual void f () = 0; };
619 class Derived : public Base { public : Derived () {} virtual void f () {} };
620 int g (Derived&) { return 0; }],[
621 Derived d; Base& b = d; Derived& s = static_cast<Derived&> (b); return g (s);],
622 ac_cv_cxx_static_cast=yes, ac_cv_cxx_static_cast=no)
625 if test "$ac_cv_cxx_static_cast" = yes; then
626 AC_DEFINE(HAVE_STATIC_CAST,, [define if the compiler supports static_cast<>])
630 # Configure paths for GTK+
631 # Owen Taylor 1997-2001
633 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
634 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
635 dnl pass to pkg-config
637 AC_DEFUN([AM_PATH_GTK_2_0],
639 dnl Get the cflags and libraries from pkg-config
641 AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
642 , enable_gtktest=yes)
644 pkg_config_args=gtk+-2.0
649 pkg_config_args="$pkg_config_args gthread-2.0"
656 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
658 if test x$PKG_CONFIG != xno ; then
659 if pkg-config --atleast-pkgconfig-version 0.7 ; then
662 echo "*** pkg-config too old; version 0.7 or better required."
670 min_gtk_version=ifelse([$1], ,2.0.0,$1)
671 AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
673 if test x$PKG_CONFIG != xno ; then
674 ## don't try to run the test against uninstalled libtool libs
675 if $PKG_CONFIG --uninstalled $pkg_config_args; then
676 echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
680 if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
687 if test x"$no_gtk" = x ; then
688 GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
689 GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
690 gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
691 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
692 gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
693 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
694 gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
695 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
696 if test "x$enable_gtktest" = "xyes" ; then
697 ac_save_CFLAGS="$CFLAGS"
699 CFLAGS="$CFLAGS $GTK_CFLAGS"
700 LIBS="$GTK_LIBS $LIBS"
702 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
703 dnl checks the results of pkg-config to some extent)
714 int major, minor, micro;
717 system ("touch conf.gtktest");
719 /* HP/UX 9 (%@#!) writes to sscanf strings */
720 tmp_version = g_strdup("$min_gtk_version");
721 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
722 printf("%s, bad version string\n", "$min_gtk_version");
726 if ((gtk_major_version != $gtk_config_major_version) ||
727 (gtk_minor_version != $gtk_config_minor_version) ||
728 (gtk_micro_version != $gtk_config_micro_version))
730 printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
731 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
732 gtk_major_version, gtk_minor_version, gtk_micro_version);
733 printf ("*** was found! If pkg-config was correct, then it is best\n");
734 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
735 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
736 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
737 printf("*** required on your system.\n");
738 printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
739 printf("*** to point to the correct configuration files\n");
741 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
742 (gtk_minor_version != GTK_MINOR_VERSION) ||
743 (gtk_micro_version != GTK_MICRO_VERSION))
745 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
746 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
747 printf("*** library (version %d.%d.%d)\n",
748 gtk_major_version, gtk_minor_version, gtk_micro_version);
752 if ((gtk_major_version > major) ||
753 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
754 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
760 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
761 gtk_major_version, gtk_minor_version, gtk_micro_version);
762 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
763 major, minor, micro);
764 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
766 printf("*** If you have already installed a sufficiently new version, this error\n");
767 printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
768 printf("*** being found. The easiest way to fix this is to remove the old version\n");
769 printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
770 printf("*** correct copy of pkg-config. (In this case, you will have to\n");
771 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
772 printf("*** so that the correct libraries are found at run-time))\n");
777 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
778 CFLAGS="$ac_save_CFLAGS"
782 if test "x$no_gtk" = x ; then
783 AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
784 ifelse([$2], , :, [$2])
787 if test "$PKG_CONFIG" = "no" ; then
788 echo "*** A new enough version of pkg-config was not found."
789 echo "*** See http://pkgconfig.sourceforge.net"
791 if test -f conf.gtktest ; then
794 echo "*** Could not run GTK+ test program, checking why..."
795 ac_save_CFLAGS="$CFLAGS"
797 CFLAGS="$CFLAGS $GTK_CFLAGS"
798 LIBS="$LIBS $GTK_LIBS"
802 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
803 [ echo "*** The test program compiled, but did not run. This usually means"
804 echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
805 echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
806 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
807 echo "*** to the installed location Also, make sure you have run ldconfig if that"
808 echo "*** is required on your system"
810 echo "*** If you have an old version installed, it is best to remove it, although"
811 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
812 [ echo "*** The test program failed to compile or link. See the file config.log for the"
813 echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
814 CFLAGS="$ac_save_CFLAGS"
820 ifelse([$3], , :, [$3])
827 # Configure paths for GTK+
828 # Owen Taylor 97-11-3
830 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
831 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
833 AC_DEFUN(AM_PATH_GTK,
835 dnl Get the cflags and libraries from the gtk-config script
837 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
838 gtk_config_prefix="$withval", gtk_config_prefix="")
839 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
840 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
841 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
842 , enable_gtktest=yes)
848 gtk_config_args="$gtk_config_args gthread"
853 if test x$gtk_config_exec_prefix != x ; then
854 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
855 if test x${GTK_CONFIG+set} != xset ; then
856 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
859 if test x$gtk_config_prefix != x ; then
860 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
861 if test x${GTK_CONFIG+set} != xset ; then
862 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
866 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
867 min_gtk_version=ifelse([$1], ,0.99.7,$1)
868 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
870 if test "$GTK_CONFIG" = "no" ; then
873 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
874 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
875 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
876 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
877 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
878 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
879 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
880 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
881 if test "x$enable_gtktest" = "xyes" ; then
882 ac_save_CFLAGS="$CFLAGS"
884 CFLAGS="$CFLAGS $GTK_CFLAGS"
885 LIBS="$GTK_LIBS $LIBS"
887 dnl Now check if the installed GTK is sufficiently new. (Also sanity
888 dnl checks the results of gtk-config to some extent
899 int major, minor, micro;
902 system ("touch conf.gtktest");
904 /* HP/UX 9 (%@#!) writes to sscanf strings */
905 tmp_version = g_strdup("$min_gtk_version");
906 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
907 printf("%s, bad version string\n", "$min_gtk_version");
911 if ((gtk_major_version != $gtk_config_major_version) ||
912 (gtk_minor_version != $gtk_config_minor_version) ||
913 (gtk_micro_version != $gtk_config_micro_version))
915 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
916 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
917 gtk_major_version, gtk_minor_version, gtk_micro_version);
918 printf ("*** was found! If gtk-config was correct, then it is best\n");
919 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
920 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
921 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
922 printf("*** required on your system.\n");
923 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
924 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
925 printf("*** before re-running configure\n");
927 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
928 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
929 (gtk_minor_version != GTK_MINOR_VERSION) ||
930 (gtk_micro_version != GTK_MICRO_VERSION))
932 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
933 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
934 printf("*** library (version %d.%d.%d)\n",
935 gtk_major_version, gtk_minor_version, gtk_micro_version);
937 #endif /* defined (GTK_MAJOR_VERSION) ... */
940 if ((gtk_major_version > major) ||
941 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
942 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
948 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
949 gtk_major_version, gtk_minor_version, gtk_micro_version);
950 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
951 major, minor, micro);
952 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
954 printf("*** If you have already installed a sufficiently new version, this error\n");
955 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
956 printf("*** being found. The easiest way to fix this is to remove the old version\n");
957 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
958 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
959 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
960 printf("*** so that the correct libraries are found at run-time))\n");
965 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
966 CFLAGS="$ac_save_CFLAGS"
970 if test "x$no_gtk" = x ; then
972 ifelse([$2], , :, [$2])
975 if test "$GTK_CONFIG" = "no" ; then
976 echo "*** The gtk-config script installed by GTK could not be found"
977 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
978 echo "*** your path, or set the GTK_CONFIG environment variable to the"
979 echo "*** full path to gtk-config."
981 if test -f conf.gtktest ; then
984 echo "*** Could not run GTK test program, checking why..."
985 CFLAGS="$CFLAGS $GTK_CFLAGS"
986 LIBS="$LIBS $GTK_LIBS"
990 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
991 [ echo "*** The test program compiled, but did not run. This usually means"
992 echo "*** that the run-time linker is not finding GTK or finding the wrong"
993 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
994 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
995 echo "*** to the installed location Also, make sure you have run ldconfig if that"
996 echo "*** is required on your system"
998 echo "*** If you have an old version installed, it is best to remove it, although"
999 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
1001 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
1002 echo "*** came with the system with the command"
1004 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
1005 [ echo "*** The test program failed to compile or link. See the file config.log for the"
1006 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
1007 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
1008 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
1009 CFLAGS="$ac_save_CFLAGS"
1010 LIBS="$ac_save_LIBS"
1015 ifelse([$3], , :, [$3])
1017 AC_SUBST(GTK_CFLAGS)
1023 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1024 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1025 dnl also defines GSTUFF_PKG_ERRORS on error
1026 AC_DEFUN(PKG_CHECK_MODULES, [
1029 if test -z "$PKG_CONFIG"; then
1030 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1033 if test "$PKG_CONFIG" = "no" ; then
1034 echo "*** The pkg-config script could not be found. Make sure it is"
1035 echo "*** in your path, or set the PKG_CONFIG environment variable"
1036 echo "*** to the full path to pkg-config."
1037 echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
1039 PKG_CONFIG_MIN_VERSION=0.9.0
1040 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1041 AC_MSG_CHECKING(for $2)
1043 if $PKG_CONFIG --exists "$2" ; then
1047 AC_MSG_CHECKING($1_CFLAGS)
1048 $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
1049 AC_MSG_RESULT($$1_CFLAGS)
1051 AC_MSG_CHECKING($1_LIBS)
1052 $1_LIBS=`$PKG_CONFIG --libs "$2"`
1053 AC_MSG_RESULT($$1_LIBS)
1057 ## If we have a custom action on failure, don't print errors, but
1058 ## do set a variable so people can do so.
1059 $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1060 ifelse([$4], ,echo $$1_PKG_ERRORS,)
1066 echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1067 echo "*** See http://www.freedesktop.org/software/pkgconfig"
1071 if test $succeeded = yes; then
1072 ifelse([$3], , :, [$3])
1074 ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
1080 # Configure paths for SDL
1081 # Sam Lantinga 9/21/99
1082 # stolen from Manish Singh
1083 # stolen back from Frank Belew
1084 # stolen from Manish Singh
1085 # Shamelessly stolen from Owen Taylor
1087 dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1088 dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
1090 AC_DEFUN([AM_PATH_SDL],
1092 dnl Get the cflags and libraries from the sdl-config script
1094 AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
1095 sdl_prefix="$withval", sdl_prefix="")
1096 AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
1097 sdl_exec_prefix="$withval", sdl_exec_prefix="")
1098 AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
1099 , enable_sdltest=yes)
1101 if test x$sdl_exec_prefix != x ; then
1102 sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
1103 if test x${SDL_CONFIG+set} != xset ; then
1104 SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
1107 if test x$sdl_prefix != x ; then
1108 sdl_args="$sdl_args --prefix=$sdl_prefix"
1109 if test x${SDL_CONFIG+set} != xset ; then
1110 SDL_CONFIG=$sdl_prefix/bin/sdl-config
1114 AC_REQUIRE([AC_CANONICAL_TARGET])
1115 PATH="$prefix/bin:$prefix/usr/bin:$PATH"
1116 AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
1117 min_sdl_version=ifelse([$1], ,0.11.0,$1)
1118 AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
1120 if test "$SDL_CONFIG" = "no" ; then
1123 SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
1124 SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
1126 sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
1127 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
1128 sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
1129 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
1130 sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
1131 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
1132 if test "x$enable_sdltest" = "xyes" ; then
1133 ac_save_CFLAGS="$CFLAGS"
1134 ac_save_LIBS="$LIBS"
1135 CFLAGS="$CFLAGS $SDL_CFLAGS"
1136 LIBS="$LIBS $SDL_LIBS"
1138 dnl Now check if the installed SDL is sufficiently new. (Also sanity
1139 dnl checks the results of sdl-config to some extent
1149 my_strdup (char *str)
1155 new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
1156 strcpy (new_str, str);
1164 int main (int argc, char *argv[])
1166 int major, minor, micro;
1169 /* This hangs on some systems (?)
1170 system ("touch conf.sdltest");
1172 { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
1174 /* HP/UX 9 (%@#!) writes to sscanf strings */
1175 tmp_version = my_strdup("$min_sdl_version");
1176 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1177 printf("%s, bad version string\n", "$min_sdl_version");
1181 if (($sdl_major_version > major) ||
1182 (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
1183 (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
1189 printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
1190 printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
1191 printf("*** best to upgrade to the required version.\n");
1192 printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
1193 printf("*** to point to the correct copy of sdl-config, and remove the file\n");
1194 printf("*** config.cache before re-running configure\n");
1199 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1200 CFLAGS="$ac_save_CFLAGS"
1201 LIBS="$ac_save_LIBS"
1204 if test "x$no_sdl" = x ; then
1206 ifelse([$2], , :, [$2])
1209 if test "$SDL_CONFIG" = "no" ; then
1210 echo "*** The sdl-config script installed by SDL could not be found"
1211 echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
1212 echo "*** your path, or set the SDL_CONFIG environment variable to the"
1213 echo "*** full path to sdl-config."
1215 if test -f conf.sdltest ; then
1218 echo "*** Could not run SDL test program, checking why..."
1219 CFLAGS="$CFLAGS $SDL_CFLAGS"
1220 LIBS="$LIBS $SDL_LIBS"
1225 int main(int argc, char *argv[])
1228 #define main K_and_R_C_main
1230 [ echo "*** The test program compiled, but did not run. This usually means"
1231 echo "*** that the run-time linker is not finding SDL or finding the wrong"
1232 echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
1233 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
1234 echo "*** to the installed location Also, make sure you have run ldconfig if that"
1235 echo "*** is required on your system"
1237 echo "*** If you have an old version installed, it is best to remove it, although"
1238 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
1239 [ echo "*** The test program failed to compile or link. See the file config.log for the"
1240 echo "*** exact error that occured. This usually means SDL was incorrectly installed"
1241 echo "*** or that you have moved SDL since it was installed. In the latter case, you"
1242 echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
1243 CFLAGS="$ac_save_CFLAGS"
1244 LIBS="$ac_save_LIBS"
1249 ifelse([$3], , :, [$3])
1251 AC_SUBST(SDL_CFLAGS)
1256 dnl ---------------------------------------------------------------------------
1257 dnl Support macros for makefiles generated by BAKEFILE.
1258 dnl ---------------------------------------------------------------------------
1260 dnl Lots of compiler & linker detection code contained here was taken from
1261 dnl wxWindows configure.in script (see http://www.wxwindows.org)
1265 dnl ---------------------------------------------------------------------------
1266 dnl AC_BAKEFILE_GNUMAKE
1268 dnl Detects GNU make
1269 dnl ---------------------------------------------------------------------------
1271 AC_DEFUN([AC_BAKEFILE_GNUMAKE],
1273 dnl does make support "-include" (only GNU make does AFAIK)?
1274 AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu,
1276 if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
1277 egrep -s GNU > /dev/null); then
1278 bakefile_cv_prog_makeisgnu="yes"
1280 bakefile_cv_prog_makeisgnu="no"
1284 if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then
1289 AC_SUBST(IF_GNU_MAKE)
1292 dnl ---------------------------------------------------------------------------
1293 dnl AC_BAKEFILE_PLATFORM
1295 dnl Detects platform and sets PLATFORM_XXX variables accordingly
1296 dnl ---------------------------------------------------------------------------
1298 AC_DEFUN([AC_BAKEFILE_PLATFORM],
1307 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then
1308 case "${BAKEFILE_HOST}" in
1309 *-*-cygwin* | *-*-mingw32* )
1315 *-pc-os2_emx | *-pc-os2-emx )
1327 case "$BAKEFILE_FORCE_PLATFORM" in
1345 AC_MSG_ERROR([Unknown platform: $BAKEFILE_FORCE_PLATFORM])
1350 AC_SUBST(PLATFORM_UNIX)
1351 AC_SUBST(PLATFORM_WIN32)
1352 AC_SUBST(PLATFORM_MSDOS)
1353 AC_SUBST(PLATFORM_MAC)
1354 AC_SUBST(PLATFORM_MACOSX)
1355 AC_SUBST(PLATFORM_OS2)
1359 dnl ---------------------------------------------------------------------------
1360 dnl AC_BAKEFILE_PLATFORM_SPECIFICS
1362 dnl Sets misc platform-specific settings
1363 dnl ---------------------------------------------------------------------------
1365 AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS],
1367 AC_ARG_ENABLE([omf], AS_HELP_STRING([--enable-omf],
1368 [use OMF object format (OS/2)]),
1369 [bk_os2_use_omf="$enableval"])
1371 case "${BAKEFILE_HOST}" in
1373 dnl For Unix to MacOS X porting instructions, see:
1374 dnl http://fink.sourceforge.net/doc/porting/porting.html
1375 CFLAGS="$CFLAGS -fno-common"
1376 CXXFLAGS="$CXXFLAGS -fno-common"
1379 *-pc-os2_emx | *-pc-os2-emx )
1380 if test "x$bk_os2_use_omf" = "xyes" ; then
1383 LDFLAGS="-Zomf $LDFLAGS"
1384 CFLAGS="-Zomf $CFLAGS"
1385 CXXFLAGS="-Zomf $CXXFLAGS"
1394 dnl ---------------------------------------------------------------------------
1395 dnl AC_BAKEFILE_SUFFIXES
1397 dnl Detects shared various suffixes for shared libraries, libraries, programs,
1399 dnl ---------------------------------------------------------------------------
1401 AC_DEFUN([AC_BAKEFILE_SUFFIXES],
1404 SO_SUFFIX_MODULE="so"
1412 case "${BAKEFILE_HOST}" in
1415 SO_SUFFIX_MODULE="sl"
1419 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
1420 dnl Both archive libraries and shared libraries on AIX have an
1421 dnl .a extension. This will explain why you can't link with an
1422 dnl .so and why it works with the name changed to .a.
1424 SO_SUFFIX_MODULE="a"
1426 *-*-cygwin* | *-*-mingw32* )
1428 SO_SUFFIX_MODULE="dll"
1429 DLLIMP_SUFFIX="dll.a"
1437 *-pc-os2_emx | *-pc-os2-emx )
1439 SO_SUFFIX_MODULE="dll"
1440 DLLIMP_SUFFIX=$OS2_LIBEXT
1444 LIBEXT=".$OS2_LIBEXT"
1448 SO_SUFFIX_MODULE="bundle"
1452 if test "x$DLLIMP_SUFFIX" = "x" ; then
1453 DLLIMP_SUFFIX="$SO_SUFFIX"
1457 AC_SUBST(SO_SUFFIX_MODULE)
1458 AC_SUBST(DLLIMP_SUFFIX)
1463 AC_SUBST(DLLPREFIX_MODULE)
1467 dnl ---------------------------------------------------------------------------
1468 dnl AC_BAKEFILE_SHARED_LD
1470 dnl Detects command for making shared libraries, substitutes SHARED_LD_CC
1471 dnl and SHARED_LD_CXX.
1472 dnl ---------------------------------------------------------------------------
1474 AC_DEFUN([AC_BAKEFILE_SHARED_LD],
1476 dnl Defaults for GCC and ELF .so shared libs:
1477 SHARED_LD_CC="\$(CC) -shared -o"
1478 SHARED_LD_CXX="\$(CXX) -shared -o"
1480 dnl the extra compiler flags needed for compilation of shared library
1481 if test "x$GCC" = "xyes"; then
1482 dnl the switch for gcc is the same under all platforms
1486 case "${BAKEFILE_HOST}" in
1488 dnl default settings are good for gcc but not for the native HP-UX
1489 if test "x$GCC" = "xyes"; then
1490 dnl -o flag must be after PIC flag
1491 SHARED_LD_CC="${CC} -shared ${PIC_FLAG} -o"
1492 SHARED_LD_CXX="${CXX} -shared ${PIC_FLAG} -o"
1494 dnl no idea why it wants it, but it does
1495 LDFLAGS="$LDFLAGS -L/usr/lib"
1497 SHARED_LD_CC="${CC} -b -o"
1498 SHARED_LD_CXX="${CXX} -b -o"
1504 if test "x$GCC" != "xyes"; then
1505 AC_CACHE_CHECK([for Intel compiler], bakefile_cv_prog_icc,
1509 #ifndef __INTEL_COMPILER
1513 bakefile_cv_prog_icc=yes,
1514 bakefile_cv_prog_icc=no
1517 if test "$bakefile_cv_prog_icc" = "yes"; then
1524 if test "x$GCC" != xyes ; then
1525 SHARED_LD_CC="${CC} -G -o"
1526 SHARED_LD_CXX="${CXX} -G -o"
1532 dnl Most apps benefit from being fully binded (its faster and static
1533 dnl variables initialized at startup work).
1534 dnl This can be done either with the exe linker flag -Wl,-bind_at_load
1535 dnl or with a double stage link in order to create a single module
1536 dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
1538 dnl If using newer dev tools then there is a -single_module flag that
1539 dnl we can use to do this, otherwise we'll need to use a helper
1540 dnl script. Check the version of gcc to see which way we can go:
1541 AC_CACHE_CHECK([for gcc 3.1 or later], wx_cv_gcc31, [
1544 #if (__GNUC__ < 3) || \
1545 ((__GNUC__ == 3) && (__GNUC_MINOR__ < 1))
1557 if test "$wx_cv_gcc31" = "no"; then
1558 AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH
1559 chmod +x shared-ld-sh
1561 dnl Use the shared-ld-sh helper script
1562 SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o"
1563 SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o"
1564 SHARED_LD_CXX="$SHARED_LD_CC"
1565 SHARED_LD_MODULE_CXX="$SHARED_LD_MODULE_CC"
1567 dnl Use the -single_module flag and let the linker do it for us
1568 SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o"
1569 SHARED_LD_MODULE_CC="\${CC} -bundle -single_module -headerpad_max_install_names -o"
1570 SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o"
1571 SHARED_LD_MODULE_CXX="\${CXX} -bundle -single_module -headerpad_max_install_names -o"
1574 PIC_FLAG="-dynamic -fPIC"
1578 dnl default settings are ok for gcc
1579 if test "x$GCC" != "xyes"; then
1580 dnl the abs path below used to be hardcoded here so I guess it must
1581 dnl be some sort of standard location under AIX?
1582 AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
1583 makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
1584 dnl FIXME - what about makeCSharedLib?
1585 SHARED_LD_CC="$AIX_CC_LD -p 0 -o"
1586 SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o"
1591 dnl can't use gcc under BeOS for shared library creation because it
1592 dnl complains about missing 'main'
1593 SHARED_LD_CC="${LD} -shared -o"
1594 SHARED_LD_CXX="${LD} -shared -o"
1598 dnl default settings are ok for gcc
1599 if test "x$GCC" != "xyes"; then
1604 *-*-cygwin* | *-*-mingw32* )
1608 *-pc-os2_emx | *-pc-os2-emx )
1609 SHARED_LD_CC="`pwd`/dllar.sh -o"
1610 SHARED_LD_CXX="`pwd`/dllar.sh -o"
1612 AC_BAKEFILE_CREATE_FILE_DLLAR_SH
1616 *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
1625 AC_MSG_ERROR(unknown system type $BAKEFILE_HOST.)
1628 if test "x$PIC_FLAG" != "x" ; then
1629 PIC_FLAG="$PIC_FLAG -DPIC"
1632 if test "x$SHARED_LD_MODULE_CC" = "x" ; then
1633 SHARED_LD_MODULE_CC="$SHARED_LD_CC"
1635 if test "x$SHARED_LD_MODULE_CXX" = "x" ; then
1636 SHARED_LD_MODULE_CXX="$SHARED_LD_CXX"
1639 AC_SUBST(SHARED_LD_CC)
1640 AC_SUBST(SHARED_LD_CXX)
1641 AC_SUBST(SHARED_LD_MODULE_CC)
1642 AC_SUBST(SHARED_LD_MODULE_CXX)
1647 dnl ---------------------------------------------------------------------------
1648 dnl AC_BAKEFILE_SHARED_VERSIONS
1650 dnl Detects linker options for attaching versions (sonames) to shared libs.
1651 dnl ---------------------------------------------------------------------------
1653 AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
1662 case "${BAKEFILE_HOST}" in
1664 SONAME_FLAG="-Wl,-soname,"
1684 AC_SUBST(USE_SOVERSION)
1685 AC_SUBST(USE_SOVERLINUX)
1686 AC_SUBST(USE_SOVERSOLARIS)
1687 AC_SUBST(USE_MACVERSION)
1688 AC_SUBST(USE_SOSYMLINKS)
1689 AC_SUBST(SONAME_FLAG)
1693 dnl ---------------------------------------------------------------------------
1694 dnl AC_BAKEFILE_DEPS
1696 dnl Detects available C/C++ dependency tracking options
1697 dnl ---------------------------------------------------------------------------
1699 AC_DEFUN([AC_BAKEFILE_DEPS],
1701 AC_MSG_CHECKING([for dependency tracking method])
1704 if test "x$GCC" = "xyes"; then
1707 case "${BAKEFILE_HOST}" in
1709 dnl -cpp-precomp (the default) conflicts with -MMD option
1710 dnl used by bk-deps (see also http://developer.apple.com/documentation/Darwin/Conceptual/PortingUnix/compiling/chapter_4_section_3.html)
1711 DEPSFLAG_GCC="-no-cpp-precomp -MMD"
1717 AC_MSG_RESULT([gcc])
1719 AC_MSG_RESULT([none])
1722 if test $DEPS_TRACKING = 1 ; then
1723 AC_BAKEFILE_CREATE_FILE_BK_DEPS
1727 AC_SUBST(DEPS_TRACKING)
1730 dnl ---------------------------------------------------------------------------
1731 dnl AC_BAKEFILE_CHECK_BASIC_STUFF
1733 dnl Checks for presence of basic programs, such as C and C++ compiler, "ranlib"
1735 dnl ---------------------------------------------------------------------------
1737 AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF],
1746 AC_CHECK_TOOL(AR, ar, ar)
1747 AC_CHECK_TOOL(STRIP, strip, :)
1748 AC_CHECK_TOOL(NM, nm, :)
1750 case ${BAKEFILE_HOST} in
1752 INSTALL_DIR="mkdir -p"
1754 *) INSTALL_DIR="$INSTALL -d"
1757 AC_SUBST(INSTALL_DIR)
1760 case ${BAKEFILE_HOST} in
1761 *-*-cygwin* | *-*-mingw32* )
1762 LDFLAGS_GUI="-mwindows"
1764 AC_SUBST(LDFLAGS_GUI)
1768 dnl ---------------------------------------------------------------------------
1769 dnl AC_BAKEFILE_RES_COMPILERS
1771 dnl Checks for presence of resource compilers for win32 or mac
1772 dnl ---------------------------------------------------------------------------
1774 AC_DEFUN([AC_BAKEFILE_RES_COMPILERS],
1779 case ${BAKEFILE_HOST} in
1780 *-*-cygwin* | *-*-mingw32* )
1781 dnl Check for win32 resources compiler:
1782 if test "$build" != "$host" ; then
1783 RESCOMP=$host_alias-windres
1785 AC_CHECK_PROG(RESCOMP, windres, windres, windres)
1790 AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
1791 AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
1799 dnl ---------------------------------------------------------------------------
1800 dnl AC_BAKEFILE_PRECOMP_HEADERS
1802 dnl Check for precompiled headers support (GCC >= 3.4)
1803 dnl ---------------------------------------------------------------------------
1805 AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS],
1808 AC_ARG_ENABLE([precomp-headers],
1809 AS_HELP_STRING([--disable-precomp-headers],
1810 [don't use precompiled headers even if compiler can]),
1811 [bk_use_pch="$enableval"])
1815 if test "x$bk_use_pch" = "x" -o "x$bk_use_pch" = "xyes" ; then
1816 if test "x$GCC" = "xyes"; then
1817 dnl test if we have gcc-3.4:
1818 AC_MSG_CHECKING([if the compiler supports precompiled headers])
1821 #if !defined(__GNUC__) || !defined(__GNUC_MINOR__)
1822 #error "no pch support"
1825 #error "no pch support"
1827 #if (__GNUC__ == 3) && \
1828 ((!defined(__APPLE_CC__) && (__GNUC_MINOR__ < 4)) || \
1829 ( defined(__APPLE_CC__) && (__GNUC_MINOR__ < 3)))
1830 #error "no pch support"
1834 AC_MSG_RESULT([yes])
1840 if test $GCC_PCH = 1 ; then
1841 cat <<EOF >bk-make-pch
1844 # This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
1845 # script. It is used to generated precompiled headers.
1847 # Permission is given to use this file in any way.
1856 while test \${#} -gt 0; do
1859 incdir=\`echo \${1} | sed -e 's/-I\(.*\)/\1/g'\`
1860 if test "x\${headerfile}" = "x" -a -f "\${incdir}/\${header}" ; then
1861 headerfile="\${incdir}/\${header}"
1865 compiler="\${compiler} \${1}"
1869 if test "x\${headerfile}" = "x" ; then
1870 echo "error: can't find header \${header} in include paths" >2
1872 if test -f \${outfile} ; then
1875 mkdir -p \`dirname \${outfile}\`
1877 depsfile=".deps/\`basename \${outfile}\`.d"
1879 # can do this because gcc is >= 3.4:
1880 \${compiler} -o \${outfile} -MMD -MF "\${depsfile}" "\${headerfile}"
1884 chmod +x bk-make-pch
1894 dnl ---------------------------------------------------------------------------
1897 dnl To be used in configure.in of any project using Bakefile-generated mks
1899 dnl Behaviour can be modified by setting following variables:
1900 dnl BAKEFILE_CHECK_BASICS set to "no" if you don't want bakefile to
1901 dnl to perform check for basic tools like ranlib
1902 dnl BAKEFILE_HOST set this to override host detection, defaults
1904 dnl BAKEFILE_FORCE_PLATFORM set to override platform detection
1905 dnl ---------------------------------------------------------------------------
1907 AC_DEFUN([AC_BAKEFILE],
1909 if test "x$BAKEFILE_HOST" = "x"; then
1910 BAKEFILE_HOST="${host}"
1913 if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then
1914 AC_BAKEFILE_CHECK_BASIC_STUFF
1917 AC_BAKEFILE_PLATFORM
1918 AC_BAKEFILE_PLATFORM_SPECIFICS
1919 AC_BAKEFILE_SUFFIXES
1920 AC_BAKEFILE_SHARED_LD
1921 AC_BAKEFILE_SHARED_VERSIONS
1923 AC_BAKEFILE_RES_COMPILERS
1925 BAKEFILE_BAKEFILE_M4_VERSION="0.1.4"
1927 builtin(include, autoconf_inc.m4)
1929 if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then
1930 AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.])
1935 dnl ---------------------------------------------------------------------------
1936 dnl Embedded copies of helper scripts follow:
1937 dnl ---------------------------------------------------------------------------
1939 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_DLLAR_SH],
1941 dnl ===================== dllar.sh begins here =====================
1946 # dllar - a tool to build both a .dll and an .a file
1947 # from a set of object (.o) files for EMX/OS2.
1949 # Written by Andrew Zabolotny, bit@freya.etu.ru
1950 # Ported to Unix like shell by Stefan Neis, Stefan.Neis@t-online.de
1952 # This script will accept a set of files on the command line.
1953 # All the public symbols from the .o files will be exported into
1954 # a .DEF file, then linker will be run (through gcc) against them to
1955 # build a shared library consisting of all given .o files. All libraries
1956 # (.a) will be first decompressed into component .o files then act as
1957 # described above. You can optionally give a description (-d "description")
1958 # which will be put into .DLL. To see the list of accepted options (as well
1959 # as command-line format) simply run this program without options. The .DLL
1960 # is built to be imported by name (there is no guarantee that new versions
1961 # of the library you build will have same ordinals for same symbols).
1963 # dllar is free software; you can redistribute it and/or modify
1964 # it under the terms of the GNU General Public License as published by
1965 # the Free Software Foundation; either version 2, or (at your option)
1966 # any later version.
1968 # dllar is distributed in the hope that it will be useful,
1969 # but WITHOUT ANY WARRANTY; without even the implied warranty of
1970 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1971 # GNU General Public License for more details.
1973 # You should have received a copy of the GNU General Public License
1974 # along with dllar; see the file COPYING. If not, write to the Free
1975 # Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1978 # To successfuly run this program you will need:
1979 # - Current drive should have LFN support (HPFS, ext2, network, etc)
1980 # (Sometimes dllar generates filenames which won't fit 8.3 scheme)
1982 # (used to build the .dll)
1984 # (used to create .def file from .o files)
1986 # (used to create .a file from .def file)
1987 # - GNU text utilites (cat, sort, uniq)
1988 # used to process emxexp output
1989 # - GNU file utilities (mv, rm)
1991 # - lxlite (optional, see flag below)
1992 # (used for general .dll cleanup)
1999 # basnam, variant of basename, which does _not_ remove the path, _iff_
2000 # second argument (suffix to remove) is given
2004 echo ${D}1 | sed 's/.*\///' | sed 's/.*\\//'
2007 echo ${D}1 | sed 's/'${D}2'${D}//'
2010 echo "error in basnam ${D}*"
2016 # Cleanup temporary files and output
2019 for i in ${D}inputFiles ; do
2022 rm -rf \`basnam ${D}i !\`
2029 # Kill result in case of failure as there is just to many stupid make/nmake
2030 # things out there which doesn't do this.
2031 if [[] ${D}# -eq 0 []]; then
2032 rm -f ${D}arcFile ${D}arcFile2 ${D}defFile ${D}dllFile
2036 # Print usage and exit script with rc=1.
2038 echo 'Usage: dllar [[]-o[[]utput[]] output_file[]] [[]-i[[]mport[]] importlib_name[]]'
2039 echo ' [[]-d[[]escription[]] "dll descrption"[]] [[]-cc "CC"[]] [[]-f[[]lags[]] "CFLAGS"[]]'
2040 echo ' [[]-ord[[]inals[]][]] -ex[[]clude[]] "symbol(s)"'
2041 echo ' [[]-libf[[]lags[]] "{INIT|TERM}{GLOBAL|INSTANCE}"[]] [[]-nocrt[[]dll[]][]] [[]-nolxl[[]ite[]][]]'
2042 echo ' [[]*.o[]] [[]*.a[]]'
2043 echo '*> "output_file" should have no extension.'
2044 echo ' If it has the .o, .a or .dll extension, it is automatically removed.'
2045 echo ' The import library name is derived from this and is set to "name".a,'
2046 echo ' unless overridden by -import'
2047 echo '*> "importlib_name" should have no extension.'
2048 echo ' If it has the .o, or .a extension, it is automatically removed.'
2049 echo ' This name is used as the import library name and may be longer and'
2050 echo ' more descriptive than the DLL name which has to follow the old '
2051 echo ' 8.3 convention of FAT.'
2052 echo '*> "cc" is used to use another GCC executable. (default: gcc.exe)'
2053 echo '*> "flags" should be any set of valid GCC flags. (default: -s -Zcrtdll)'
2054 echo ' These flags will be put at the start of GCC command line.'
2055 echo '*> -ord[[]inals[]] tells dllar to export entries by ordinals. Be careful.'
2056 echo '*> -ex[[]clude[]] defines symbols which will not be exported. You can define'
2057 echo ' multiple symbols, for example -ex "myfunc yourfunc _GLOBAL*".'
2058 echo ' If the last character of a symbol is "*", all symbols beginning'
2059 echo ' with the prefix before "*" will be exclude, (see _GLOBAL* above).'
2060 echo '*> -libf[[]lags[]] can be used to add INITGLOBAL/INITINSTANCE and/or'
2061 echo ' TERMGLOBAL/TERMINSTANCE flags to the dynamically-linked library.'
2062 echo '*> -nocrt[[]dll[]] switch will disable linking the library against emx''s'
2063 echo ' C runtime DLLs.'
2064 echo '*> -nolxl[[]ite[]] switch will disable running lxlite on the resulting DLL.'
2065 echo '*> All other switches (for example -L./ or -lmylib) will be passed'
2066 echo ' unchanged to GCC at the end of command line.'
2067 echo '*> If you create a DLL from a library and you do not specify -o,'
2068 echo ' the basename for DLL and import library will be set to library name,'
2069 echo ' the initial library will be renamed to 'name'_s.a (_s for static)'
2070 echo ' i.e. "dllar gcc.a" will create gcc.dll and gcc.a, and the initial'
2071 echo ' library will be renamed into gcc_s.a.'
2074 echo ' dllar -o gcc290.dll libgcc.a -d "GNU C runtime library" -ord'
2075 echo ' -ex "__main __ctordtor*" -libf "INITINSTANCE TERMINSTANCE"'
2080 # Execute a command.
2081 # If exit code of the commnad <> 0 CleanUp() is called and we'll exit the script.
2082 # @Uses Whatever CleanUp() uses.
2088 if [[] ${D}rcCmd -ne 0 []]; then
2089 echo "command failed, exit code="${D}rcCmd
2103 CFLAGS="-s -Zcrtdll"
2105 EXPORT_BY_ORDINALS=0
2114 curDirS=${D}{curDirS}"/"
2119 while [[] ${D}1 []]; do
2122 EXPORT_BY_ORDINALS=1;
2149 exclude_symbols=${D}{exclude_symbols}${D}1" "
2153 library_flags=${D}{library_flags}${D}1" "
2169 EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1
2173 if [[] ${D}libsToLink -ne 0 []]; then
2174 EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1
2176 for file in ${D}1 ; do
2177 if [[] -f ${D}file []]; then
2178 inputFiles="${D}{inputFiles} ${D}file"
2182 if [[] ${D}found -eq 0 []]; then
2183 echo "ERROR: No file(s) found: "${D}1
2190 done # iterate cmdline words
2193 if [[] -z "${D}inputFiles" []]; then
2194 echo "dllar: no input files"
2198 # Now extract all .o files from .a files
2200 for file in ${D}inputFiles ; do
2211 EXTRA_CFLAGS="${D}EXTRA_CFLAGS -Zomf"
2216 dirname=\`basnam ${D}file ${D}suffix\`"_%"
2218 if [[] ${D}? -ne 0 []]; then
2219 echo "Failed to create subdirectory ./${D}dirname"
2223 # Append '!' to indicate archive
2224 newInputFiles="${D}newInputFiles ${D}{dirname}!"
2225 doCommand "cd ${D}dirname; ${D}AR x ../${D}file"
2228 for subfile in ${D}dirname/*.o* ; do
2229 if [[] -f ${D}subfile []]; then
2231 if [[] -s ${D}subfile []]; then
2232 # FIXME: This should be: is file size > 32 byte, _not_ > 0!
2233 newInputFiles="${D}newInputFiles ${D}subfile"
2237 if [[] ${D}found -eq 0 []]; then
2238 echo "WARNING: there are no files in archive \'${D}file\'"
2242 newInputFiles="${D}{newInputFiles} ${D}file"
2246 inputFiles="${D}newInputFiles"
2248 # Output filename(s).
2250 if [[] -z ${D}outFile []]; then
2252 set outFile ${D}inputFiles; outFile=${D}2
2255 # If it is an archive, remove the '!' and the '_%' suffixes
2258 outFile=\`basnam ${D}outFile _%!\`
2265 outFile=\`basnam ${D}outFile .dll\`
2268 outFile=\`basnam ${D}outFile .DLL\`
2271 outFile=\`basnam ${D}outFile .o\`
2274 outFile=\`basnam ${D}outFile .obj\`
2277 outFile=\`basnam ${D}outFile .a\`
2280 outFile=\`basnam ${D}outFile .lib\`
2285 case ${D}outimpFile in
2287 outimpFile=\`basnam ${D}outimpFile .a\`
2290 outimpFile=\`basnam ${D}outimpFile .lib\`
2295 if [[] -z ${D}outimpFile []]; then
2296 outimpFile=${D}outFile
2298 defFile="${D}{outFile}.def"
2299 arcFile="${D}{outimpFile}.a"
2300 arcFile2="${D}{outimpFile}.lib"
2301 dllFile="${D}outFile"
2302 # Add suffix to dllFile later, first we need a version to use as
2303 # name in .def file.
2305 if [[] ${D}do_backup -ne 0 []] ; then
2306 if [[] -f ${D}arcFile []] ; then
2307 doCommand "mv ${D}arcFile ${D}{outFile}_s.a"
2309 if [[] -f ${D}arcFile2 []] ; then
2310 doCommand "mv ${D}arcFile2 ${D}{outFile}_s.lib"
2314 # Extract public symbols from all the object files.
2315 tmpdefFile=${D}{defFile}_%
2316 rm -f ${D}tmpdefFile
2317 for file in ${D}inputFiles ; do
2322 doCommand "emxexp -u ${D}file >> ${D}tmpdefFile"
2327 # Create the def file.
2329 echo "LIBRARY \`basnam ${D}dllFile\` ${D}library_flags" >> ${D}defFile
2330 dllFile="${D}dllFile.dll"
2331 if [[] -n ${D}description []]; then
2332 echo "DESCRIPTION \"${D}{description}\"" >> ${D}defFile
2334 echo "EXPORTS" >> ${D}defFile
2336 doCommand "cat ${D}tmpdefFile | sort.exe | uniq.exe > ${D}{tmpdefFile}%"
2337 grep -v "^ *;" < ${D}{tmpdefFile}% | grep -v "^ *${D}" >${D}tmpdefFile
2339 # Checks if the export is ok or not.
2340 for word in ${D}exclude_symbols; do
2341 grep -v ${D}word < ${D}tmpdefFile >${D}{tmpdefFile}%
2342 mv ${D}{tmpdefFile}% ${D}tmpdefFile
2346 if [[] ${D}EXPORT_BY_ORDINALS -ne 0 []]; then
2347 sed "=" < ${D}tmpdefFile | \
2351 s/^\([[]0-9[]]\+\)\([[]^;[]]*\)\(;.*\)\?/\2 @\1 NONAME/
2353 ' > ${D}{tmpdefFile}%
2354 grep -v "^ *${D}" < ${D}{tmpdefFile}% > ${D}tmpdefFile
2356 rm -f ${D}{tmpdefFile}%
2358 cat ${D}tmpdefFile >> ${D}defFile
2359 rm -f ${D}tmpdefFile
2361 # Do linking, create implib, and apply lxlite.
2363 for file in ${D}inputFiles ; do
2368 gccCmdl="${D}gccCmdl ${D}file"
2372 doCommand "${D}CC ${D}CFLAGS -Zdll -o ${D}dllFile ${D}defFile ${D}gccCmdl ${D}EXTRA_CFLAGS"
2373 touch "${D}{outFile}.dll"
2375 doCommand "emximp -o ${D}arcFile ${D}defFile"
2376 if [[] ${D}flag_USE_LXLITE -ne 0 []]; then
2378 if [[] ${D}EXPORT_BY_ORDINALS -ne 0 []]; then
2381 doCommand "lxlite -cs -t: -mrn -mln ${D}add_flags ${D}dllFile"
2383 doCommand "emxomf -s -l ${D}arcFile"
2389 dnl ===================== dllar.sh ends here =====================
2392 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_DEPS],
2394 dnl ===================== bk-deps begins here =====================
2399 # This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
2400 # script. It is used to track C/C++ files dependencies in portable way.
2402 # Permission is given to use this file in any way.
2404 DEPSMODE=${DEPSMODE}
2406 DEPSFLAG_GCC="${DEPSFLAG_GCC}"
2408 mkdir -p ${D}DEPSDIR
2410 if test ${D}DEPSMODE = gcc ; then
2411 ${D}* ${D}{DEPSFLAG_GCC}
2413 if test ${D}{status} != 0 ; then
2416 # move created file to the location we want it in:
2417 while test ${D}# -gt 0; do
2431 depfile=\`basename ${D}srcfile | sed -e 's/\..*${D}/.d/g'\`
2432 depobjname=\`echo ${D}depfile |sed -e 's/\.d/.o/g'\`
2433 if test -f ${D}depfile ; then
2434 sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d
2437 depfile=\`basename ${D}objfile | sed -e 's/\..*${D}/.d/g'\`
2438 if test -f ${D}depfile ; then
2439 sed -e "/^${D}objfile/!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d
2449 dnl ===================== bk-deps ends here =====================
2452 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH],
2454 dnl ===================== shared-ld-sh begins here =====================
2456 cat <<EOF >shared-ld-sh
2458 #-----------------------------------------------------------------------------
2459 #-- Name: distrib/mac/shared-ld-sh
2460 #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X
2461 #-- Author: Gilles Depeyrot
2462 #-- Copyright: (c) 2002 Gilles Depeyrot
2463 #-- Licence: any use permitted
2464 #-----------------------------------------------------------------------------
2469 linking_flag="-dynamiclib"
2471 while test ${D}# -gt 0; do
2478 -o|-compatibility_version|-current_version|-framework|-undefined|-install_name)
2479 # collect these options and values
2480 args="${D}{args} ${D}1 ${D}2"
2484 -l*|-L*|-flat_namespace|-headerpad_max_install_names)
2485 # collect these options
2486 args="${D}{args} ${D}1"
2489 -dynamiclib|-bundle)
2490 linking_flag="${D}1"
2494 echo "shared-ld: unhandled option '${D}1'"
2498 *.o | *.a | *.dylib)
2499 # collect object files
2500 objects="${D}{objects} ${D}1"
2504 echo "shared-ld: unhandled argument '${D}1'"
2513 # Link one module containing all the others
2515 if test ${D}{verbose} = 1; then
2516 echo "c++ -r -keep_private_externs -nostdlib ${D}{objects} -o master.${D}${D}.o"
2518 c++ -r -keep_private_externs -nostdlib ${D}{objects} -o master.${D}${D}.o
2520 if test ${D}{status} != 0; then
2525 # Link the shared library from the single module created
2527 if test ${D}{verbose} = 1; then
2528 echo "cc ${D}{linking_flag} master.${D}${D}.o ${D}{args}"
2530 c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}
2532 if test ${D}{status} != 0; then
2537 # Remove intermediate module
2539 rm -f master.${D}${D}.o
2543 dnl ===================== shared-ld-sh ends here =====================
2547 dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
2549 AC_DEFUN(AM_PATH_CPPUNIT,
2552 AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)],
2553 cppunit_config_prefix="$withval", cppunit_config_prefix="")
2554 AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)],
2555 cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
2557 if test x$cppunit_config_exec_prefix != x ; then
2558 cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
2559 if test x${CPPUNIT_CONFIG+set} != xset ; then
2560 CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
2563 if test x$cppunit_config_prefix != x ; then
2564 cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
2565 if test x${CPPUNIT_CONFIG+set} != xset ; then
2566 CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
2570 AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
2571 cppunit_version_min=$1
2573 AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
2575 if test "$CPPUNIT_CONFIG" = "no" ; then
2578 CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
2579 CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
2580 cppunit_version=`$CPPUNIT_CONFIG --version`
2582 cppunit_major_version=`echo $cppunit_version | \
2583 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
2584 cppunit_minor_version=`echo $cppunit_version | \
2585 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
2586 cppunit_micro_version=`echo $cppunit_version | \
2587 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
2589 cppunit_major_min=`echo $cppunit_version_min | \
2590 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
2591 cppunit_minor_min=`echo $cppunit_version_min | \
2592 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
2593 cppunit_micro_min=`echo $cppunit_version_min | \
2594 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
2596 cppunit_version_proper=`expr \
2597 $cppunit_major_version \> $cppunit_major_min \| \
2598 $cppunit_major_version \= $cppunit_major_min \& \
2599 $cppunit_minor_version \> $cppunit_minor_min \| \
2600 $cppunit_major_version \= $cppunit_major_min \& \
2601 $cppunit_minor_version \= $cppunit_minor_min \& \
2602 $cppunit_micro_version \>= $cppunit_micro_min `
2604 if test "$cppunit_version_proper" = "1" ; then
2605 AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
2612 if test "x$no_cppunit" = x ; then
2613 ifelse([$2], , :, [$2])
2617 ifelse([$3], , :, [$3])
2620 AC_SUBST(CPPUNIT_CFLAGS)
2621 AC_SUBST(CPPUNIT_LIBS)