disable version-script on Solaris, it doesn't work
[wxWidgets.git] / aclocal.m4
1 dnl aclocal.m4 generated automatically by aclocal 1.4-p6
2
3 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
4 dnl This file is free software; the Free Software Foundation
5 dnl gives unlimited permission to copy and/or distribute it,
6 dnl with or without modifications, as long as this notice is preserved.
7
8 dnl This program is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
10 dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11 dnl PARTICULAR PURPOSE.
12
13 dnl ---------------------------------------------------------------------------
14 dnl
15 dnl Macros for configure.in for wxWindows by Robert Roebling, Phil Blecker,
16 dnl Vadim Zeitlin and Ron Lee
17 dnl
18 dnl This script is under the wxWindows licence.
19 dnl
20 dnl Version: $Id$
21 dnl ---------------------------------------------------------------------------
22
23 dnl ===========================================================================
24 dnl macros to find the a file in the list of include/lib paths
25 dnl ===========================================================================
26
27 dnl ---------------------------------------------------------------------------
28 dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
29 dnl to the full name of the file that was found or leaves it empty if not found
30 dnl ---------------------------------------------------------------------------
31 AC_DEFUN([WX_PATH_FIND_INCLUDES],
32 [
33 ac_find_includes=
34 for ac_dir in $1 /usr/include;
35   do
36     if test -f "$ac_dir/$2"; then
37       ac_find_includes=$ac_dir
38       break
39     fi
40   done
41 ])
42
43 dnl ---------------------------------------------------------------------------
44 dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries
45 dnl to the full name of the file that was found or leaves it empty if not found
46 dnl ---------------------------------------------------------------------------
47 AC_DEFUN([WX_PATH_FIND_LIBRARIES],
48 [
49 ac_find_libraries=
50 for ac_dir in $1 /usr/lib;
51   do
52     for ac_extension in a so sl dylib; do
53       if test -f "$ac_dir/lib$2.$ac_extension"; then
54         ac_find_libraries=$ac_dir
55         break 2
56       fi
57     done
58   done
59 ])
60
61 dnl ---------------------------------------------------------------------------
62 dnl Path to include, already defined
63 dnl ---------------------------------------------------------------------------
64 AC_DEFUN([WX_INCLUDE_PATH_EXIST],
65 [
66   dnl never add -I/usr/include to the CPPFLAGS
67   if test "x$1" = "x/usr/include"; then
68     ac_path_to_include=""
69   else
70     echo "$2" | grep "\-I$1" > /dev/null
71     result=$?
72     if test $result = 0; then
73       ac_path_to_include=""
74     else
75       ac_path_to_include=" -I$1"
76     fi
77   fi
78 ])
79
80 dnl ---------------------------------------------------------------------------
81 dnl Path to link, already defined
82 dnl ---------------------------------------------------------------------------
83 AC_DEFUN([WX_LINK_PATH_EXIST],
84 [
85   echo "$2" | grep "\-L$1" > /dev/null
86   result=$?
87   if test $result = 0; then
88     ac_path_to_link=""
89   else
90     ac_path_to_link=" -L$1"
91   fi
92 ])
93
94 dnl ===========================================================================
95 dnl C++ features test
96 dnl ===========================================================================
97
98 dnl ---------------------------------------------------------------------------
99 dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
100 dnl or only the old <iostream.h> one - it may be generally assumed that if
101 dnl <iostream> exists, the other "new" headers (without .h) exist too.
102 dnl
103 dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling)
104 dnl ---------------------------------------------------------------------------
105
106 AC_DEFUN([WX_CPP_NEW_HEADERS],
107 [
108   if test "$cross_compiling" = "yes"; then
109     ifelse([$2], , :, [$2])
110   else
111     AC_LANG_SAVE
112     AC_LANG_CPLUSPLUS
113
114     AC_CHECK_HEADERS(iostream)
115
116     if test "$ac_cv_header_iostream" = "yes" ; then
117       ifelse([$1], , :, [$1])
118     else
119       ifelse([$2], , :, [$2])
120     fi
121
122     AC_LANG_RESTORE
123   fi
124 ])
125
126 dnl ---------------------------------------------------------------------------
127 dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
128 dnl
129 dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
130 dnl ---------------------------------------------------------------------------
131
132 AC_DEFUN([WX_CPP_BOOL],
133 [
134   AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
135   [
136     AC_LANG_SAVE
137     AC_LANG_CPLUSPLUS
138
139     AC_TRY_COMPILE(
140       [
141       ],
142       [
143         bool b = true;
144
145         return 0;
146       ],
147       [
148         wx_cv_cpp_bool=yes
149       ],
150       [
151         wx_cv_cpp_bool=no
152       ]
153     )
154
155     AC_LANG_RESTORE
156   ])
157
158   if test "$wx_cv_cpp_bool" = "yes"; then
159     AC_DEFINE(HAVE_BOOL)
160   fi
161 ])
162
163 dnl ---------------------------------------------------------------------------
164 dnl WX_CPP_EXPLICIT checks whether the C++ compiler support the explicit
165 dnl keyword and defines HAVE_EXPLICIT if this is the case
166 dnl ---------------------------------------------------------------------------
167
168 AC_DEFUN([WX_CPP_EXPLICIT],
169 [
170   AC_CACHE_CHECK([if C++ compiler supports the explicit keyword],
171                  wx_cv_explicit,
172   [
173     AC_LANG_SAVE
174     AC_LANG_CPLUSPLUS
175
176     dnl do the test in 2 steps: first check that the compiler knows about the
177     dnl explicit keyword at all and then verify that it really honours it
178     AC_TRY_COMPILE(
179       [
180         class Foo { public: explicit Foo(int) {} };
181       ],
182       [
183         return 0;
184       ],
185       [
186         AC_TRY_COMPILE(
187             [
188                 class Foo { public: explicit Foo(int) {} };
189                 static void TakeFoo(const Foo& foo) { }
190             ],
191             [
192                 TakeFoo(17);
193                 return 0;
194             ],
195             wx_cv_explicit=no,
196             wx_cv_explicit=yes
197         )
198       ],
199       wx_cv_explicit=no
200     )
201
202     AC_LANG_RESTORE
203   ])
204
205   if test "$wx_cv_explicit" = "yes"; then
206     AC_DEFINE(HAVE_EXPLICIT)
207   fi
208 ])
209
210 dnl ---------------------------------------------------------------------------
211 dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
212 dnl ---------------------------------------------------------------------------
213
214 AC_DEFUN([WX_C_BIGENDIAN],
215 [AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian,
216 [ac_cv_c_bigendian=unknown
217 # See if sys/param.h defines the BYTE_ORDER macro.
218 AC_TRY_COMPILE([#include <sys/types.h>
219 #include <sys/param.h>], [
220 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
221  bogus endian macros
222 #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
223 AC_TRY_COMPILE([#include <sys/types.h>
224 #include <sys/param.h>], [
225 #if BYTE_ORDER != BIG_ENDIAN
226  not big endian
227 #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
228 if test $ac_cv_c_bigendian = unknown; then
229 AC_TRY_RUN([main () {
230   /* Are we little or big endian?  From Harbison&Steele.  */
231   union
232   {
233     long l;
234     char c[sizeof (long)];
235   } u;
236   u.l = 1;
237   exit (u.c[sizeof (long) - 1] == 1);
238 }], [ac_cv_c_bigendian=no], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=unknown])
239 fi])
240 if test $ac_cv_c_bigendian = unknown; then
241   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])
242 fi
243 if test $ac_cv_c_bigendian = yes; then
244   AC_DEFINE(WORDS_BIGENDIAN)
245 fi
246 ])
247
248 dnl ---------------------------------------------------------------------------
249 dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
250 dnl ---------------------------------------------------------------------------
251
252 AC_DEFUN([WX_ARG_CACHE_INIT],
253         [
254           wx_arg_cache_file="configarg.cache"
255           echo "loading argument cache $wx_arg_cache_file"
256           rm -f ${wx_arg_cache_file}.tmp
257           touch ${wx_arg_cache_file}.tmp
258           touch ${wx_arg_cache_file}
259         ])
260
261 AC_DEFUN([WX_ARG_CACHE_FLUSH],
262         [
263           echo "saving argument cache $wx_arg_cache_file"
264           mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
265         ])
266
267 dnl this macro checks for a three-valued command line --with argument:
268 dnl   possible arguments are 'yes', 'no', 'sys', or 'builtin'
269 dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
270 AC_DEFUN([WX_ARG_SYS_WITH],
271         [
272           AC_MSG_CHECKING([for --with-$1])
273           no_cache=0
274           AC_ARG_WITH($1, [$2],
275                       [
276                         if test "$withval" = yes; then
277                           ac_cv_use_$1='$3=yes'
278                         elif test "$withval" = no; then
279                           ac_cv_use_$1='$3=no'
280                         elif test "$withval" = sys; then
281                           ac_cv_use_$1='$3=sys'
282                         elif test "$withval" = builtin; then
283                           ac_cv_use_$1='$3=builtin'
284                         else
285                           AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
286                         fi
287                       ],
288                       [
289                         LINE=`grep "$3" ${wx_arg_cache_file}`
290                         if test "x$LINE" != x ; then
291                           eval "DEFAULT_$LINE"
292                         else
293                           no_cache=1
294                         fi
295
296                         ac_cv_use_$1='$3='$DEFAULT_$3
297                       ])
298
299           eval "$ac_cv_use_$1"
300           if test "$no_cache" != 1; then
301             echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
302           fi
303
304           if test "$$3" = yes; then
305             AC_MSG_RESULT(yes)
306           elif test "$$3" = no; then
307             AC_MSG_RESULT(no)
308           elif test "$$3" = sys; then
309             AC_MSG_RESULT([system version])
310           elif test "$$3" = builtin; then
311             AC_MSG_RESULT([builtin version])
312           else
313             AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
314           fi
315         ])
316
317 dnl this macro checks for a command line argument and caches the result
318 dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
319 AC_DEFUN([WX_ARG_WITH],
320         [
321           AC_MSG_CHECKING([for --with-$1])
322           no_cache=0
323           AC_ARG_WITH($1, [$2],
324                       [
325                         if test "$withval" = yes; then
326                           ac_cv_use_$1='$3=yes'
327                         else
328                           ac_cv_use_$1='$3=no'
329                         fi
330                       ],
331                       [
332                         LINE=`grep "$3" ${wx_arg_cache_file}`
333                         if test "x$LINE" != x ; then
334                           eval "DEFAULT_$LINE"
335                         else
336                           no_cache=1
337                         fi
338
339                         ac_cv_use_$1='$3='$DEFAULT_$3
340                       ])
341
342           eval "$ac_cv_use_$1"
343           if test "$no_cache" != 1; then
344             echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
345           fi
346
347           if test "$$3" = yes; then
348             AC_MSG_RESULT(yes)
349           else
350             AC_MSG_RESULT(no)
351           fi
352         ])
353
354 dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
355 dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name, enablestring)
356 dnl
357 dnl enablestring is a hack and allows to show "checking for --disable-foo"
358 dnl message when running configure instead of the default "checking for
359 dnl --enable-foo" one whih is useful for the options enabled by default
360 AC_DEFUN([WX_ARG_ENABLE],
361         [
362           enablestring=$4
363           AC_MSG_CHECKING([for --${enablestring:-enable}-$1])
364           no_cache=0
365           AC_ARG_ENABLE($1, [$2],
366                         [
367                           if test "$enableval" = yes; then
368                             ac_cv_use_$1='$3=yes'
369                           else
370                             ac_cv_use_$1='$3=no'
371                           fi
372                         ],
373                         [
374                           LINE=`grep "$3" ${wx_arg_cache_file}`
375                           if test "x$LINE" != x ; then
376                             eval "DEFAULT_$LINE"
377                           else
378                             no_cache=1
379                           fi
380
381                           ac_cv_use_$1='$3='$DEFAULT_$3
382                         ])
383
384           eval "$ac_cv_use_$1"
385           if test "$no_cache" != 1; then
386             echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
387           fi
388
389           if test "$$3" = yes; then
390             AC_MSG_RESULT(yes)
391           else
392             AC_MSG_RESULT(no)
393           fi
394         ])
395
396
397 dnl ===========================================================================
398 dnl Linker features test
399 dnl ===========================================================================
400
401 dnl ---------------------------------------------------------------------------
402 dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
403 dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
404 dnl version script file named versionfile
405 dnl
406 dnl call WX_VERSIONED_SYMBOLS(versionfile)
407 dnl ---------------------------------------------------------------------------
408 AC_DEFUN([WX_VERSIONED_SYMBOLS],
409 [
410   found_versioning=no
411
412   dnl FIXME - doesn't work, Solaris linker doesn't accept wildcards
413   dnl         in the script.
414   dnl dnl Check for known non-gcc cases:
415   dnl case "${host}" in
416   dnl   *-*-solaris2* )
417   dnl     if test "x$GCC" != "xyes" ; then
418   dnl         LDFLAGS_VERSIONING="-M $1"
419   dnl         found_versioning=yes
420   dnl     fi
421   dnl   ;;
422   dnl esac
423   
424   dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
425   if test $found_versioning = no ; then
426       AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
427       [
428         echo "VER_1 { *; };" >conftest.sym
429         echo "int main() { return 0; }" >conftest.cpp
430   
431         if AC_TRY_COMMAND([
432                 $CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
433                 -Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
434           if test -s conftest.stderr ; then
435               wx_cv_version_script=no
436           else
437               wx_cv_version_script=yes
438           fi
439         else
440           wx_cv_version_script=no
441         fi
442         rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
443       ])
444       if test $wx_cv_version_script = yes ; then
445         LDFLAGS_VERSIONING="-Wl,--version-script,$1"
446       fi
447   fi
448 ])
449
450
451 dnl ===========================================================================
452 dnl "3rd party" macros included here because they are not widely available
453 dnl ===========================================================================
454
455 dnl ---------------------------------------------------------------------------
456 dnl test for availability of iconv()
457 dnl ---------------------------------------------------------------------------
458
459 dnl From Bruno Haible.
460
461 AC_DEFUN([AM_ICONV],
462 [
463   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
464   dnl those with the standalone portable GNU libiconv installed).
465
466   AC_ARG_WITH([libiconv-prefix],
467 [  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib], [
468     for dir in `echo "$withval" | tr : ' '`; do
469       if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
470       if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
471     done
472    ])
473
474   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
475     am_cv_func_iconv="no, consider installing GNU libiconv"
476     am_cv_lib_iconv=no
477     AC_TRY_LINK([#include <stdlib.h>
478 #include <iconv.h>],
479       [iconv_t cd = iconv_open("","");
480        iconv(cd,NULL,NULL,NULL,NULL);
481        iconv_close(cd);],
482       am_cv_func_iconv=yes)
483     if test "$am_cv_func_iconv" != yes; then
484       am_save_LIBS="$LIBS"
485       LIBS="$LIBS -liconv"
486       AC_TRY_LINK([#include <stdlib.h>
487 #include <iconv.h>],
488         [iconv_t cd = iconv_open("","");
489          iconv(cd,NULL,NULL,NULL,NULL);
490          iconv_close(cd);],
491         am_cv_lib_iconv=yes
492         am_cv_func_iconv=yes)
493       LIBS="$am_save_LIBS"
494     fi
495   ])
496   if test "$am_cv_func_iconv" = yes; then
497     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
498     AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
499       AC_TRY_COMPILE([
500 #include <stdlib.h>
501 #include <iconv.h>
502 extern
503 #ifdef __cplusplus
504 "C"
505 #endif
506 #if defined(__STDC__) || defined(__cplusplus)
507 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
508 #else
509 size_t iconv();
510 #endif
511         ],
512         [],
513         wx_cv_func_iconv_const="no",
514         wx_cv_func_iconv_const="yes"
515       )
516     )
517
518     iconv_const=
519     if test "x$wx_cv_func_iconv_const" = "xyes"; then
520         iconv_const="const"
521     fi
522
523     AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
524       [Define as const if the declaration of iconv() needs const.])
525   fi
526   LIBICONV=
527   if test "$am_cv_lib_iconv" = yes; then
528     LIBICONV="-liconv"
529   fi
530   AC_SUBST(LIBICONV)
531 ])
532
533 dnl ---------------------------------------------------------------------------
534 dnl AC_SYS_LARGEFILE (partly based on the code from autoconf 2.5x)
535 dnl ---------------------------------------------------------------------------
536
537 dnl WX_SYS_LARGEFILE_TEST
538 dnl
539 dnl NB: original autoconf test was checking if compiler supported 6 bit off_t
540 dnl     arithmetic properly but this failed miserably with gcc under Linux
541 dnl     whereas the system still supports 64 bit files, so now simply check
542 dnl     that off_t is big enough
543 define(WX_SYS_LARGEFILE_TEST,
544 [typedef struct {
545     unsigned int field: sizeof(off_t) == 8;
546 } wxlf;
547 ])
548
549
550 dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR)
551 define(WX_SYS_LARGEFILE_MACRO_VALUE,
552 [
553     AC_CACHE_CHECK([for $1 value needed for large files], [$3],
554         [
555           AC_TRY_COMPILE([#define $1 $2
556                           #include <sys/types.h>],
557                          WX_SYS_LARGEFILE_TEST,
558                          [$3=$2],
559                          [$3=no])
560         ]
561     )
562
563     if test "$$3" != no; then
564         wx_largefile=yes
565         AC_DEFINE_UNQUOTED([$1], [$$3])
566     fi
567 ])
568
569
570 dnl AC_SYS_LARGEFILE
571 dnl ----------------
572 dnl By default, many hosts won't let programs access large files;
573 dnl one must use special compiler options to get large-file access to work.
574 dnl For more details about this brain damage please see:
575 dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
576 AC_DEFUN([AC_SYS_LARGEFILE],
577 [AC_ARG_ENABLE(largefile,
578                [  --disable-largefile     omit support for large files])
579 if test "$enable_largefile" != no; then
580     dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ...
581     dnl _LARGE_FILES -- for AIX
582     wx_largefile=no
583     WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
584     if test "x$wx_largefile" != "xyes"; then
585         WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
586     fi
587
588     AC_MSG_CHECKING(if large file support is available)
589     if test "x$wx_largefile" = "xyes"; then
590         AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
591     fi
592     AC_MSG_RESULT($wx_largefile)
593 fi
594 ])
595
596 # Configure paths for GTK+
597 # Owen Taylor     1997-2001
598
599 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
600 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, 
601 dnl pass to pkg-config
602 dnl
603 AC_DEFUN(AM_PATH_GTK_2_0,
604 [dnl 
605 dnl Get the cflags and libraries from pkg-config
606 dnl
607 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       do not try to compile and run a test GTK+ program],
608                     , enable_gtktest=yes)
609
610   pkg_config_args=gtk+-2.0
611   for module in . $4
612   do
613       case "$module" in
614          gthread) 
615              pkg_config_args="$pkg_config_args gthread-2.0"
616          ;;
617       esac
618   done
619
620   no_gtk=""
621
622   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
623
624   if test x$PKG_CONFIG != xno ; then
625     if pkg-config --atleast-pkgconfig-version 0.7 ; then
626       :
627     else
628       echo *** pkg-config too old; version 0.7 or better required.
629       no_gtk=yes
630       PKG_CONFIG=no
631     fi
632   else
633     no_gtk=yes
634   fi
635
636   min_gtk_version=ifelse([$1], ,2.0.0,$1)
637   AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
638
639   if test x$PKG_CONFIG != xno ; then
640     ## don't try to run the test against uninstalled libtool libs
641     if $PKG_CONFIG --uninstalled $pkg_config_args; then
642           echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
643           enable_gtktest=no
644     fi
645
646     if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
647           :
648     else
649           no_gtk=yes
650     fi
651   fi
652
653   if test x"$no_gtk" = x ; then
654     GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
655     GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
656     gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
657            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
658     gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
659            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
660     gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
661            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
662     if test "x$enable_gtktest" = "xyes" ; then
663       ac_save_CFLAGS="$CFLAGS"
664       ac_save_LIBS="$LIBS"
665       CFLAGS="$CFLAGS $GTK_CFLAGS"
666       LIBS="$GTK_LIBS $LIBS"
667 dnl
668 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
669 dnl checks the results of pkg-config to some extent)
670 dnl
671       rm -f conf.gtktest
672       AC_TRY_RUN([
673 #include <gtk/gtk.h>
674 #include <stdio.h>
675 #include <stdlib.h>
676
677 int 
678 main ()
679 {
680   int major, minor, micro;
681   char *tmp_version;
682
683   system ("touch conf.gtktest");
684
685   /* HP/UX 9 (%@#!) writes to sscanf strings */
686   tmp_version = g_strdup("$min_gtk_version");
687   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
688      printf("%s, bad version string\n", "$min_gtk_version");
689      exit(1);
690    }
691
692   if ((gtk_major_version != $gtk_config_major_version) ||
693       (gtk_minor_version != $gtk_config_minor_version) ||
694       (gtk_micro_version != $gtk_config_micro_version))
695     {
696       printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
697              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
698              gtk_major_version, gtk_minor_version, gtk_micro_version);
699       printf ("*** was found! If pkg-config was correct, then it is best\n");
700       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
701       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
702       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
703       printf("*** required on your system.\n");
704       printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
705       printf("*** to point to the correct configuration files\n");
706     } 
707   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
708            (gtk_minor_version != GTK_MINOR_VERSION) ||
709            (gtk_micro_version != GTK_MICRO_VERSION))
710     {
711       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
712              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
713       printf("*** library (version %d.%d.%d)\n",
714              gtk_major_version, gtk_minor_version, gtk_micro_version);
715     }
716   else
717     {
718       if ((gtk_major_version > major) ||
719         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
720         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
721       {
722         return 0;
723        }
724      else
725       {
726         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
727                gtk_major_version, gtk_minor_version, gtk_micro_version);
728         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
729                major, minor, micro);
730         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
731         printf("***\n");
732         printf("*** If you have already installed a sufficiently new version, this error\n");
733         printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
734         printf("*** being found. The easiest way to fix this is to remove the old version\n");
735         printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
736         printf("*** correct copy of pkg-config. (In this case, you will have to\n");
737         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
738         printf("*** so that the correct libraries are found at run-time))\n");
739       }
740     }
741   return 1;
742 }
743 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
744        CFLAGS="$ac_save_CFLAGS"
745        LIBS="$ac_save_LIBS"
746      fi
747   fi
748   if test "x$no_gtk" = x ; then
749      AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
750      ifelse([$2], , :, [$2])     
751   else
752      AC_MSG_RESULT(no)
753      if test "$PKG_CONFIG" = "no" ; then
754        echo "*** A new enough version of pkg-config was not found."
755        echo "*** See http://pkgconfig.sourceforge.net"
756      else
757        if test -f conf.gtktest ; then
758         :
759        else
760           echo "*** Could not run GTK+ test program, checking why..."
761           ac_save_CFLAGS="$CFLAGS"
762           ac_save_LIBS="$LIBS"
763           CFLAGS="$CFLAGS $GTK_CFLAGS"
764           LIBS="$LIBS $GTK_LIBS"
765           AC_TRY_LINK([
766 #include <gtk/gtk.h>
767 #include <stdio.h>
768 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
769         [ echo "*** The test program compiled, but did not run. This usually means"
770           echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
771           echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
772           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
773           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
774           echo "*** is required on your system"
775           echo "***"
776           echo "*** If you have an old version installed, it is best to remove it, although"
777           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
778         [ echo "*** The test program failed to compile or link. See the file config.log for the"
779           echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
780           CFLAGS="$ac_save_CFLAGS"
781           LIBS="$ac_save_LIBS"
782        fi
783      fi
784      GTK_CFLAGS=""
785      GTK_LIBS=""
786      ifelse([$3], , :, [$3])
787   fi
788   AC_SUBST(GTK_CFLAGS)
789   AC_SUBST(GTK_LIBS)
790   rm -f conf.gtktest
791 ])
792
793 # Configure paths for GTK+
794 # Owen Taylor     97-11-3
795
796 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
797 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
798 dnl
799 AC_DEFUN(AM_PATH_GTK,
800 [dnl 
801 dnl Get the cflags and libraries from the gtk-config script
802 dnl
803 AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
804             gtk_config_prefix="$withval", gtk_config_prefix="")
805 AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
806             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
807 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
808                     , enable_gtktest=yes)
809
810   for module in . $4
811   do
812       case "$module" in
813          gthread) 
814              gtk_config_args="$gtk_config_args gthread"
815          ;;
816       esac
817   done
818
819   if test x$gtk_config_exec_prefix != x ; then
820      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
821      if test x${GTK_CONFIG+set} != xset ; then
822         GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
823      fi
824   fi
825   if test x$gtk_config_prefix != x ; then
826      gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
827      if test x${GTK_CONFIG+set} != xset ; then
828         GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
829      fi
830   fi
831
832   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
833   min_gtk_version=ifelse([$1], ,0.99.7,$1)
834   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
835   no_gtk=""
836   if test "$GTK_CONFIG" = "no" ; then
837     no_gtk=yes
838   else
839     GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
840     GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
841     gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
842            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
843     gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
844            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
845     gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
846            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
847     if test "x$enable_gtktest" = "xyes" ; then
848       ac_save_CFLAGS="$CFLAGS"
849       ac_save_LIBS="$LIBS"
850       CFLAGS="$CFLAGS $GTK_CFLAGS"
851       LIBS="$GTK_LIBS $LIBS"
852 dnl
853 dnl Now check if the installed GTK is sufficiently new. (Also sanity
854 dnl checks the results of gtk-config to some extent
855 dnl
856       rm -f conf.gtktest
857       AC_TRY_RUN([
858 #include <gtk/gtk.h>
859 #include <stdio.h>
860 #include <stdlib.h>
861
862 int 
863 main ()
864 {
865   int major, minor, micro;
866   char *tmp_version;
867
868   system ("touch conf.gtktest");
869
870   /* HP/UX 9 (%@#!) writes to sscanf strings */
871   tmp_version = g_strdup("$min_gtk_version");
872   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
873      printf("%s, bad version string\n", "$min_gtk_version");
874      exit(1);
875    }
876
877   if ((gtk_major_version != $gtk_config_major_version) ||
878       (gtk_minor_version != $gtk_config_minor_version) ||
879       (gtk_micro_version != $gtk_config_micro_version))
880     {
881       printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
882              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
883              gtk_major_version, gtk_minor_version, gtk_micro_version);
884       printf ("*** was found! If gtk-config was correct, then it is best\n");
885       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
886       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
887       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
888       printf("*** required on your system.\n");
889       printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
890       printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
891       printf("*** before re-running configure\n");
892     } 
893 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
894   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
895            (gtk_minor_version != GTK_MINOR_VERSION) ||
896            (gtk_micro_version != GTK_MICRO_VERSION))
897     {
898       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
899              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
900       printf("*** library (version %d.%d.%d)\n",
901              gtk_major_version, gtk_minor_version, gtk_micro_version);
902     }
903 #endif /* defined (GTK_MAJOR_VERSION) ... */
904   else
905     {
906       if ((gtk_major_version > major) ||
907         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
908         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
909       {
910         return 0;
911        }
912      else
913       {
914         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
915                gtk_major_version, gtk_minor_version, gtk_micro_version);
916         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
917                major, minor, micro);
918         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
919         printf("***\n");
920         printf("*** If you have already installed a sufficiently new version, this error\n");
921         printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
922         printf("*** being found. The easiest way to fix this is to remove the old version\n");
923         printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
924         printf("*** correct copy of gtk-config. (In this case, you will have to\n");
925         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
926         printf("*** so that the correct libraries are found at run-time))\n");
927       }
928     }
929   return 1;
930 }
931 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
932        CFLAGS="$ac_save_CFLAGS"
933        LIBS="$ac_save_LIBS"
934      fi
935   fi
936   if test "x$no_gtk" = x ; then
937      AC_MSG_RESULT(yes)
938      ifelse([$2], , :, [$2])     
939   else
940      AC_MSG_RESULT(no)
941      if test "$GTK_CONFIG" = "no" ; then
942        echo "*** The gtk-config script installed by GTK could not be found"
943        echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
944        echo "*** your path, or set the GTK_CONFIG environment variable to the"
945        echo "*** full path to gtk-config."
946      else
947        if test -f conf.gtktest ; then
948         :
949        else
950           echo "*** Could not run GTK test program, checking why..."
951           CFLAGS="$CFLAGS $GTK_CFLAGS"
952           LIBS="$LIBS $GTK_LIBS"
953           AC_TRY_LINK([
954 #include <gtk/gtk.h>
955 #include <stdio.h>
956 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
957         [ echo "*** The test program compiled, but did not run. This usually means"
958           echo "*** that the run-time linker is not finding GTK or finding the wrong"
959           echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
960           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
961           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
962           echo "*** is required on your system"
963           echo "***"
964           echo "*** If you have an old version installed, it is best to remove it, although"
965           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
966           echo "***"
967           echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
968           echo "*** came with the system with the command"
969           echo "***"
970           echo "***    rpm --erase --nodeps gtk gtk-devel" ],
971         [ echo "*** The test program failed to compile or link. See the file config.log for the"
972           echo "*** exact error that occured. This usually means GTK was incorrectly installed"
973           echo "*** or that you have moved GTK since it was installed. In the latter case, you"
974           echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
975           CFLAGS="$ac_save_CFLAGS"
976           LIBS="$ac_save_LIBS"
977        fi
978      fi
979      GTK_CFLAGS=""
980      GTK_LIBS=""
981      ifelse([$3], , :, [$3])
982   fi
983   AC_SUBST(GTK_CFLAGS)
984   AC_SUBST(GTK_LIBS)
985   rm -f conf.gtktest
986 ])
987
988
989 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
990 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
991 dnl also defines GSTUFF_PKG_ERRORS on error
992 AC_DEFUN(PKG_CHECK_MODULES, [
993   succeeded=no
994
995   if test -z "$PKG_CONFIG"; then
996     AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
997   fi
998
999   if test "$PKG_CONFIG" = "no" ; then
1000      echo "*** The pkg-config script could not be found. Make sure it is"
1001      echo "*** in your path, or set the PKG_CONFIG environment variable"
1002      echo "*** to the full path to pkg-config."
1003      echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
1004   else
1005      PKG_CONFIG_MIN_VERSION=0.9.0
1006      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1007         AC_MSG_CHECKING(for $2)
1008
1009         if $PKG_CONFIG --exists "$2" ; then
1010             AC_MSG_RESULT(yes)
1011             succeeded=yes
1012
1013             AC_MSG_CHECKING($1_CFLAGS)
1014             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
1015             AC_MSG_RESULT($$1_CFLAGS)
1016
1017             AC_MSG_CHECKING($1_LIBS)
1018             $1_LIBS=`$PKG_CONFIG --libs "$2"`
1019             AC_MSG_RESULT($$1_LIBS)
1020         else
1021             $1_CFLAGS=""
1022             $1_LIBS=""
1023             ## If we have a custom action on failure, don't print errors, but 
1024             ## do set a variable so people can do so.
1025             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1026             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1027         fi
1028
1029         AC_SUBST($1_CFLAGS)
1030         AC_SUBST($1_LIBS)
1031      else
1032         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1033         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1034      fi
1035   fi
1036
1037   if test $succeeded = yes; then
1038      ifelse([$3], , :, [$3])
1039   else
1040      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])
1041   fi
1042 ])
1043
1044
1045