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, write to the Free Software
59 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
60 # Boston, MA 02110-1301, USA.
64 # @defmac AC_PROG_CC_STDC
65 # @maindex PROG_CC_STDC
67 # If the C compiler in not in ANSI C mode by default, try to add an option
68 # to output variable @code{CC} to make it so. This macro tries various
69 # options that select ANSI C on some system or another. It considers the
70 # compiler to be in ANSI C mode if it handles function prototypes correctly.
72 # If you use this macro, you should check after calling it whether the C
73 # compiler has been set to accept ANSI C; if not, the shell variable
74 # @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
75 # code in ANSI C, you can make an un-ANSIfied copy of it by using the
76 # program @code{ansi2knr}, which comes with Ghostscript.
79 AC_DEFUN([AM_PROG_CC_STDC],
80 [AC_REQUIRE([AC_PROG_CC])
81 AC_BEFORE([$0], [AC_C_INLINE])
82 AC_BEFORE([$0], [AC_C_CONST])
83 dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
84 dnl a magic option to avoid problems with ANSI preprocessor commands
86 dnl FIXME: can't do this because then AC_AIX won't work due to a
87 dnl circular dependency.
88 dnl AC_BEFORE([$0], [AC_PROG_CPP])
89 AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
90 AC_CACHE_VAL(am_cv_prog_cc_stdc,
91 [am_cv_prog_cc_stdc=no
93 # Don't try gcc -ansi; that turns off useful extensions and
94 # breaks some systems' header files.
96 # Ultrix and OSF/1 -std1
97 # HP-UX 10.20 and later -Ae
98 # HP-UX older versions -Aa -D_HPUX_SOURCE
99 # SVR4 -Xc -D__EXTENSIONS__
100 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
102 CC="$ac_save_CC $ac_arg"
106 #include <sys/types.h>
107 #include <sys/stat.h>
108 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
109 struct buf { int x; };
110 FILE * (*rcsopen) (struct buf *, struct stat *, int);
111 static char *e (p, i)
117 static char *f (char * (*g) (char **, int), char **p, ...)
122 s = g (p, va_arg (v,int));
126 int test (int i, double x);
127 struct s1 {int (*f) (int a);};
128 struct s2 {int (*f) (double a);};
129 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
133 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
135 [am_cv_prog_cc_stdc="$ac_arg"; break])
139 if test -z "$am_cv_prog_cc_stdc"; then
140 AC_MSG_RESULT([none needed])
142 AC_MSG_RESULT([$am_cv_prog_cc_stdc])
144 case "x$am_cv_prog_cc_stdc" in
146 *) CC="$CC $am_cv_prog_cc_stdc" ;;
150 dnl Originally from Bruno Haible, but with some modifications
151 dnl for the GDB project.
155 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
156 dnl those with the standalone portable GNU libiconv installed).
158 AC_ARG_WITH([libiconv-prefix],
159 AS_HELP_STRING([--with-libiconv-prefix=DIR], [search for libiconv in DIR/include and DIR/lib]), [
160 for dir in `echo "$withval" | tr : ' '`; do
161 if test -d $dir/include; then LIBICONV_INCLUDE="-I$dir/include"; fi
162 if test -d $dir/lib; then LIBICONV_LIBDIR="-L$dir/lib"; fi
166 BUILD_LIBICONV_LIBDIRS="../libiconv/lib/.libs ../libiconv/lib/_libs"
167 BUILD_LIBICONV_INCLUDE="-I../libiconv/include"
169 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
170 am_cv_func_iconv="no, consider installing GNU libiconv"
172 am_cv_use_build_libiconv=no
173 am_cv_build_libiconv_path=
175 # If libiconv is part of the build tree, then try using it over
177 if test -d ../libiconv; then
178 for lib_dir in $BUILD_LIBICONV_LIBDIRS; do
180 am_save_CPPFLAGS="$CPPFLAGS"
181 LIBS="$LIBS $lib_dir/libiconv.a"
182 CPPFLAGS="$CPPFLAGS $BUILD_LIBICONV_INCLUDE"
183 AC_TRY_LINK([#include <stdlib.h>
185 [iconv_t cd = iconv_open("","");
186 iconv(cd,NULL,NULL,NULL,NULL);
188 am_cv_use_build_libiconv=yes
189 am_cv_build_libiconv_path=$lib_dir/libiconv.a
191 am_cv_func_iconv=yes)
193 CPPFLAGS="$am_save_CPPFLAGS"
194 if test "$am_cv_use_build_libiconv" = "yes"; then
200 # Next, try to find iconv in libc.
201 if test "$am_cv_func_iconv" != yes; then
202 AC_TRY_LINK([#include <stdlib.h>
204 [iconv_t cd = iconv_open("","");
205 iconv(cd,NULL,NULL,NULL,NULL);
207 am_cv_func_iconv=yes)
210 # If iconv was not in libc, try -liconv. In this case, arrange to
211 # look in the libiconv prefix, if it was specified by the user.
212 if test "$am_cv_func_iconv" != yes; then
213 am_save_CPPFLAGS="$CPPFLAGS"
215 if test -n "$LIBICONV_INCLUDE"; then
216 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
217 LIBS="$LIBS $LIBICONV_LIBDIR"
220 AC_TRY_LINK([#include <stdlib.h>
222 [iconv_t cd = iconv_open("","");
223 iconv(cd,NULL,NULL,NULL,NULL);
226 am_cv_func_iconv=yes)
228 CPPFLAGS="$am_save_CPPFLAGS"
232 # Set the various flags based on the cache variables. We can't rely
233 # on the flags to remain set from the above code, due to caching.
235 if test "$am_cv_lib_iconv" = yes; then
241 if test "$am_cv_use_build_libiconv" = yes; then
242 LIBICONV="$am_cv_build_libiconv_path"
244 LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
246 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
247 LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
249 if test "$am_cv_func_iconv" = yes; then
250 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
251 AC_MSG_CHECKING([for iconv declaration])
252 AC_CACHE_VAL(am_cv_proto_iconv, [
260 #if defined(__STDC__) || defined(__cplusplus)
261 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
265 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
266 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);"])
267 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
268 AC_MSG_RESULT([$]{ac_t:-
269 }[$]am_cv_proto_iconv)
270 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
271 [Define as const if the declaration of iconv() needs const.])
275 dnl written by Guido Draheim <guidod@gmx.de>, original by Alexandre Oliva
276 dnl Version 1.3 (2001/03/02)
277 dnl source http://www.gnu.org/software/ac-archive/Miscellaneous/ac_define_dir.html
279 AC_DEFUN([AC_DEFINE_DIR], [
280 test "x$prefix" = xNONE && prefix="$ac_default_prefix"
281 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
282 ac_define_dir=`eval echo [$]$2`
283 ac_define_dir=`eval echo [$]ac_define_dir`
285 AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
286 AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
289 dnl See whether we need a declaration for a function.
290 dnl The result is highly dependent on the INCLUDES passed in, so make sure
291 dnl to use a different cache variable name in this macro if it is invoked
292 dnl in a different context somewhere else.
293 dnl gcc_AC_CHECK_DECL(SYMBOL,
294 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
295 AC_DEFUN([gcc_AC_CHECK_DECL],
296 [AC_MSG_CHECKING([whether $1 is declared])
297 AC_CACHE_VAL(gcc_cv_have_decl_$1,
298 [AC_TRY_COMPILE([$4],
300 char *(*pfn) = (char *(*)) $1 ;
301 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
302 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
303 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
305 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
309 dnl Check multiple functions to see whether each needs a declaration.
310 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
311 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
312 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
313 AC_DEFUN([gcc_AC_CHECK_DECLS],
317 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
319 gcc_AC_CHECK_DECL($ac_func,
320 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
321 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
322 dnl It is possible that the include files passed in here are local headers
323 dnl which supply a backup declaration for the relevant prototype based on
324 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
325 dnl will always return success. E.g. see libiberty.h's handling of
326 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
327 dnl 1 so that any local headers used do not provide their own prototype
328 dnl during this test.
330 #define $ac_tr_decl 1
334 dnl Automatically generate config.h entries via autoheader.
336 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
337 [AC_DEFINE([HAVE_DECL_\&], 1,
338 [Define to 1 if we found this declaration otherwise define to 0.])])dnl
342 dnl Find the location of the private Tcl headers
343 dnl When Tcl is installed, this is TCL_INCLUDE_SPEC/tcl-private/generic
344 dnl When Tcl is in the build tree, this is not needed.
346 dnl Note: you must use first use SC_LOAD_TCLCONFIG!
347 AC_DEFUN([CY_AC_TCL_PRIVATE_HEADERS], [
348 AC_MSG_CHECKING([for Tcl private headers])
350 dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
351 if test -f ${dir}/tclInt.h ; then
355 if test x"${private_dir}" = x; then
356 AC_ERROR(could not find private Tcl headers)
358 TCL_PRIVATE_INCLUDE="-I${private_dir}"
359 AC_MSG_RESULT(${private_dir})
363 dnl Find the location of the private Tk headers
364 dnl When Tk is installed, this is TK_INCLUDE_SPEC/tk-private/generic
365 dnl When Tk is in the build tree, this not needed.
367 dnl Note: you must first use SC_LOAD_TKCONFIG
368 AC_DEFUN([CY_AC_TK_PRIVATE_HEADERS], [
369 AC_MSG_CHECKING([for Tk private headers])
371 dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
372 if test -f ${dir}/tkInt.h; then
376 if test x"${private_dir}" = x; then
377 AC_ERROR(could not find Tk private headers)
379 TK_PRIVATE_INCLUDE="-I${private_dir}"
380 AC_MSG_RESULT(${private_dir})
384 dnl GDB_AC_DEFINE_RELOCATABLE([VARIABLE], [ARG-NAME], [SHELL-VARIABLE])
385 dnl For use in processing directory values for --with-foo.
386 dnl If the path in SHELL_VARIABLE is relative to the prefix, then the
387 dnl result is relocatable, then this will define the C macro
388 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
389 AC_DEFUN([GDB_AC_DEFINE_RELOCATABLE], [
390 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
391 if test "x$prefix" = xNONE; then
392 test_prefix=/usr/local
397 test_prefix=$exec_prefix
401 "${test_prefix}"|"${test_prefix}/"*|\
402 '${exec_prefix}'|'${exec_prefix}/'*)
406 AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
409 dnl GDB_AC_WITH_DIR([VARIABLE], [ARG-NAME], [HELP], [DEFAULT])
410 dnl Add a new --with option that defines a directory.
411 dnl The result is stored in VARIABLE. AC_DEFINE_DIR is called
412 dnl on this variable, as is AC_SUBST.
413 dnl ARG-NAME is the base name of the argument (without "--with").
414 dnl HELP is the help text to use.
415 dnl If the user's choice is relative to the prefix, then the
416 dnl result is relocatable, then this will define the C macro
417 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
418 dnl DEFAULT is the default value, which is used if the user
419 dnl does not specify the argument.
420 AC_DEFUN([GDB_AC_WITH_DIR], [
421 AC_ARG_WITH([$2], AS_HELP_STRING([--with-][$2][=PATH], [$3]), [
422 [$1]=$withval], [[$1]=[$4]])
423 AC_DEFINE_DIR([$1], [$1], [$3])
425 GDB_AC_DEFINE_RELOCATABLE([$1], [$2], ${ac_define_dir})