1 dnl written by Rob Savoye <rob@cygnus.com> for Cygnus Support
2 dnl major rewriting for Tcl 7.5 by Don Libes <libes@nist.gov>
4 sinclude(acx_configure_dir.m4)
6 dnl gdb/configure.in uses BFD_NEED_DECLARATION, so get its definition.
7 sinclude(../bfd/bfd.m4)
9 dnl This gets the standard macros
10 sinclude(../config/acinclude.m4)
12 dnl This gets autoconf bugfixes
13 sinclude(../config/override.m4)
15 sinclude(../config/gettext-sister.m4)
17 dnl For AC_LIB_HAVE_LINKFLAGS.
18 sinclude(../config/lib-ld.m4)
19 sinclude(../config/lib-prefix.m4)
20 sinclude(../config/lib-link.m4)
22 dnl For ACX_PKGVERSION and ACX_BUGURL.
23 sinclude(../config/acx.m4)
25 dnl for TCL definitions
26 sinclude(../config/tcl.m4)
28 dnl For dependency tracking macros.
29 sinclude([../config/depstand.m4])
31 dnl For AM_LC_MESSAGES
32 sinclude([../config/lcmessage.m4])
34 dnl For AM_LANGINFO_CODESET.
35 sinclude([../config/codeset.m4])
37 sinclude([../config/zlib.m4])
39 ## ----------------------------------------- ##
40 ## ANSIfy the C compiler whenever possible. ##
41 ## From Franc,ois Pinard ##
42 ## ----------------------------------------- ##
44 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2008, 2009
45 # Free Software Foundation, Inc.
47 # This program is free software; you can redistribute it and/or modify
48 # it under the terms of the GNU General Public License as published by
49 # the Free Software Foundation; either version 2, or (at your option)
52 # This program is distributed in the hope that it will be useful,
53 # but WITHOUT ANY WARRANTY; without even the implied warranty of
54 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55 # GNU General Public License for more details.
57 # You should have received a copy of the GNU General Public License
58 # along with this program; if not, see <http://www.gnu.org/licenses/>.
62 # @defmac AC_PROG_CC_STDC
63 # @maindex PROG_CC_STDC
65 # If the C compiler in not in ANSI C mode by default, try to add an option
66 # to output variable @code{CC} to make it so. This macro tries various
67 # options that select ANSI C on some system or another. It considers the
68 # compiler to be in ANSI C mode if it handles function prototypes correctly.
70 # If you use this macro, you should check after calling it whether the C
71 # compiler has been set to accept ANSI C; if not, the shell variable
72 # @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
73 # code in ANSI C, you can make an un-ANSIfied copy of it by using the
74 # program @code{ansi2knr}, which comes with Ghostscript.
77 AC_DEFUN([AM_PROG_CC_STDC],
78 [AC_REQUIRE([AC_PROG_CC])
79 AC_BEFORE([$0], [AC_C_INLINE])
80 AC_BEFORE([$0], [AC_C_CONST])
81 dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
82 dnl a magic option to avoid problems with ANSI preprocessor commands
84 dnl FIXME: can't do this because then AC_AIX won't work due to a
85 dnl circular dependency.
86 dnl AC_BEFORE([$0], [AC_PROG_CPP])
87 AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
88 AC_CACHE_VAL(am_cv_prog_cc_stdc,
89 [am_cv_prog_cc_stdc=no
91 # Don't try gcc -ansi; that turns off useful extensions and
92 # breaks some systems' header files.
94 # Ultrix and OSF/1 -std1
95 # HP-UX 10.20 and later -Ae
96 # HP-UX older versions -Aa -D_HPUX_SOURCE
97 # SVR4 -Xc -D__EXTENSIONS__
98 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
100 CC="$ac_save_CC $ac_arg"
104 #include <sys/types.h>
105 #include <sys/stat.h>
106 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
107 struct buf { int x; };
108 FILE * (*rcsopen) (struct buf *, struct stat *, int);
109 static char *e (p, i)
115 static char *f (char * (*g) (char **, int), char **p, ...)
120 s = g (p, va_arg (v,int));
124 int test (int i, double x);
125 struct s1 {int (*f) (int a);};
126 struct s2 {int (*f) (double a);};
127 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
131 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
133 [am_cv_prog_cc_stdc="$ac_arg"; break])
137 if test -z "$am_cv_prog_cc_stdc"; then
138 AC_MSG_RESULT([none needed])
140 AC_MSG_RESULT([$am_cv_prog_cc_stdc])
142 case "x$am_cv_prog_cc_stdc" in
144 *) CC="$CC $am_cv_prog_cc_stdc" ;;
148 dnl Originally from Bruno Haible, but with some modifications
149 dnl for the GDB project.
153 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
154 dnl those with the standalone portable GNU libiconv installed).
156 AC_ARG_WITH([libiconv-prefix],
157 AS_HELP_STRING([--with-libiconv-prefix=DIR], [search for libiconv in DIR/include and DIR/lib]), [
158 for dir in `echo "$withval" | tr : ' '`; do
159 if test -d $dir/include; then LIBICONV_INCLUDE="-I$dir/include"; fi
160 if test -d $dir/lib; then LIBICONV_LIBDIR="-L$dir/lib"; fi
164 BUILD_LIBICONV_LIBDIRS="../libiconv/lib/.libs ../libiconv/lib/_libs"
165 BUILD_LIBICONV_INCLUDE="-I../libiconv/include"
167 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
168 am_cv_func_iconv="no, consider installing GNU libiconv"
170 am_cv_use_build_libiconv=no
171 am_cv_build_libiconv_path=
173 # If libiconv is part of the build tree, then try using it over
175 if test -d ../libiconv; then
176 for lib_dir in $BUILD_LIBICONV_LIBDIRS; do
178 am_save_CPPFLAGS="$CPPFLAGS"
179 LIBS="$LIBS $lib_dir/libiconv.a"
180 CPPFLAGS="$CPPFLAGS $BUILD_LIBICONV_INCLUDE"
181 AC_TRY_LINK([#include <stdlib.h>
183 [iconv_t cd = iconv_open("","");
184 iconv(cd,NULL,NULL,NULL,NULL);
186 am_cv_use_build_libiconv=yes
187 am_cv_build_libiconv_path=$lib_dir/libiconv.a
189 am_cv_func_iconv=yes)
191 CPPFLAGS="$am_save_CPPFLAGS"
192 if test "$am_cv_use_build_libiconv" = "yes"; then
198 # Next, try to find iconv in libc.
199 if test "$am_cv_func_iconv" != yes; then
200 AC_TRY_LINK([#include <stdlib.h>
202 [iconv_t cd = iconv_open("","");
203 iconv(cd,NULL,NULL,NULL,NULL);
205 am_cv_func_iconv=yes)
208 # If iconv was not in libc, try -liconv. In this case, arrange to
209 # look in the libiconv prefix, if it was specified by the user.
210 if test "$am_cv_func_iconv" != yes; then
211 am_save_CPPFLAGS="$CPPFLAGS"
213 if test -n "$LIBICONV_INCLUDE"; then
214 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
215 LIBS="$LIBS $LIBICONV_LIBDIR"
218 AC_TRY_LINK([#include <stdlib.h>
220 [iconv_t cd = iconv_open("","");
221 iconv(cd,NULL,NULL,NULL,NULL);
224 am_cv_func_iconv=yes)
226 CPPFLAGS="$am_save_CPPFLAGS"
230 # Set the various flags based on the cache variables. We can't rely
231 # on the flags to remain set from the above code, due to caching.
233 if test "$am_cv_lib_iconv" = yes; then
239 if test "$am_cv_use_build_libiconv" = yes; then
240 LIBICONV="$am_cv_build_libiconv_path"
242 LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
244 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
245 LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
247 if test "$am_cv_func_iconv" = yes; then
248 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
249 AC_MSG_CHECKING([for iconv declaration])
250 AC_CACHE_VAL(am_cv_proto_iconv, [
258 #if defined(__STDC__) || defined(__cplusplus)
259 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
263 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
264 am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
265 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
266 AC_MSG_RESULT([$]{ac_t:-
267 }[$]am_cv_proto_iconv)
268 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
269 [Define as const if the declaration of iconv() needs const.])
273 dnl written by Guido Draheim <guidod@gmx.de>, original by Alexandre Oliva
274 dnl Version 1.3 (2001/03/02)
275 dnl source http://www.gnu.org/software/ac-archive/Miscellaneous/ac_define_dir.html
277 AC_DEFUN([AC_DEFINE_DIR], [
278 test "x$prefix" = xNONE && prefix="$ac_default_prefix"
279 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
280 ac_define_dir=`eval echo [$]$2`
281 ac_define_dir=`eval echo [$]ac_define_dir`
283 AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
284 AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
287 dnl See whether we need a declaration for a function.
288 dnl The result is highly dependent on the INCLUDES passed in, so make sure
289 dnl to use a different cache variable name in this macro if it is invoked
290 dnl in a different context somewhere else.
291 dnl gcc_AC_CHECK_DECL(SYMBOL,
292 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
293 AC_DEFUN([gcc_AC_CHECK_DECL],
294 [AC_MSG_CHECKING([whether $1 is declared])
295 AC_CACHE_VAL(gcc_cv_have_decl_$1,
296 [AC_TRY_COMPILE([$4],
298 char *(*pfn) = (char *(*)) $1 ;
299 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
300 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
301 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
303 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
307 dnl Check multiple functions to see whether each needs a declaration.
308 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
309 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
310 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
311 AC_DEFUN([gcc_AC_CHECK_DECLS],
315 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
317 gcc_AC_CHECK_DECL($ac_func,
318 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
319 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
320 dnl It is possible that the include files passed in here are local headers
321 dnl which supply a backup declaration for the relevant prototype based on
322 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
323 dnl will always return success. E.g. see libiberty.h's handling of
324 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
325 dnl 1 so that any local headers used do not provide their own prototype
326 dnl during this test.
328 #define $ac_tr_decl 1
332 dnl Automatically generate config.h entries via autoheader.
334 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
335 [AC_DEFINE([HAVE_DECL_\&], 1,
336 [Define to 1 if we found this declaration otherwise define to 0.])])dnl
340 dnl Find the location of the private Tcl headers
341 dnl When Tcl is installed, this is TCL_INCLUDE_SPEC/tcl-private/generic
342 dnl When Tcl is in the build tree, this is not needed.
344 dnl Note: you must use first use SC_LOAD_TCLCONFIG!
345 AC_DEFUN([CY_AC_TCL_PRIVATE_HEADERS], [
346 AC_MSG_CHECKING([for Tcl private headers])
348 dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
349 if test -f ${dir}/tclInt.h ; then
353 if test x"${private_dir}" = x; then
354 AC_ERROR(could not find private Tcl headers)
356 TCL_PRIVATE_INCLUDE="-I${private_dir}"
357 AC_MSG_RESULT(${private_dir})
361 dnl Find the location of the private Tk headers
362 dnl When Tk is installed, this is TK_INCLUDE_SPEC/tk-private/generic
363 dnl When Tk is in the build tree, this not needed.
365 dnl Note: you must first use SC_LOAD_TKCONFIG
366 AC_DEFUN([CY_AC_TK_PRIVATE_HEADERS], [
367 AC_MSG_CHECKING([for Tk private headers])
369 dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
370 if test -f ${dir}/tkInt.h; then
374 if test x"${private_dir}" = x; then
375 AC_ERROR(could not find Tk private headers)
377 TK_PRIVATE_INCLUDE="-I${private_dir}"
378 AC_MSG_RESULT(${private_dir})
382 dnl GDB_AC_DEFINE_RELOCATABLE([VARIABLE], [ARG-NAME], [SHELL-VARIABLE])
383 dnl For use in processing directory values for --with-foo.
384 dnl If the path in SHELL_VARIABLE is relative to the prefix, then the
385 dnl result is relocatable, then this will define the C macro
386 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
387 AC_DEFUN([GDB_AC_DEFINE_RELOCATABLE], [
388 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
389 if test "x$prefix" = xNONE; then
390 test_prefix=/usr/local
395 test_prefix=$exec_prefix
399 "${test_prefix}"|"${test_prefix}/"*|\
400 '${exec_prefix}'|'${exec_prefix}/'*)
404 AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
407 dnl GDB_AC_WITH_DIR([VARIABLE], [ARG-NAME], [HELP], [DEFAULT])
408 dnl Add a new --with option that defines a directory.
409 dnl The result is stored in VARIABLE. AC_DEFINE_DIR is called
410 dnl on this variable, as is AC_SUBST.
411 dnl ARG-NAME is the base name of the argument (without "--with").
412 dnl HELP is the help text to use.
413 dnl If the user's choice is relative to the prefix, then the
414 dnl result is relocatable, then this will define the C macro
415 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
416 dnl DEFAULT is the default value, which is used if the user
417 dnl does not specify the argument.
418 AC_DEFUN([GDB_AC_WITH_DIR], [
419 AC_ARG_WITH([$2], AS_HELP_STRING([--with-][$2][=PATH], [$3]), [
420 [$1]=$withval], [[$1]=[$4]])
421 AC_DEFINE_DIR([$1], [$1], [$3])
423 GDB_AC_DEFINE_RELOCATABLE([$1], [$2], ${ac_define_dir})