xref: /freebsd/contrib/ntp/sntp/libopts/m4/libopts.m4 (revision cddbc3b40812213ff00041f79174cac0be360a2a)
1dnl  -*- buffer-read-only: t -*- vi: set ro:
2dnl
3dnl DO NOT EDIT THIS FILE   (libopts.m4)
4dnl
5dnl It has been AutoGen-ed
6dnl From the definitions    libopts.def
7dnl and the template file   conftest.tpl
8dnl
9dnl do always before generated macros:
10dnl
11AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
12  AC_REQUIRE([AC_HEADER_STDC])
13  AC_HEADER_DIRENT
14
15  # =================
16  # AC_CHECK_HEADERS
17  # =================
18  AC_CHECK_HEADERS([ \
19      sys/mman.h    sys/param.h   sys/poll.h    sys/procset.h \
20      sys/select.h  sys/socket.h  sys/stropts.h sys/time.h \
21      sys/un.h      sys/wait.h    dlfcn.h       errno.h \
22      fcntl.h       libgen.h      libintl.h     memory.h \
23      netinet/in.h  setjmp.h      stdbool.h     sysexits.h \
24      unistd.h      utime.h])
25
26  AC_CHECK_HEADERS([stdarg.h     varargs.h],
27      [lo_have_arg_hdr=true;break],
28      [lo_have_arg_hdr=false])
29
30  AC_CHECK_HEADERS([string.h     strings.h],
31      [lo_have_str_hdr=true;break],
32      [lo_have_str_hdr=false])
33
34  AC_CHECK_HEADERS([limits.h     sys/limits.h  values.h],
35      [lo_have_lim_hdr=true;break],
36      [lo_have_lim_hdr=false])
37
38  AC_CHECK_HEADERS([inttypes.h   stdint.h],
39      [lo_have_typ_hdr=true;break],
40      [lo_have_typ_hdr=false])
41  gl_STDNORETURN_H
42
43  # ----------------------------------------------------------------------
44  # check for various programs used during the build.
45  # On OS/X, "wchar.h" needs "runetype.h" to work properly.
46  # ----------------------------------------------------------------------
47  AC_CHECK_HEADERS([runetype.h wchar.h], [], [],[
48  AC_INCLUDES_DEFAULT
49  #if HAVE_RUNETYPE_H
50  # include <runetype.h>
51  #endif
52  ])
53
54  AC_ARG_ENABLE([nls],
55  AS_HELP_STRING([--disable-nls],[disable nls support in libopts]))
56  AS_IF([test "x$enable_nls" != "xno" && \
57  test "X${ac_cv_header_libintl_h}" = Xyes], [
58  AC_DEFINE([ENABLE_NLS],[1],[nls support in libopts])])
59
60  # --------------------------------------------
61  # Verify certain entries from AC_CHECK_HEADERS
62  # --------------------------------------------
63  [${lo_have_arg_hdr} || \
64    ]AC_MSG_ERROR([you must have stdarg.h or varargs.h on your system])[
65
66  ${lo_have_str_hdr} || \
67    ]AC_MSG_ERROR([you must have string.h or strings.h on your system])[
68
69  ${lo_have_lim_hdr} || \
70    ]AC_MSG_ERROR(
71      [you must have one of limits.h, sys/limits.h or values.h])[
72
73  ${lo_have_typ_hdr} || \
74    ]AC_MSG_ERROR([you must have inttypes.h or stdint.h on your system])[
75
76  for f in sys_types sys_param sys_stat string errno stdlib memory setjmp
77  do eval as_ac_var=\${ac_cv_header_${f}_h}
78     test "X${as_ac_var}" = Xyes || {
79       ]AC_MSG_ERROR([you must have ${f}.h on your system])[
80     }
81  done
82  test "X${ac_cv_header_inttypes_h-no}" = Xyes || \
83    echo '#include <stdint.h>' > inttypes.h]
84
85  # ----------------------------------------------------------------------
86  # Checks for typedefs
87  # ----------------------------------------------------------------------
88  AC_CHECK_TYPES(wchar_t)
89  AC_CHECK_TYPES(wint_t, [], [], [
90    AC_INCLUDES_DEFAULT
91    #if HAVE_RUNETYPE_H
92    # include <runetype.h>
93    #endif
94    #if HAVE_WCHAR_H
95    # include <wchar.h>
96    #endif
97  ])
98  AC_CHECK_TYPES([int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
99  intptr_t, uintptr_t, uint_t, pid_t, size_t, ptrdiff_t])
100  AC_CHECK_SIZEOF(char *, 8)
101  AC_CHECK_SIZEOF(int,    4)
102  AC_CHECK_SIZEOF(long,   8)
103  AC_CHECK_SIZEOF(short,  2)
104
105  # ------------
106  # AC_CHECK_LIB
107  # ------------
108  AC_CHECK_LIB(gen, pathfind)
109  AC_CHECK_LIB(intl,gettext)
110  AC_FUNC_VPRINTF
111  AC_FUNC_FORK
112  AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup strchr \
113                 strrchr strsignal fchmod fstat chmod])
114  AC_PROG_SED
115  [while :
116  do
117      POSIX_SHELL=`which bash`
118      test -x "$POSIX_SHELL" && break
119      POSIX_SHELL=`which dash`
120      test -x "$POSIX_SHELL" && break
121      POSIX_SHELL=/usr/xpg4/bin/sh
122      test -x "$POSIX_SHELL" && break
123      POSIX_SHELL=`/bin/sh -c '
124          exec 2>/dev/null
125          if ! true ; then exit 1 ; fi
126          echo /bin/sh'`
127      test -x "$POSIX_SHELL" && break
128      ]AC_MSG_ERROR([cannot locate a working POSIX shell])[
129  done]
130  AC_DEFINE_UNQUOTED([POSIX_SHELL], ["${POSIX_SHELL}"],
131           [define to a working POSIX compliant shell])
132  AC_SUBST([POSIX_SHELL])
133])
134
135dnl
136dnl @synopsis  INVOKE_LIBOPTS_MACROS
137dnl
138dnl  This macro will invoke the AutoConf macros specified in libopts.def
139dnl  that have not been disabled with "omit-invocation".
140dnl
141AC_DEFUN([LIBOPTS_WITH_REGEX_HEADER],[
142  AC_ARG_WITH([regex-header],
143    AS_HELP_STRING([--with-regex-header], [a reg expr header is specified]),
144    [libopts_cv_with_regex_header=${with_regex_header}],
145    AC_CACHE_CHECK([whether a reg expr header is specified], libopts_cv_with_regex_header,
146      libopts_cv_with_regex_header=no)
147  ) # end of AC_ARG_WITH
148  if test "X${libopts_cv_with_regex_header}" != Xno
149  then
150    AC_DEFINE_UNQUOTED([REGEX_HEADER],[<${libopts_cv_with_regex_header}>])
151  else
152    AC_DEFINE([REGEX_HEADER],[<regex.h>],[name of regex header file])
153  fi
154
155]) # end of AC_DEFUN of LIBOPTS_WITH_REGEX_HEADER
156
157
158AC_DEFUN([LIBOPTS_WITHLIB_REGEX],[
159  AC_ARG_WITH([libregex],
160    AS_HELP_STRING([--with-libregex], [libregex installation prefix]),
161    [libopts_cv_with_libregex_root=${with_libregex}],
162    AC_CACHE_CHECK([whether with-libregex was specified], libopts_cv_with_libregex_root,
163      libopts_cv_with_libregex_root=no)
164  ) # end of AC_ARG_WITH libregex
165
166  if test "${with_libregex+set}" = set && \
167     test "X${withval}" = Xno
168  then ## disabled by request
169    libopts_cv_with_libregex_root=no
170    libopts_cv_with_libregex_cflags=no
171    libopts_cv_with_libregex_libs=no
172  else
173
174  AC_ARG_WITH([libregex-cflags],
175    AS_HELP_STRING([--with-libregex-cflags], [libregex compile flags]),
176    [libopts_cv_with_libregex_cflags=${with_libregex_cflags}],
177    AC_CACHE_CHECK([whether with-libregex-cflags was specified], libopts_cv_with_libregex_cflags,
178      libopts_cv_with_libregex_cflags=no)
179  ) # end of AC_ARG_WITH libregex-cflags
180
181  AC_ARG_WITH([libregex-libs],
182    AS_HELP_STRING([--with-libregex-libs], [libregex link command arguments]),
183    [libopts_cv_with_libregex_libs=${with_libregex_libs}],
184    AC_CACHE_CHECK([whether with-libregex-libs was specified], libopts_cv_with_libregex_libs,
185      libopts_cv_with_libregex_libs=no)
186  ) # end of AC_ARG_WITH libregex-libs
187
188  case "X${libopts_cv_with_libregex_cflags}" in
189  Xyes|Xno|X )
190    case "X${libopts_cv_with_libregex_root}" in
191    Xyes|Xno|X ) libopts_cv_with_libregex_cflags=no ;;
192    * ) libopts_cv_with_libregex_cflags=-I${libopts_cv_with_libregex_root}/include ;;
193    esac
194  esac
195  case "X${libopts_cv_with_libregex_libs}" in
196  Xyes|Xno|X )
197    case "X${libopts_cv_with_libregex_root}" in
198    Xyes|Xno|X ) libopts_cv_with_libregex_libs=no ;;
199    * )        libopts_cv_with_libregex_libs="-L${libopts_cv_with_libregex_root}/lib -lregex" ;;
200    esac
201  esac
202  libopts_save_CPPFLAGS="${CPPFLAGS}"
203  libopts_save_LIBS="${LIBS}"
204  case "X${libopts_cv_with_libregex_cflags}" in
205  Xyes|Xno|X )
206    libopts_cv_with_libregex_cflags="" ;;
207  * ) CPPFLAGS="${CPPFLAGS} ${libopts_cv_with_libregex_cflags}" ;;
208  esac
209  case "X${libopts_cv_with_libregex_libs}" in
210  Xyes|Xno|X )
211    libopts_cv_with_libregex_libs="" ;;
212  * )
213    LIBS="${LIBS} ${libopts_cv_with_libregex_libs}" ;;
214  esac
215  LIBREGEX_CFLAGS=""
216  LIBREGEX_LIBS=""
217  AC_MSG_CHECKING([whether libregex functions properly])
218  AC_CACHE_VAL([libopts_cv_with_libregex],[
219  AC_RUN_IFELSE([@%:@include <stdio.h>
220@%:@include <stdlib.h>
221@%:@include <sys/types.h>
222@%:@include REGEX_HEADER
223static regex_t re;
224void comp_re(char const * pzPat) {
225  int res = regcomp( &re, pzPat, REG_EXTENDED|REG_ICASE|REG_NEWLINE );
226  if (res == 0) return;
227  exit( res ); }
228int main() {
229  regmatch_t m@<:@2@:>@;
230  comp_re( "^.*\@S|@"   );
231  comp_re( "()|no.*" );
232  comp_re( "."       );
233  if (regexec( &re, "X", 2, m, 0 ) != 0)  return 1;
234  if ((m@<:@0@:>@.rm_so != 0) || (m@<:@0@:>@.rm_eo != 1)) {
235    fputs( "error: regex -->.<-- did not match\n", stderr );
236    return 1;
237  }
238  return 0; }],
239    [libopts_cv_with_libregex=yes], [libopts_cv_with_libregex=no],
240    [libopts_cv_with_libregex=no]) # end of AC_RUN_IFELSE
241  ]) # end of AC_CACHE_VAL for libopts_cv_with_libregex
242  fi ## disabled by request
243  AC_MSG_RESULT([${libopts_cv_with_libregex}])
244  if test "X${libopts_cv_with_libregex}" != Xno
245  then
246    AC_DEFINE([WITH_LIBREGEX],[1],
247        [Define this if a working libregex can be found])
248  else
249    CPPFLAGS="${libopts_save_CPPFLAGS}"
250    LIBS="${libopts_save_LIBS}"
251    libopts_cv_with_libregex_root=no
252libopts_cv_with_libregex_cflags=no
253libopts_cv_with_libregex_libs=no
254libopts_cv_with_libregex=no
255  fi
256
257]) # end of AC_DEFUN of LIBOPTS_WITHLIB_REGEX
258
259
260AC_DEFUN([LIBOPTS_RUN_PATHFIND],[
261  AC_MSG_CHECKING([whether pathfind(3) works])
262  AC_CACHE_VAL([libopts_cv_run_pathfind],[
263  AC_RUN_IFELSE([@%:@include <string.h>
264@%:@include <stdlib.h>
265int main (int argc, char ** argv) {
266   char * pz = pathfind( getenv( "PATH" ), "sh", "x" );
267   return (pz == 0) ? 1 : 0;
268}],
269    [libopts_cv_run_pathfind=yes],[libopts_cv_run_pathfind=no],[libopts_cv_run_pathfind=no]
270  ) # end of RUN_IFELSE
271  ]) # end of AC_CACHE_VAL for libopts_cv_run_pathfind
272  AC_MSG_RESULT([${libopts_cv_run_pathfind}])
273  if test "X${libopts_cv_run_pathfind}" != Xno
274  then
275    AC_DEFINE([HAVE_PATHFIND],[1],
276        [Define this if pathfind(3) works])
277  fi
278
279]) # end of AC_DEFUN of LIBOPTS_RUN_PATHFIND
280
281
282AC_DEFUN([LIBOPTS_TEST_DEV_ZERO],[
283  AC_MSG_CHECKING([whether /dev/zero is readable device])
284  AC_CACHE_VAL([libopts_cv_test_dev_zero],[
285    libopts_cv_test_dev_zero=`exec 2> /dev/null
286dzero=\`ls -lL /dev/zero | egrep ^c......r\`
287test -z "${dzero}" && exit 1
288echo ${dzero}`
289    if test $? -ne 0 || test -z "$libopts_cv_test_dev_zero"
290    then libopts_cv_test_dev_zero=no
291    fi
292  ]) # end of CACHE_VAL of libopts_cv_test_dev_zero
293  AC_MSG_RESULT([${libopts_cv_test_dev_zero}])
294  if test "X${libopts_cv_test_dev_zero}" != Xno
295  then
296    AC_DEFINE([HAVE_DEV_ZERO],[1],
297        [Define this if /dev/zero is readable device])
298  fi
299
300]) # end of AC_DEFUN of LIBOPTS_TEST_DEV_ZERO
301
302
303AC_DEFUN([LIBOPTS_RUN_REALPATH],[
304  AC_MSG_CHECKING([whether we have a functional realpath(3C)])
305  AC_CACHE_VAL([libopts_cv_run_realpath],[
306  AC_RUN_IFELSE([@%:@include <limits.h>
307@%:@include <stdlib.h>
308int main (int argc, char ** argv) {
309@%:@ifndef PATH_MAX
310choke me!!
311@%:@else
312   char zPath@<:@PATH_MAX+1@:>@;
313@%:@endif
314   char *pz = realpath(argv@<:@0@:>@, zPath);
315   return (pz == zPath) ? 0 : 1;
316}],
317    [libopts_cv_run_realpath=yes],[libopts_cv_run_realpath=no],[libopts_cv_run_realpath=no]
318  ) # end of RUN_IFELSE
319  ]) # end of AC_CACHE_VAL for libopts_cv_run_realpath
320  AC_MSG_RESULT([${libopts_cv_run_realpath}])
321  if test "X${libopts_cv_run_realpath}" != Xno
322  then
323    AC_DEFINE([HAVE_REALPATH],[1],
324        [Define this if we have a functional realpath(3C)])
325  fi
326
327]) # end of AC_DEFUN of LIBOPTS_RUN_REALPATH
328
329
330AC_DEFUN([LIBOPTS_RUN_STRFTIME],[
331  AC_MSG_CHECKING([whether strftime() works])
332  AC_CACHE_VAL([libopts_cv_run_strftime],[
333  AC_RUN_IFELSE([@%:@include <time.h>
334@%:@include <string.h>
335char t_buf@<:@ 64 @:>@;
336int main() {
337  static char const z@<:@@:>@ = "Thursday Aug 28 240";
338  struct tm tm;
339  tm.tm_sec   = 36;  /* seconds after the minute @<:@0, 61@:>@  */
340  tm.tm_min   = 44;  /* minutes after the hour @<:@0, 59@:>@ */
341  tm.tm_hour  = 12;  /* hour since midnight @<:@0, 23@:>@ */
342  tm.tm_mday  = 28;  /* day of the month @<:@1, 31@:>@ */
343  tm.tm_mon   =  7;  /* months since January @<:@0, 11@:>@ */
344  tm.tm_year  = 86;  /* years since 1900 */
345  tm.tm_wday  =  4;  /* days since Sunday @<:@0, 6@:>@ */
346  tm.tm_yday  = 239; /* days since January 1 @<:@0, 365@:>@ */
347  tm.tm_isdst =  1;  /* flag for daylight savings time */
348  strftime( t_buf, sizeof( t_buf ), "%A %b %d %j", &tm );
349  return (strcmp( t_buf, z ) != 0); }],
350    [libopts_cv_run_strftime=yes],[libopts_cv_run_strftime=no],[libopts_cv_run_strftime=no]
351  ) # end of RUN_IFELSE
352  ]) # end of AC_CACHE_VAL for libopts_cv_run_strftime
353  AC_MSG_RESULT([${libopts_cv_run_strftime}])
354  if test "X${libopts_cv_run_strftime}" != Xno
355  then
356    AC_DEFINE([HAVE_STRFTIME],[1],
357        [Define this if strftime() works])
358  fi
359
360]) # end of AC_DEFUN of LIBOPTS_RUN_STRFTIME
361
362
363AC_DEFUN([LIBOPTS_RUN_FOPEN_BINARY],[
364  AC_MSG_CHECKING([whether fopen accepts "b" mode])
365  AC_CACHE_VAL([libopts_cv_run_fopen_binary],[
366  AC_RUN_IFELSE([@%:@include <stdio.h>
367int main (int argc, char ** argv) {
368FILE * fp = fopen("conftest.@S|@ac_ext", "rb");
369return (fp == NULL) ? 1 : fclose(fp); }],
370    [libopts_cv_run_fopen_binary=yes],[libopts_cv_run_fopen_binary=no],[libopts_cv_run_fopen_binary=no]
371  ) # end of RUN_IFELSE
372  ]) # end of AC_CACHE_VAL for libopts_cv_run_fopen_binary
373  AC_MSG_RESULT([${libopts_cv_run_fopen_binary}])
374  if test "X${libopts_cv_run_fopen_binary}" != Xno
375  then
376    AC_DEFINE([FOPEN_BINARY_FLAG],"b",
377	[fopen(3) accepts a 'b' in the mode flag])
378  else
379    AC_DEFINE([FOPEN_BINARY_FLAG],"",
380	[fopen(3) accepts a 'b' in the mode flag])
381  fi
382
383]) # end of AC_DEFUN of LIBOPTS_RUN_FOPEN_BINARY
384
385
386AC_DEFUN([LIBOPTS_RUN_FOPEN_TEXT],[
387  AC_MSG_CHECKING([whether fopen accepts "t" mode])
388  AC_CACHE_VAL([libopts_cv_run_fopen_text],[
389  AC_RUN_IFELSE([@%:@include <stdio.h>
390int main (int argc, char ** argv) {
391FILE * fp = fopen("conftest.@S|@ac_ext", "rt");
392return (fp == NULL) ? 1 : fclose(fp); }],
393    [libopts_cv_run_fopen_text=yes],[libopts_cv_run_fopen_text=no],[libopts_cv_run_fopen_text=no]
394  ) # end of RUN_IFELSE
395  ]) # end of AC_CACHE_VAL for libopts_cv_run_fopen_text
396  AC_MSG_RESULT([${libopts_cv_run_fopen_text}])
397  if test "X${libopts_cv_run_fopen_text}" != Xno
398  then
399    AC_DEFINE([FOPEN_TEXT_FLAG],"t",
400	[fopen(3) accepts a 't' in the mode flag])
401  else
402    AC_DEFINE([FOPEN_TEXT_FLAG],"",
403	[fopen(3) accepts a 't' in the mode flag])
404  fi
405
406]) # end of AC_DEFUN of LIBOPTS_RUN_FOPEN_TEXT
407
408
409AC_DEFUN([LIBOPTS_DISABLE_OPTIONAL_ARGS],[
410  AC_ARG_ENABLE([optional-args],
411    AS_HELP_STRING([--disable-optional-args], [not wanting optional option args]),
412    [libopts_cv_enable_optional_args=${enable_optional_args}],
413    AC_CACHE_CHECK([whether not wanting optional option args], libopts_cv_enable_optional_args,
414      libopts_cv_enable_optional_args=yes)
415  ) # end of AC_ARG_ENABLE
416  if test "X${libopts_cv_enable_optional_args}" = Xno
417  then
418    AC_DEFINE([NO_OPTIONAL_OPT_ARGS], [1],
419          [Define this if optional arguments are disallowed])
420  fi
421
422]) # end of AC_DEFUN of LIBOPTS_DISABLE_OPTIONAL_ARGS
423
424
425AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
426  AC_REQUIRE([INVOKE_LIBOPTS_MACROS_FIRST])
427  # Check to see if a reg expr header is specified.
428  LIBOPTS_WITH_REGEX_HEADER
429
430  # Check to see if a working libregex can be found.
431  LIBOPTS_WITHLIB_REGEX
432
433  # Check to see if pathfind(3) works.
434  LIBOPTS_RUN_PATHFIND
435
436  # Check to see if /dev/zero is readable device.
437  LIBOPTS_TEST_DEV_ZERO
438
439  # Check to see if we have a functional realpath(3C).
440  LIBOPTS_RUN_REALPATH
441
442  # Check to see if strftime() works.
443  LIBOPTS_RUN_STRFTIME
444
445  # Check to see if fopen accepts "b" mode.
446  LIBOPTS_RUN_FOPEN_BINARY
447
448  # Check to see if fopen accepts "t" mode.
449  LIBOPTS_RUN_FOPEN_TEXT
450
451  # Check to see if not wanting optional option args.
452  LIBOPTS_DISABLE_OPTIONAL_ARGS
453
454]) # end AC_DEFUN of INVOKE_LIBOPTS_MACROS
455
456dnl @synopsis  LIBOPTS_CHECK
457dnl
458dnl If autoopts-config works, add the linking information to LIBS.
459dnl Otherwise, add ``libopts-${ao_rev}'' to SUBDIRS and run all
460dnl the config tests that the library needs.  Invoke the
461dnl "INVOKE_LIBOPTS_MACROS" macro iff we are building libopts.
462dnl
463dnl  This file is part of AutoGen.
464dnl  AutoGen Copyright (C) 1992-2015 by Bruce Korb - all rights reserved
465dnl
466dnl  AutoGen is free software: you can redistribute it and/or modify it
467dnl  under the terms of the GNU General Public License as published by the
468dnl  Free Software Foundation, either version 3 of the License, or
469dnl  (at your option) any later version.
470dnl
471dnl  AutoGen is distributed in the hope that it will be useful, but
472dnl  WITHOUT ANY WARRANTY; without even the implied warranty of
473dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
474dnl  See the GNU General Public License for more details.
475dnl
476dnl  You should have received a copy of the GNU General Public License along
477dnl  with this program.  If not, see <http://www.gnu.org/licenses/>.
478dnl
479dnl Default to system libopts
480dnl
481AC_DEFUN([LIBOPTS_CHECK_COMMON],[
482  AC_REQUIRE([INVOKE_LIBOPTS_MACROS_FIRST])
483  [NEED_LIBOPTS_DIR='']
484  m4_pushdef([AO_Libopts_Dir],
485	    [ifelse($1, , [libopts], [$1])])
486  AC_ARG_ENABLE([local-libopts],
487    AC_HELP_STRING([--enable-local-libopts],
488       [Use the supplied libopts tearoff code]),[
489    if test x$enableval = xyes ; then
490       AC_MSG_NOTICE([Using supplied libopts tearoff])
491       LIBOPTS_CFLAGS='-I$(top_srcdir)/AO_Libopts_Dir'
492       NEED_LIBOPTS_DIR=true
493       LIBOPTS_LDADD='$(top_builddir)/AO_Libopts_Dir/libopts.la'
494    fi])
495
496  AC_ARG_ENABLE([libopts-install],
497    AC_HELP_STRING([--enable-libopts-install],
498       [Install libopts with client installation]))
499  AM_CONDITIONAL([INSTALL_LIBOPTS],[test "X${enable_libopts_install}" = Xyes])
500
501  [if test -z "${NEED_LIBOPTS_DIR}" ; then]
502     AC_MSG_CHECKING([whether autoopts-config can be found])
503     AC_ARG_WITH([autoopts-config],
504        AC_HELP_STRING([--with-autoopts-config],
505             [specify the config-info script]),
506        [lo_cv_with_autoopts_config=${with_autoopts_config}],
507        AC_CACHE_CHECK([whether autoopts-config is specified],
508             [lo_cv_with_autoopts_config],
509             [if autoopts-config --help 2>/dev/null 1>&2
510        then lo_cv_with_autoopts_config=autoopts-config
511        elif libopts-config --help 2>/dev/null 1>&2
512        then lo_cv_with_autoopts_config=libopts-config
513        else lo_cv_with_autoopts_config=no ; fi])
514     ) # end of AC_ARG_WITH
515
516     AC_CACHE_VAL([lo_cv_test_autoopts],[
517        if test -z "${lo_cv_with_autoopts_config}" \
518                -o X"${lo_cv_with_autoopts_config}" = Xno
519        then
520           if autoopts-config --help 2>/dev/null 1>&2
521           then lo_cv_with_autoopts_config=autoopts-config
522           elif libopts-config --help 2>/dev/null 1>&2
523           then lo_cv_with_autoopts_config=libopts-config
524           else lo_cv_with_autoopts_config=false ; fi
525        fi
526        lo_cv_test_autoopts=`
527            ${lo_cv_with_autoopts_config} --libs` 2> /dev/null
528        if test $? -ne 0 -o -z "${lo_cv_test_autoopts}"
529        then lo_cv_test_autoopts=no ; fi
530     ]) # end of CACHE_VAL
531     AC_MSG_RESULT([${lo_cv_test_autoopts}])
532
533     [if test "X${lo_cv_test_autoopts}" != Xno
534     then
535        LIBOPTS_LDADD="${lo_cv_test_autoopts}"
536        LIBOPTS_CFLAGS="`${lo_cv_with_autoopts_config} --cflags`"
537     else
538        LIBOPTS_LDADD='$(top_builddir)/]AO_Libopts_Dir[/libopts.la'
539        LIBOPTS_CFLAGS='-I$(top_srcdir)/]AO_Libopts_Dir['
540        NEED_LIBOPTS_DIR=true
541     fi
542  fi # end of if test -z "${NEED_LIBOPTS_DIR}"
543  if test -n "${LIBOPTS_BUILD_BLOCKED}" ; then
544    NEED_LIBOPTS_DIR=''
545  fi]
546  AM_CONDITIONAL([NEED_LIBOPTS], [test -n "${NEED_LIBOPTS_DIR}"])
547  AC_SUBST(LIBOPTS_LDADD)
548  AC_SUBST(LIBOPTS_CFLAGS)
549  AC_SUBST(LIBOPTS_DIR, AO_Libopts_Dir)
550  m4_popdef([AO_Libopts_Dir])
551[# end of AC_DEFUN of LIBOPTS_CHECK_COMMON]
552])
553dnl
554dnl AC_CONFIG_FILES conditionalization requires using AM_COND_IF, however
555dnl AM_COND_IF is new to Automake 1.11.  To use it on new Automake without
556dnl requiring same, a fallback implementation for older Automake is provided.
557dnl Note that disabling of AC_CONFIG_FILES requires Automake 1.11, this code
558dnl is correct only in terms of m4sh generated script.
559dnl
560m4_ifndef([AM_COND_IF],
561  [AC_DEFUN([AM_COND_IF], [
562    if test -z "$$1_TRUE"; then :
563      m4_n([$2])[]dnl
564      m4_ifval([$3],[
565    else
566      $3
567    ])dnl
568    fi[]dnl
569  ])dnl
570])
571dnl
572AC_DEFUN([LIBOPTS_CHECK_NOBUILD], [
573  m4_pushdef([AO_Libopts_Dir],
574	      [ifelse($1, , [libopts], [$1])])
575  LIBOPTS_BUILD_BLOCKED=true
576  LIBOPTS_CHECK_COMMON(AO_Libopts_Dir)
577  m4_popdef([AO_Libopts_Dir])dnl
578# end of AC_DEFUN of LIBOPTS_CHECK_NOBUILD
579])
580dnl
581AC_DEFUN([LIBOPTS_CHECK], [
582  m4_pushdef([AO_Libopts_Dir],
583	      [ifelse($1, , [libopts], [$1])])
584  LIBOPTS_BUILD_BLOCKED=''
585  LIBOPTS_CHECK_COMMON(AO_Libopts_Dir)
586  AM_COND_IF([NEED_LIBOPTS], [
587    INVOKE_LIBOPTS_MACROS
588  ])
589  AC_CONFIG_FILES(AO_Libopts_Dir/Makefile)
590  m4_popdef([AO_Libopts_Dir])dnl
591# end of AC_DEFUN of LIBOPTS_CHECK
592])
593