2012-05-11 Yao Qi <yao@codesourcery.com>
[external/binutils.git] / gdb / acinclude.m4
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>
3
4 sinclude(acx_configure_dir.m4)
5
6 dnl gdb/configure.in uses BFD_NEED_DECLARATION, so get its definition.
7 sinclude(../bfd/bfd.m4)
8
9 dnl This gets the standard macros
10 sinclude(../config/acinclude.m4)
11
12 dnl This gets autoconf bugfixes
13 sinclude(../config/override.m4)
14
15 sinclude(../config/gettext-sister.m4)
16
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)
21
22 dnl For ACX_PKGVERSION and ACX_BUGURL.
23 sinclude(../config/acx.m4)
24
25 dnl for TCL definitions
26 sinclude(../config/tcl.m4)
27
28 dnl For dependency tracking macros.
29 sinclude([../config/depstand.m4])
30
31 dnl For AM_LC_MESSAGES
32 sinclude([../config/lcmessage.m4])
33
34 dnl For AM_LANGINFO_CODESET.
35 sinclude([../config/codeset.m4])
36
37 sinclude([../config/zlib.m4])
38
39 #
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)
49
50 AC_TRY_LINK(, [/* don't need anything here */],
51         c_links=yes, c_links=no)
52
53 if test x"${c_compiles}" = x"no" ; then
54   AC_MSG_ERROR(the native compiler is broken and won't compile.)
55 fi
56
57 if test x"${c_links}" = x"no" ; then
58   AC_MSG_ERROR(the native compiler is broken and won't link.)
59 fi
60 AC_MSG_RESULT(yes)
61 ])
62
63 ## ----------------------------------------- ##
64 ## ANSIfy the C compiler whenever possible.  ##
65 ## From Franc,ois Pinard                     ##
66 ## ----------------------------------------- ##
67
68 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2008, 2009
69   Free Software Foundation, Inc.
70
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)
74 # any later version.
75
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.
80
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.
85
86 # serial 1
87
88 # @defmac AC_PROG_CC_STDC
89 # @maindex PROG_CC_STDC
90 # @ovindex CC
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.
95 #
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.
101 # @end defmac
102
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
109 dnl like #elif.
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
116 ac_save_CC="$CC"
117 # Don't try gcc -ansi; that turns off useful extensions and
118 # breaks some systems' header files.
119 # AIX                   -qlanglvl=ansi
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__"
125 do
126   CC="$ac_save_CC $ac_arg"
127   AC_TRY_COMPILE(
128 [#include <stdarg.h>
129 #include <stdio.h>
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)
136      char **p;
137      int i;
138 {
139   return p[i];
140 }
141 static char *f (char * (*g) (char **, int), char **p, ...)
142 {
143   char *s;
144   va_list v;
145   va_start (v,p);
146   s = g (p, va_arg (v,int));
147   va_end (v);
148   return s;
149 }
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);
154 int argc;
155 char **argv;
156 ], [
157 return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
158 ],
159 [am_cv_prog_cc_stdc="$ac_arg"; break])
160 done
161 CC="$ac_save_CC"
162 ])
163 if test -z "$am_cv_prog_cc_stdc"; then
164   AC_MSG_RESULT([none needed])
165 else
166   AC_MSG_RESULT([$am_cv_prog_cc_stdc])
167 fi
168 case "x$am_cv_prog_cc_stdc" in
169   x|xno) ;;
170   *) CC="$CC $am_cv_prog_cc_stdc" ;;
171 esac
172 ])
173
174 dnl Originally from Bruno Haible, but with some modifications
175 dnl for the GDB project.
176
177 AC_DEFUN([AM_ICONV],
178 [
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).
181
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
187     done
188    ])
189
190   BUILD_LIBICONV_LIBDIRS="../libiconv/lib/.libs ../libiconv/lib/_libs"
191   BUILD_LIBICONV_INCLUDE="-I../libiconv/include"
192
193   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
194     am_cv_func_iconv="no, consider installing GNU libiconv"
195     am_cv_lib_iconv=no
196     am_cv_use_build_libiconv=no
197     am_cv_build_libiconv_path=
198
199     # If libiconv is part of the build tree, then try using it over
200     # any system iconv.
201     if test -d ../libiconv; then
202       for lib_dir in $BUILD_LIBICONV_LIBDIRS; do
203         am_save_LIBS="$LIBS"
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>
208 #include <iconv.h>],
209           [iconv_t cd = iconv_open("","");
210            iconv(cd,NULL,NULL,NULL,NULL);
211            iconv_close(cd);],
212           am_cv_use_build_libiconv=yes
213           am_cv_build_libiconv_path=$lib_dir/libiconv.a
214           am_cv_lib_iconv=yes
215           am_cv_func_iconv=yes)
216         LIBS="$am_save_LIBS"
217         CPPFLAGS="$am_save_CPPFLAGS"
218         if test "$am_cv_use_build_libiconv" = "yes"; then
219           break
220         fi
221       done
222     fi
223
224     # Next, try to find iconv in libc.
225     if test "$am_cv_func_iconv" != yes; then
226       AC_TRY_LINK([#include <stdlib.h>
227 #include <iconv.h>],
228         [iconv_t cd = iconv_open("","");
229          iconv(cd,NULL,NULL,NULL,NULL);
230          iconv_close(cd);],
231         am_cv_func_iconv=yes)
232     fi
233
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"
238       am_save_LIBS="$LIBS"
239       if test -n "$LIBICONV_INCLUDE"; then
240         CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
241         LIBS="$LIBS $LIBICONV_LIBDIR"
242       fi
243       LIBS="$LIBS -liconv"
244       AC_TRY_LINK([#include <stdlib.h>
245 #include <iconv.h>],
246         [iconv_t cd = iconv_open("","");
247          iconv(cd,NULL,NULL,NULL,NULL);
248          iconv_close(cd);],
249         am_cv_lib_iconv=yes
250         am_cv_func_iconv=yes)
251       LIBS="$am_save_LIBS"
252       CPPFLAGS="$am_save_CPPFLAGS"
253     fi
254   ])
255
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.
258   LIBICONV=
259   if test "$am_cv_lib_iconv" = yes; then
260     LIBICONV="-liconv"
261   else
262     LIBICONV_LIBDIR=
263     LIBICONV_INCLUDE=
264   fi
265   if test "$am_cv_use_build_libiconv" = yes; then
266     LIBICONV="$am_cv_build_libiconv_path"
267     LIBICONV_LIBDIR=""
268     LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
269   fi
270   CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
271   LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
272
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, [
277       AC_TRY_COMPILE([
278 #include <stdlib.h>
279 #include <iconv.h>
280 extern
281 #ifdef __cplusplus
282 "C"
283 #endif
284 #if defined(__STDC__) || defined(__cplusplus)
285 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
286 #else
287 size_t iconv();
288 #endif
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.])
296   fi
297 ])
298
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
302
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`
308   ifelse($3, ,
309     AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
310     AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
311 ])
312
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],
323 [#ifndef $1
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])
328 else
329   AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
330 fi
331 ])dnl
332
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],
338 [for ac_func in $1
339 do
340 changequote(, )dnl
341   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
342 changequote([, ])dnl
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.
353 #undef $ac_tr_decl
354 #define $ac_tr_decl 1
355   $4
356 )
357 done
358 dnl Automatically generate config.h entries via autoheader.
359 if test x = y ; then
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
363 fi
364 ])
365
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.
369 dnl
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])
373   private_dir=""
374   dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
375   if test -f ${dir}/tclInt.h ; then
376     private_dir=${dir}
377   fi
378
379   if test x"${private_dir}" = x; then
380     AC_ERROR(could not find private Tcl headers)
381   else
382     TCL_PRIVATE_INCLUDE="-I${private_dir}"
383     AC_MSG_RESULT(${private_dir})
384   fi
385 ])
386
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.
390 dnl
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])
394   private_dir=""
395   dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
396   if test -f ${dir}/tkInt.h; then
397     private_dir=${dir}
398   fi
399
400   if test x"${private_dir}" = x; then
401     AC_ERROR(could not find Tk private headers)
402   else
403     TK_PRIVATE_INCLUDE="-I${private_dir}"
404     AC_MSG_RESULT(${private_dir})
405   fi
406 ])
407
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
417      else
418         test_prefix=$prefix
419      fi
420   else
421      test_prefix=$exec_prefix
422   fi
423   value=0
424   case [$3] in
425      "${test_prefix}"|"${test_prefix}/"*|\
426         '${exec_prefix}'|'${exec_prefix}/'*)
427      value=1
428      ;;
429   esac
430   AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
431 ])
432
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])
448   AC_SUBST([$1])
449   GDB_AC_DEFINE_RELOCATABLE([$1], [$2], ${ac_define_dir})
450   ])