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])
40 # Sometimes the native compiler is a bogus stub for gcc or /usr/ucb/cc. This
41 # makes configure think it's cross compiling. If --target wasn't used, then
42 # we can't configure, so something is wrong. We don't use the cache
43 # here cause if somebody fixes their compiler install, we want this to work.
44 AC_DEFUN([CY_AC_C_WORKS],
45 [# If we cannot compile and link a trivial program, we can't expect anything to work
46 AC_MSG_CHECKING(whether the compiler ($CC) actually works)
47 AC_TRY_COMPILE(, [/* don't need anything here */],
48 c_compiles=yes, c_compiles=no)
50 AC_TRY_LINK(, [/* don't need anything here */],
51 c_links=yes, c_links=no)
53 if test x"${c_compiles}" = x"no" ; then
54 AC_MSG_ERROR(the native compiler is broken and won't compile.)
57 if test x"${c_links}" = x"no" ; then
58 AC_MSG_ERROR(the native compiler is broken and won't link.)
63 ## ----------------------------------------- ##
64 ## ANSIfy the C compiler whenever possible. ##
65 ## From Franc,ois Pinard ##
66 ## ----------------------------------------- ##
68 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2008, 2009
69 Free Software Foundation, Inc.
71 # This program is free software; you can redistribute it and/or modify
72 # it under the terms of the GNU General Public License as published by
73 # the Free Software Foundation; either version 2, or (at your option)
76 # This program is distributed in the hope that it will be useful,
77 # but WITHOUT ANY WARRANTY; without even the implied warranty of
78 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
79 # GNU General Public License for more details.
81 # You should have received a copy of the GNU General Public License
82 # along with this program; if not, write to the Free Software
83 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
84 # Boston, MA 02110-1301, USA.
88 # @defmac AC_PROG_CC_STDC
89 # @maindex PROG_CC_STDC
91 # If the C compiler in not in ANSI C mode by default, try to add an option
92 # to output variable @code{CC} to make it so. This macro tries various
93 # options that select ANSI C on some system or another. It considers the
94 # compiler to be in ANSI C mode if it handles function prototypes correctly.
96 # If you use this macro, you should check after calling it whether the C
97 # compiler has been set to accept ANSI C; if not, the shell variable
98 # @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
99 # code in ANSI C, you can make an un-ANSIfied copy of it by using the
100 # program @code{ansi2knr}, which comes with Ghostscript.
103 AC_DEFUN([AM_PROG_CC_STDC],
104 [AC_REQUIRE([AC_PROG_CC])
105 AC_BEFORE([$0], [AC_C_INLINE])
106 AC_BEFORE([$0], [AC_C_CONST])
107 dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
108 dnl a magic option to avoid problems with ANSI preprocessor commands
110 dnl FIXME: can't do this because then AC_AIX won't work due to a
111 dnl circular dependency.
112 dnl AC_BEFORE([$0], [AC_PROG_CPP])
113 AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
114 AC_CACHE_VAL(am_cv_prog_cc_stdc,
115 [am_cv_prog_cc_stdc=no
117 # Don't try gcc -ansi; that turns off useful extensions and
118 # breaks some systems' header files.
120 # Ultrix and OSF/1 -std1
121 # HP-UX 10.20 and later -Ae
122 # HP-UX older versions -Aa -D_HPUX_SOURCE
123 # SVR4 -Xc -D__EXTENSIONS__
124 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
126 CC="$ac_save_CC $ac_arg"
130 #include <sys/types.h>
131 #include <sys/stat.h>
132 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
133 struct buf { int x; };
134 FILE * (*rcsopen) (struct buf *, struct stat *, int);
135 static char *e (p, i)
141 static char *f (char * (*g) (char **, int), char **p, ...)
146 s = g (p, va_arg (v,int));
150 int test (int i, double x);
151 struct s1 {int (*f) (int a);};
152 struct s2 {int (*f) (double a);};
153 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
157 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
159 [am_cv_prog_cc_stdc="$ac_arg"; break])
163 if test -z "$am_cv_prog_cc_stdc"; then
164 AC_MSG_RESULT([none needed])
166 AC_MSG_RESULT([$am_cv_prog_cc_stdc])
168 case "x$am_cv_prog_cc_stdc" in
170 *) CC="$CC $am_cv_prog_cc_stdc" ;;
174 dnl Originally from Bruno Haible, but with some modifications
175 dnl for the GDB project.
179 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
180 dnl those with the standalone portable GNU libiconv installed).
182 AC_ARG_WITH([libiconv-prefix],
183 AS_HELP_STRING([--with-libiconv-prefix=DIR], [search for libiconv in DIR/include and DIR/lib]), [
184 for dir in `echo "$withval" | tr : ' '`; do
185 if test -d $dir/include; then LIBICONV_INCLUDE="-I$dir/include"; fi
186 if test -d $dir/lib; then LIBICONV_LIBDIR="-L$dir/lib"; fi
190 BUILD_LIBICONV_LIBDIRS="../libiconv/lib/.libs ../libiconv/lib/_libs"
191 BUILD_LIBICONV_INCLUDE="-I../libiconv/include"
193 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
194 am_cv_func_iconv="no, consider installing GNU libiconv"
196 am_cv_use_build_libiconv=no
197 am_cv_build_libiconv_path=
199 # If libiconv is part of the build tree, then try using it over
201 if test -d ../libiconv; then
202 for lib_dir in $BUILD_LIBICONV_LIBDIRS; do
204 am_save_CPPFLAGS="$CPPFLAGS"
205 LIBS="$LIBS $lib_dir/libiconv.a"
206 CPPFLAGS="$CPPFLAGS $BUILD_LIBICONV_INCLUDE"
207 AC_TRY_LINK([#include <stdlib.h>
209 [iconv_t cd = iconv_open("","");
210 iconv(cd,NULL,NULL,NULL,NULL);
212 am_cv_use_build_libiconv=yes
213 am_cv_build_libiconv_path=$lib_dir/libiconv.a
215 am_cv_func_iconv=yes)
217 CPPFLAGS="$am_save_CPPFLAGS"
218 if test "$am_cv_use_build_libiconv" = "yes"; then
224 # Next, try to find iconv in libc.
225 if test "$am_cv_func_iconv" != yes; then
226 AC_TRY_LINK([#include <stdlib.h>
228 [iconv_t cd = iconv_open("","");
229 iconv(cd,NULL,NULL,NULL,NULL);
231 am_cv_func_iconv=yes)
234 # If iconv was not in libc, try -liconv. In this case, arrange to
235 # look in the libiconv prefix, if it was specified by the user.
236 if test "$am_cv_func_iconv" != yes; then
237 am_save_CPPFLAGS="$CPPFLAGS"
239 if test -n "$LIBICONV_INCLUDE"; then
240 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
241 LIBS="$LIBS $LIBICONV_LIBDIR"
244 AC_TRY_LINK([#include <stdlib.h>
246 [iconv_t cd = iconv_open("","");
247 iconv(cd,NULL,NULL,NULL,NULL);
250 am_cv_func_iconv=yes)
252 CPPFLAGS="$am_save_CPPFLAGS"
256 # Set the various flags based on the cache variables. We can't rely
257 # on the flags to remain set from the above code, due to caching.
259 if test "$am_cv_lib_iconv" = yes; then
265 if test "$am_cv_use_build_libiconv" = yes; then
266 LIBICONV="$am_cv_build_libiconv_path"
268 LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
270 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
271 LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
273 if test "$am_cv_func_iconv" = yes; then
274 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
275 AC_MSG_CHECKING([for iconv declaration])
276 AC_CACHE_VAL(am_cv_proto_iconv, [
284 #if defined(__STDC__) || defined(__cplusplus)
285 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
289 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
290 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);"])
291 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
292 AC_MSG_RESULT([$]{ac_t:-
293 }[$]am_cv_proto_iconv)
294 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
295 [Define as const if the declaration of iconv() needs const.])
299 dnl written by Guido Draheim <guidod@gmx.de>, original by Alexandre Oliva
300 dnl Version 1.3 (2001/03/02)
301 dnl source http://www.gnu.org/software/ac-archive/Miscellaneous/ac_define_dir.html
303 AC_DEFUN([AC_DEFINE_DIR], [
304 test "x$prefix" = xNONE && prefix="$ac_default_prefix"
305 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
306 ac_define_dir=`eval echo [$]$2`
307 ac_define_dir=`eval echo [$]ac_define_dir`
309 AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
310 AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
313 dnl See whether we need a declaration for a function.
314 dnl The result is highly dependent on the INCLUDES passed in, so make sure
315 dnl to use a different cache variable name in this macro if it is invoked
316 dnl in a different context somewhere else.
317 dnl gcc_AC_CHECK_DECL(SYMBOL,
318 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
319 AC_DEFUN([gcc_AC_CHECK_DECL],
320 [AC_MSG_CHECKING([whether $1 is declared])
321 AC_CACHE_VAL(gcc_cv_have_decl_$1,
322 [AC_TRY_COMPILE([$4],
324 char *(*pfn) = (char *(*)) $1 ;
325 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
326 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
327 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
329 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
333 dnl Check multiple functions to see whether each needs a declaration.
334 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
335 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
336 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
337 AC_DEFUN([gcc_AC_CHECK_DECLS],
341 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
343 gcc_AC_CHECK_DECL($ac_func,
344 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
345 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
346 dnl It is possible that the include files passed in here are local headers
347 dnl which supply a backup declaration for the relevant prototype based on
348 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
349 dnl will always return success. E.g. see libiberty.h's handling of
350 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
351 dnl 1 so that any local headers used do not provide their own prototype
352 dnl during this test.
354 #define $ac_tr_decl 1
358 dnl Automatically generate config.h entries via autoheader.
360 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
361 [AC_DEFINE([HAVE_DECL_\&], 1,
362 [Define to 1 if we found this declaration otherwise define to 0.])])dnl
366 dnl Find the location of the private Tcl headers
367 dnl When Tcl is installed, this is TCL_INCLUDE_SPEC/tcl-private/generic
368 dnl When Tcl is in the build tree, this is not needed.
370 dnl Note: you must use first use SC_LOAD_TCLCONFIG!
371 AC_DEFUN([CY_AC_TCL_PRIVATE_HEADERS], [
372 AC_MSG_CHECKING([for Tcl private headers])
374 dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
375 if test -f ${dir}/tclInt.h ; then
379 if test x"${private_dir}" = x; then
380 AC_ERROR(could not find private Tcl headers)
382 TCL_PRIVATE_INCLUDE="-I${private_dir}"
383 AC_MSG_RESULT(${private_dir})
387 dnl Find the location of the private Tk headers
388 dnl When Tk is installed, this is TK_INCLUDE_SPEC/tk-private/generic
389 dnl When Tk is in the build tree, this not needed.
391 dnl Note: you must first use SC_LOAD_TKCONFIG
392 AC_DEFUN([CY_AC_TK_PRIVATE_HEADERS], [
393 AC_MSG_CHECKING([for Tk private headers])
395 dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
396 if test -f ${dir}/tkInt.h; then
400 if test x"${private_dir}" = x; then
401 AC_ERROR(could not find Tk private headers)
403 TK_PRIVATE_INCLUDE="-I${private_dir}"
404 AC_MSG_RESULT(${private_dir})
408 dnl GDB_AC_DEFINE_RELOCATABLE([VARIABLE], [ARG-NAME], [SHELL-VARIABLE])
409 dnl For use in processing directory values for --with-foo.
410 dnl If the path in SHELL_VARIABLE is relative to the prefix, then the
411 dnl result is relocatable, then this will define the C macro
412 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
413 AC_DEFUN([GDB_AC_DEFINE_RELOCATABLE], [
414 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
415 if test "x$prefix" = xNONE; then
416 test_prefix=/usr/local
421 test_prefix=$exec_prefix
425 "${test_prefix}"|"${test_prefix}/"*|\
426 '${exec_prefix}'|'${exec_prefix}/'*)
430 AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
433 dnl GDB_AC_WITH_DIR([VARIABLE], [ARG-NAME], [HELP], [DEFAULT])
434 dnl Add a new --with option that defines a directory.
435 dnl The result is stored in VARIABLE. AC_DEFINE_DIR is called
436 dnl on this variable, as is AC_SUBST.
437 dnl ARG-NAME is the base name of the argument (without "--with").
438 dnl HELP is the help text to use.
439 dnl If the user's choice is relative to the prefix, then the
440 dnl result is relocatable, then this will define the C macro
441 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
442 dnl DEFAULT is the default value, which is used if the user
443 dnl does not specify the argument.
444 AC_DEFUN([GDB_AC_WITH_DIR], [
445 AC_ARG_WITH([$2], AS_HELP_STRING([--with-][$2][=PATH], [$3]), [
446 [$1]=$withval], [[$1]=[$4]])
447 AC_DEFINE_DIR([$1], [$1], [$3])
449 GDB_AC_DEFINE_RELOCATABLE([$1], [$2], ${ac_define_dir})