* acinclude.m4 (CY_AC_C_WORKS): Remove.
[platform/upstream/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 ## ANSIfy the C compiler whenever possible.  ##
41 ## From Franc,ois Pinard                     ##
42 ## ----------------------------------------- ##
43
44 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2008, 2009
45 #  Free Software Foundation, Inc.
46
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)
50 # any later version.
51
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.
56
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.
61
62 # serial 1
63
64 # @defmac AC_PROG_CC_STDC
65 # @maindex PROG_CC_STDC
66 # @ovindex CC
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.
71 #
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.
77 # @end defmac
78
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
85 dnl like #elif.
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
92 ac_save_CC="$CC"
93 # Don't try gcc -ansi; that turns off useful extensions and
94 # breaks some systems' header files.
95 # AIX                   -qlanglvl=ansi
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__"
101 do
102   CC="$ac_save_CC $ac_arg"
103   AC_TRY_COMPILE(
104 [#include <stdarg.h>
105 #include <stdio.h>
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)
112      char **p;
113      int i;
114 {
115   return p[i];
116 }
117 static char *f (char * (*g) (char **, int), char **p, ...)
118 {
119   char *s;
120   va_list v;
121   va_start (v,p);
122   s = g (p, va_arg (v,int));
123   va_end (v);
124   return s;
125 }
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);
130 int argc;
131 char **argv;
132 ], [
133 return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
134 ],
135 [am_cv_prog_cc_stdc="$ac_arg"; break])
136 done
137 CC="$ac_save_CC"
138 ])
139 if test -z "$am_cv_prog_cc_stdc"; then
140   AC_MSG_RESULT([none needed])
141 else
142   AC_MSG_RESULT([$am_cv_prog_cc_stdc])
143 fi
144 case "x$am_cv_prog_cc_stdc" in
145   x|xno) ;;
146   *) CC="$CC $am_cv_prog_cc_stdc" ;;
147 esac
148 ])
149
150 dnl Originally from Bruno Haible, but with some modifications
151 dnl for the GDB project.
152
153 AC_DEFUN([AM_ICONV],
154 [
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).
157
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
163     done
164    ])
165
166   BUILD_LIBICONV_LIBDIRS="../libiconv/lib/.libs ../libiconv/lib/_libs"
167   BUILD_LIBICONV_INCLUDE="-I../libiconv/include"
168
169   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
170     am_cv_func_iconv="no, consider installing GNU libiconv"
171     am_cv_lib_iconv=no
172     am_cv_use_build_libiconv=no
173     am_cv_build_libiconv_path=
174
175     # If libiconv is part of the build tree, then try using it over
176     # any system iconv.
177     if test -d ../libiconv; then
178       for lib_dir in $BUILD_LIBICONV_LIBDIRS; do
179         am_save_LIBS="$LIBS"
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>
184 #include <iconv.h>],
185           [iconv_t cd = iconv_open("","");
186            iconv(cd,NULL,NULL,NULL,NULL);
187            iconv_close(cd);],
188           am_cv_use_build_libiconv=yes
189           am_cv_build_libiconv_path=$lib_dir/libiconv.a
190           am_cv_lib_iconv=yes
191           am_cv_func_iconv=yes)
192         LIBS="$am_save_LIBS"
193         CPPFLAGS="$am_save_CPPFLAGS"
194         if test "$am_cv_use_build_libiconv" = "yes"; then
195           break
196         fi
197       done
198     fi
199
200     # Next, try to find iconv in libc.
201     if test "$am_cv_func_iconv" != yes; then
202       AC_TRY_LINK([#include <stdlib.h>
203 #include <iconv.h>],
204         [iconv_t cd = iconv_open("","");
205          iconv(cd,NULL,NULL,NULL,NULL);
206          iconv_close(cd);],
207         am_cv_func_iconv=yes)
208     fi
209
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"
214       am_save_LIBS="$LIBS"
215       if test -n "$LIBICONV_INCLUDE"; then
216         CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
217         LIBS="$LIBS $LIBICONV_LIBDIR"
218       fi
219       LIBS="$LIBS -liconv"
220       AC_TRY_LINK([#include <stdlib.h>
221 #include <iconv.h>],
222         [iconv_t cd = iconv_open("","");
223          iconv(cd,NULL,NULL,NULL,NULL);
224          iconv_close(cd);],
225         am_cv_lib_iconv=yes
226         am_cv_func_iconv=yes)
227       LIBS="$am_save_LIBS"
228       CPPFLAGS="$am_save_CPPFLAGS"
229     fi
230   ])
231
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.
234   LIBICONV=
235   if test "$am_cv_lib_iconv" = yes; then
236     LIBICONV="-liconv"
237   else
238     LIBICONV_LIBDIR=
239     LIBICONV_INCLUDE=
240   fi
241   if test "$am_cv_use_build_libiconv" = yes; then
242     LIBICONV="$am_cv_build_libiconv_path"
243     LIBICONV_LIBDIR=""
244     LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
245   fi
246   CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
247   LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
248
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, [
253       AC_TRY_COMPILE([
254 #include <stdlib.h>
255 #include <iconv.h>
256 extern
257 #ifdef __cplusplus
258 "C"
259 #endif
260 #if defined(__STDC__) || defined(__cplusplus)
261 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
262 #else
263 size_t iconv();
264 #endif
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.])
272   fi
273 ])
274
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
278
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`
284   ifelse($3, ,
285     AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
286     AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
287 ])
288
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],
299 [#ifndef $1
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])
304 else
305   AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
306 fi
307 ])dnl
308
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],
314 [for ac_func in $1
315 do
316 changequote(, )dnl
317   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
318 changequote([, ])dnl
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.
329 #undef $ac_tr_decl
330 #define $ac_tr_decl 1
331   $4
332 )
333 done
334 dnl Automatically generate config.h entries via autoheader.
335 if test x = y ; then
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
339 fi
340 ])
341
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.
345 dnl
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])
349   private_dir=""
350   dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
351   if test -f ${dir}/tclInt.h ; then
352     private_dir=${dir}
353   fi
354
355   if test x"${private_dir}" = x; then
356     AC_ERROR(could not find private Tcl headers)
357   else
358     TCL_PRIVATE_INCLUDE="-I${private_dir}"
359     AC_MSG_RESULT(${private_dir})
360   fi
361 ])
362
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.
366 dnl
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])
370   private_dir=""
371   dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
372   if test -f ${dir}/tkInt.h; then
373     private_dir=${dir}
374   fi
375
376   if test x"${private_dir}" = x; then
377     AC_ERROR(could not find Tk private headers)
378   else
379     TK_PRIVATE_INCLUDE="-I${private_dir}"
380     AC_MSG_RESULT(${private_dir})
381   fi
382 ])
383
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
393      else
394         test_prefix=$prefix
395      fi
396   else
397      test_prefix=$exec_prefix
398   fi
399   value=0
400   case [$3] in
401      "${test_prefix}"|"${test_prefix}/"*|\
402         '${exec_prefix}'|'${exec_prefix}/'*)
403      value=1
404      ;;
405   esac
406   AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
407 ])
408
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])
424   AC_SUBST([$1])
425   GDB_AC_DEFINE_RELOCATABLE([$1], [$2], ${ac_define_dir})
426   ])