xref: /aosp_15_r20/external/e2fsprogs/aclocal.m4 (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
1# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
2
3# Copyright (C) 1996-2021 Free Software Foundation, Inc.
4
5# This file is free software; the Free Software Foundation
6# gives unlimited permission to copy and/or distribute it,
7# with or without modifications, as long as this notice is preserved.
8
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12# PARTICULAR PURPOSE.
13
14m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
15# ===========================================================================
16#        https://www.gnu.org/software/autoconf-archive/ax_pthread.html
17# ===========================================================================
18#
19# SYNOPSIS
20#
21#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
22#
23# DESCRIPTION
24#
25#   This macro figures out how to build C programs using POSIX threads. It
26#   sets the PTHREAD_LIBS output variable to the threads library and linker
27#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler
28#   flags that are needed. (The user can also force certain compiler
29#   flags/libs to be tested by setting these environment variables.)
30#
31#   Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is
32#   needed for multi-threaded programs (defaults to the value of CC
33#   respectively CXX otherwise). (This is necessary on e.g. AIX to use the
34#   special cc_r/CC_r compiler alias.)
35#
36#   NOTE: You are assumed to not only compile your program with these flags,
37#   but also to link with them as well. For example, you might link with
38#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
39#   $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
40#
41#   If you are only building threaded programs, you may wish to use these
42#   variables in your default LIBS, CFLAGS, and CC:
43#
44#     LIBS="$PTHREAD_LIBS $LIBS"
45#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
46#     CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
47#     CC="$PTHREAD_CC"
48#     CXX="$PTHREAD_CXX"
49#
50#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
51#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
52#   that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
53#
54#   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
55#   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
56#   PTHREAD_CFLAGS.
57#
58#   ACTION-IF-FOUND is a list of shell commands to run if a threads library
59#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
60#   is not found. If ACTION-IF-FOUND is not specified, the default action
61#   will define HAVE_PTHREAD.
62#
63#   Please let the authors know if this macro fails on any platform, or if
64#   you have any other suggestions or comments. This macro was based on work
65#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
66#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
67#   Alejandro Forero Cuervo to the autoconf macro repository. We are also
68#   grateful for the helpful feedback of numerous users.
69#
70#   Updated for Autoconf 2.68 by Daniel Richard G.
71#
72# LICENSE
73#
74#   Copyright (c) 2008 Steven G. Johnson <[email protected]>
75#   Copyright (c) 2011 Daniel Richard G. <[email protected]>
76#   Copyright (c) 2019 Marc Stevens <[email protected]>
77#
78#   This program is free software: you can redistribute it and/or modify it
79#   under the terms of the GNU General Public License as published by the
80#   Free Software Foundation, either version 3 of the License, or (at your
81#   option) any later version.
82#
83#   This program is distributed in the hope that it will be useful, but
84#   WITHOUT ANY WARRANTY; without even the implied warranty of
85#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
86#   Public License for more details.
87#
88#   You should have received a copy of the GNU General Public License along
89#   with this program. If not, see <https://www.gnu.org/licenses/>.
90#
91#   As a special exception, the respective Autoconf Macro's copyright owner
92#   gives unlimited permission to copy, distribute and modify the configure
93#   scripts that are the output of Autoconf when processing the Macro. You
94#   need not follow the terms of the GNU General Public License when using
95#   or distributing such scripts, even though portions of the text of the
96#   Macro appear in them. The GNU General Public License (GPL) does govern
97#   all other use of the material that constitutes the Autoconf Macro.
98#
99#   This special exception to the GPL applies to versions of the Autoconf
100#   Macro released by the Autoconf Archive. When you make and distribute a
101#   modified version of the Autoconf Macro, you may extend this special
102#   exception to the GPL to apply to your modified version as well.
103
104#serial 31
105
106AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
107AC_DEFUN([AX_PTHREAD], [
108AC_REQUIRE([AC_CANONICAL_HOST])
109AC_REQUIRE([AC_PROG_CC])
110AC_REQUIRE([AC_PROG_SED])
111AC_LANG_PUSH([C])
112ax_pthread_ok=no
113
114# We used to check for pthread.h first, but this fails if pthread.h
115# requires special compiler flags (e.g. on Tru64 or Sequent).
116# It gets checked for in the link test anyway.
117
118# First of all, check if the user has set any of the PTHREAD_LIBS,
119# etcetera environment variables, and if threads linking works using
120# them:
121if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
122        ax_pthread_save_CC="$CC"
123        ax_pthread_save_CFLAGS="$CFLAGS"
124        ax_pthread_save_LIBS="$LIBS"
125        AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
126        AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"])
127        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
128        LIBS="$PTHREAD_LIBS $LIBS"
129        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
130        AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
131        AC_MSG_RESULT([$ax_pthread_ok])
132        if test "x$ax_pthread_ok" = "xno"; then
133                PTHREAD_LIBS=""
134                PTHREAD_CFLAGS=""
135        fi
136        CC="$ax_pthread_save_CC"
137        CFLAGS="$ax_pthread_save_CFLAGS"
138        LIBS="$ax_pthread_save_LIBS"
139fi
140
141# We must check for the threads library under a number of different
142# names; the ordering is very important because some systems
143# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
144# libraries is broken (non-POSIX).
145
146# Create a list of thread flags to try. Items with a "," contain both
147# C compiler flags (before ",") and linker flags (after ","). Other items
148# starting with a "-" are C compiler flags, and remaining items are
149# library names, except for "none" which indicates that we try without
150# any flags at all, and "pthread-config" which is a program returning
151# the flags for the Pth emulation library.
152
153ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
154
155# The ordering *is* (sometimes) important.  Some notes on the
156# individual items follow:
157
158# pthreads: AIX (must check this before -lpthread)
159# none: in case threads are in libc; should be tried before -Kthread and
160#       other compiler flags to prevent continual compiler warnings
161# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
162# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
163#           (Note: HP C rejects this with "bad form for `-t' option")
164# -pthreads: Solaris/gcc (Note: HP C also rejects)
165# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
166#      doesn't hurt to check since this sometimes defines pthreads and
167#      -D_REENTRANT too), HP C (must be checked before -lpthread, which
168#      is present but should not be used directly; and before -mthreads,
169#      because the compiler interprets this as "-mt" + "-hreads")
170# -mthreads: Mingw32/gcc, Lynx/gcc
171# pthread: Linux, etcetera
172# --thread-safe: KAI C++
173# pthread-config: use pthread-config program (for GNU Pth library)
174
175case $host_os in
176
177        freebsd*)
178
179        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
180        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
181
182        ax_pthread_flags="-kthread lthread $ax_pthread_flags"
183        ;;
184
185        hpux*)
186
187        # From the cc(1) man page: "[-mt] Sets various -D flags to enable
188        # multi-threading and also sets -lpthread."
189
190        ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
191        ;;
192
193        openedition*)
194
195        # IBM z/OS requires a feature-test macro to be defined in order to
196        # enable POSIX threads at all, so give the user a hint if this is
197        # not set. (We don't define these ourselves, as they can affect
198        # other portions of the system API in unpredictable ways.)
199
200        AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
201            [
202#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
203             AX_PTHREAD_ZOS_MISSING
204#            endif
205            ],
206            [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
207        ;;
208
209        solaris*)
210
211        # On Solaris (at least, for some versions), libc contains stubbed
212        # (non-functional) versions of the pthreads routines, so link-based
213        # tests will erroneously succeed. (N.B.: The stubs are missing
214        # pthread_cleanup_push, or rather a function called by this macro,
215        # so we could check for that, but who knows whether they'll stub
216        # that too in a future libc.)  So we'll check first for the
217        # standard Solaris way of linking pthreads (-mt -lpthread).
218
219        ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
220        ;;
221esac
222
223# Are we compiling with Clang?
224
225AC_CACHE_CHECK([whether $CC is Clang],
226    [ax_cv_PTHREAD_CLANG],
227    [ax_cv_PTHREAD_CLANG=no
228     # Note that Autoconf sets GCC=yes for Clang as well as GCC
229     if test "x$GCC" = "xyes"; then
230        AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
231            [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
232#            if defined(__clang__) && defined(__llvm__)
233             AX_PTHREAD_CC_IS_CLANG
234#            endif
235            ],
236            [ax_cv_PTHREAD_CLANG=yes])
237     fi
238    ])
239ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
240
241
242# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
243
244# Note that for GCC and Clang -pthread generally implies -lpthread,
245# except when -nostdlib is passed.
246# This is problematic using libtool to build C++ shared libraries with pthread:
247# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
248# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
249# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
250# To solve this, first try -pthread together with -lpthread for GCC
251
252AS_IF([test "x$GCC" = "xyes"],
253      [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"])
254
255# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
256
257AS_IF([test "x$ax_pthread_clang" = "xyes"],
258      [ax_pthread_flags="-pthread,-lpthread -pthread"])
259
260
261# The presence of a feature test macro requesting re-entrant function
262# definitions is, on some systems, a strong hint that pthreads support is
263# correctly enabled
264
265case $host_os in
266        darwin* | hpux* | linux* | osf* | solaris*)
267        ax_pthread_check_macro="_REENTRANT"
268        ;;
269
270        aix*)
271        ax_pthread_check_macro="_THREAD_SAFE"
272        ;;
273
274        *)
275        ax_pthread_check_macro="--"
276        ;;
277esac
278AS_IF([test "x$ax_pthread_check_macro" = "x--"],
279      [ax_pthread_check_cond=0],
280      [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
281
282
283if test "x$ax_pthread_ok" = "xno"; then
284for ax_pthread_try_flag in $ax_pthread_flags; do
285
286        case $ax_pthread_try_flag in
287                none)
288                AC_MSG_CHECKING([whether pthreads work without any flags])
289                ;;
290
291                *,*)
292                PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
293                PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
294                AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"])
295                ;;
296
297                -*)
298                AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
299                PTHREAD_CFLAGS="$ax_pthread_try_flag"
300                ;;
301
302                pthread-config)
303                AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
304                AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
305                PTHREAD_CFLAGS="`pthread-config --cflags`"
306                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
307                ;;
308
309                *)
310                AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
311                PTHREAD_LIBS="-l$ax_pthread_try_flag"
312                ;;
313        esac
314
315        ax_pthread_save_CFLAGS="$CFLAGS"
316        ax_pthread_save_LIBS="$LIBS"
317        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
318        LIBS="$PTHREAD_LIBS $LIBS"
319
320        # Check for various functions.  We must include pthread.h,
321        # since some functions may be macros.  (On the Sequent, we
322        # need a special flag -Kthread to make this header compile.)
323        # We check for pthread_join because it is in -lpthread on IRIX
324        # while pthread_create is in libc.  We check for pthread_attr_init
325        # due to DEC craziness with -lpthreads.  We check for
326        # pthread_cleanup_push because it is one of the few pthread
327        # functions on Solaris that doesn't have a non-functional libc stub.
328        # We try pthread_create on general principles.
329
330        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
331#                       if $ax_pthread_check_cond
332#                        error "$ax_pthread_check_macro must be defined"
333#                       endif
334                        static void *some_global = NULL;
335                        static void routine(void *a)
336                          {
337                             /* To avoid any unused-parameter or
338                                unused-but-set-parameter warning.  */
339                             some_global = a;
340                          }
341                        static void *start_routine(void *a) { return a; }],
342                       [pthread_t th; pthread_attr_t attr;
343                        pthread_create(&th, 0, start_routine, 0);
344                        pthread_join(th, 0);
345                        pthread_attr_init(&attr);
346                        pthread_cleanup_push(routine, 0);
347                        pthread_cleanup_pop(0) /* ; */])],
348            [ax_pthread_ok=yes],
349            [])
350
351        CFLAGS="$ax_pthread_save_CFLAGS"
352        LIBS="$ax_pthread_save_LIBS"
353
354        AC_MSG_RESULT([$ax_pthread_ok])
355        AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
356
357        PTHREAD_LIBS=""
358        PTHREAD_CFLAGS=""
359done
360fi
361
362
363# Clang needs special handling, because older versions handle the -pthread
364# option in a rather... idiosyncratic way
365
366if test "x$ax_pthread_clang" = "xyes"; then
367
368        # Clang takes -pthread; it has never supported any other flag
369
370        # (Note 1: This will need to be revisited if a system that Clang
371        # supports has POSIX threads in a separate library.  This tends not
372        # to be the way of modern systems, but it's conceivable.)
373
374        # (Note 2: On some systems, notably Darwin, -pthread is not needed
375        # to get POSIX threads support; the API is always present and
376        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But
377        # -pthread does define _REENTRANT, and while the Darwin headers
378        # ignore this macro, third-party headers might not.)
379
380        # However, older versions of Clang make a point of warning the user
381        # that, in an invocation where only linking and no compilation is
382        # taking place, the -pthread option has no effect ("argument unused
383        # during compilation").  They expect -pthread to be passed in only
384        # when source code is being compiled.
385        #
386        # Problem is, this is at odds with the way Automake and most other
387        # C build frameworks function, which is that the same flags used in
388        # compilation (CFLAGS) are also used in linking.  Many systems
389        # supported by AX_PTHREAD require exactly this for POSIX threads
390        # support, and in fact it is often not straightforward to specify a
391        # flag that is used only in the compilation phase and not in
392        # linking.  Such a scenario is extremely rare in practice.
393        #
394        # Even though use of the -pthread flag in linking would only print
395        # a warning, this can be a nuisance for well-run software projects
396        # that build with -Werror.  So if the active version of Clang has
397        # this misfeature, we search for an option to squash it.
398
399        AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
400            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
401            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
402             # Create an alternate version of $ac_link that compiles and
403             # links in two steps (.c -> .o, .o -> exe) instead of one
404             # (.c -> exe), because the warning occurs only in the second
405             # step
406             ax_pthread_save_ac_link="$ac_link"
407             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
408             ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"`
409             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
410             ax_pthread_save_CFLAGS="$CFLAGS"
411             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
412                AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
413                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
414                ac_link="$ax_pthread_save_ac_link"
415                AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
416                    [ac_link="$ax_pthread_2step_ac_link"
417                     AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
418                         [break])
419                    ])
420             done
421             ac_link="$ax_pthread_save_ac_link"
422             CFLAGS="$ax_pthread_save_CFLAGS"
423             AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
424             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
425            ])
426
427        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
428                no | unknown) ;;
429                *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
430        esac
431
432fi # $ax_pthread_clang = yes
433
434
435
436# Various other checks:
437if test "x$ax_pthread_ok" = "xyes"; then
438        ax_pthread_save_CFLAGS="$CFLAGS"
439        ax_pthread_save_LIBS="$LIBS"
440        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
441        LIBS="$PTHREAD_LIBS $LIBS"
442
443        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
444        AC_CACHE_CHECK([for joinable pthread attribute],
445            [ax_cv_PTHREAD_JOINABLE_ATTR],
446            [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
447             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
448                 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
449                                                 [int attr = $ax_pthread_attr; return attr /* ; */])],
450                                [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
451                                [])
452             done
453            ])
454        AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
455               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
456               test "x$ax_pthread_joinable_attr_defined" != "xyes"],
457              [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
458                                  [$ax_cv_PTHREAD_JOINABLE_ATTR],
459                                  [Define to necessary symbol if this constant
460                                   uses a non-standard name on your system.])
461               ax_pthread_joinable_attr_defined=yes
462              ])
463
464        AC_CACHE_CHECK([whether more special flags are required for pthreads],
465            [ax_cv_PTHREAD_SPECIAL_FLAGS],
466            [ax_cv_PTHREAD_SPECIAL_FLAGS=no
467             case $host_os in
468             solaris*)
469             ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
470             ;;
471             esac
472            ])
473        AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
474               test "x$ax_pthread_special_flags_added" != "xyes"],
475              [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
476               ax_pthread_special_flags_added=yes])
477
478        AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
479            [ax_cv_PTHREAD_PRIO_INHERIT],
480            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
481                                             [[int i = PTHREAD_PRIO_INHERIT;
482                                               return i;]])],
483                            [ax_cv_PTHREAD_PRIO_INHERIT=yes],
484                            [ax_cv_PTHREAD_PRIO_INHERIT=no])
485            ])
486        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
487               test "x$ax_pthread_prio_inherit_defined" != "xyes"],
488              [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
489               ax_pthread_prio_inherit_defined=yes
490              ])
491
492        CFLAGS="$ax_pthread_save_CFLAGS"
493        LIBS="$ax_pthread_save_LIBS"
494
495        # More AIX lossage: compile with *_r variant
496        if test "x$GCC" != "xyes"; then
497            case $host_os in
498                aix*)
499                AS_CASE(["x/$CC"],
500                    [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
501                    [#handle absolute path differently from PATH based program lookup
502                     AS_CASE(["x$CC"],
503                         [x/*],
504                         [
505			   AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])
506			   AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])])
507			 ],
508                         [
509			   AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])
510			   AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])
511			 ]
512                     )
513                    ])
514                ;;
515            esac
516        fi
517fi
518
519test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
520test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
521
522AC_SUBST([PTHREAD_LIBS])
523AC_SUBST([PTHREAD_CFLAGS])
524AC_SUBST([PTHREAD_CC])
525AC_SUBST([PTHREAD_CXX])
526
527# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
528if test "x$ax_pthread_ok" = "xyes"; then
529        ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
530        :
531else
532        ax_pthread_ok=no
533        $2
534fi
535AC_LANG_POP
536])dnl AX_PTHREAD
537
538# gettext.m4 serial 71 (gettext-0.20.2)
539dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
540dnl This file is free software; the Free Software Foundation
541dnl gives unlimited permission to copy and/or distribute it,
542dnl with or without modifications, as long as this notice is preserved.
543dnl
544dnl This file can be used in projects which are not available under
545dnl the GNU General Public License or the GNU Lesser General Public
546dnl License but which still want to provide support for the GNU gettext
547dnl functionality.
548dnl Please note that the actual code of the GNU gettext library is covered
549dnl by the GNU Lesser General Public License, and the rest of the GNU
550dnl gettext package is covered by the GNU General Public License.
551dnl They are *not* in the public domain.
552
553dnl Authors:
554dnl   Ulrich Drepper <[email protected]>, 1995-2000.
555dnl   Bruno Haible <[email protected]>, 2000-2006, 2008-2010.
556
557dnl Macro to add for using GNU gettext.
558
559dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
560dnl INTLSYMBOL must be one of 'external', 'use-libtool'.
561dnl    INTLSYMBOL should be 'external' for packages other than GNU gettext, and
562dnl    'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'.
563dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
564dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
565dnl    depending on --{enable,disable}-{shared,static} and on the presence of
566dnl    AM-DISABLE-SHARED).
567dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
568dnl    implementations (in libc or libintl) without the ngettext() function
569dnl    will be ignored.  If NEEDSYMBOL is specified and is
570dnl    'need-formatstring-macros', then GNU gettext implementations that don't
571dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
572dnl INTLDIR is used to find the intl libraries.  If empty,
573dnl    the value '$(top_builddir)/intl/' is used.
574dnl
575dnl The result of the configuration is one of three cases:
576dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
577dnl    and used.
578dnl    Catalog format: GNU --> install in $(datadir)
579dnl    Catalog extension: .mo after installation, .gmo in source tree
580dnl 2) GNU gettext has been found in the system's C library.
581dnl    Catalog format: GNU --> install in $(datadir)
582dnl    Catalog extension: .mo after installation, .gmo in source tree
583dnl 3) No internationalization, always use English msgid.
584dnl    Catalog format: none
585dnl    Catalog extension: none
586dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
587dnl The use of .gmo is historical (it was needed to avoid overwriting the
588dnl GNU format catalogs when building on a platform with an X/Open gettext),
589dnl but we keep it in order not to force irrelevant filename changes on the
590dnl maintainers.
591dnl
592AC_DEFUN([AM_GNU_GETTEXT],
593[
594  dnl Argument checking.
595  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], ,
596    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
597])])])])
598  ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
599    [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
600])])
601  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
602    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
603])])])])
604  define([gt_included_intl],
605    ifelse([$1], [external], [no], [yes]))
606  gt_NEEDS_INIT
607  AM_GNU_GETTEXT_NEED([$2])
608
609  AC_REQUIRE([AM_PO_SUBDIRS])dnl
610  ifelse(gt_included_intl, yes, [
611    AC_REQUIRE([AM_INTL_SUBDIR])dnl
612  ])
613
614  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
615  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
616  AC_REQUIRE([AC_LIB_RPATH])
617
618  dnl Sometimes libintl requires libiconv, so first search for libiconv.
619  dnl Ideally we would do this search only after the
620  dnl      if test "$USE_NLS" = "yes"; then
621  dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
622  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
623  dnl the configure script would need to contain the same shell code
624  dnl again, outside any 'if'. There are two solutions:
625  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
626  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
627  dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
628  ifelse(gt_included_intl, yes, , [
629    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
630  ])
631
632  dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
633  gt_INTL_MACOSX
634
635  dnl Set USE_NLS.
636  AC_REQUIRE([AM_NLS])
637
638  ifelse(gt_included_intl, yes, [
639    BUILD_INCLUDED_LIBINTL=no
640    USE_INCLUDED_LIBINTL=no
641  ])
642  LIBINTL=
643  LTLIBINTL=
644  POSUB=
645
646  dnl Add a version number to the cache macros.
647  case " $gt_needs " in
648    *" need-formatstring-macros "*) gt_api_version=3 ;;
649    *" need-ngettext "*) gt_api_version=2 ;;
650    *) gt_api_version=1 ;;
651  esac
652  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
653  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
654
655  dnl If we use NLS figure out what method
656  if test "$USE_NLS" = "yes"; then
657    gt_use_preinstalled_gnugettext=no
658    ifelse(gt_included_intl, yes, [
659      AC_MSG_CHECKING([whether included gettext is requested])
660      AC_ARG_WITH([included-gettext],
661        [  --with-included-gettext use the GNU gettext library included here],
662        nls_cv_force_use_gnu_gettext=$withval,
663        nls_cv_force_use_gnu_gettext=no)
664      AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
665
666      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
667      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
668    ])
669        dnl User does not insist on using GNU NLS library.  Figure out what
670        dnl to use.  If GNU gettext is available we use this.  Else we have
671        dnl to fall back to GNU NLS library.
672
673        if test $gt_api_version -ge 3; then
674          gt_revision_test_code='
675#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
676#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
677#endif
678changequote(,)dnl
679typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
680changequote([,])dnl
681'
682        else
683          gt_revision_test_code=
684        fi
685        if test $gt_api_version -ge 2; then
686          gt_expression_test_code=' + * ngettext ("", "", 0)'
687        else
688          gt_expression_test_code=
689        fi
690
691        AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
692         [AC_LINK_IFELSE(
693            [AC_LANG_PROGRAM(
694               [[
695#include <libintl.h>
696#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
697extern int _nl_msg_cat_cntr;
698extern int *_nl_domain_bindings;
699#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
700#else
701#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
702#endif
703$gt_revision_test_code
704               ]],
705               [[
706bindtextdomain ("", "");
707return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
708               ]])],
709            [eval "$gt_func_gnugettext_libc=yes"],
710            [eval "$gt_func_gnugettext_libc=no"])])
711
712        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
713          dnl Sometimes libintl requires libiconv, so first search for libiconv.
714          ifelse(gt_included_intl, yes, , [
715            AM_ICONV_LINK
716          ])
717          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
718          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
719          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
720          dnl even if libiconv doesn't exist.
721          AC_LIB_LINKFLAGS_BODY([intl])
722          AC_CACHE_CHECK([for GNU gettext in libintl],
723            [$gt_func_gnugettext_libintl],
724           [gt_save_CPPFLAGS="$CPPFLAGS"
725            CPPFLAGS="$CPPFLAGS $INCINTL"
726            gt_save_LIBS="$LIBS"
727            LIBS="$LIBS $LIBINTL"
728            dnl Now see whether libintl exists and does not depend on libiconv.
729            AC_LINK_IFELSE(
730              [AC_LANG_PROGRAM(
731                 [[
732#include <libintl.h>
733#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
734extern int _nl_msg_cat_cntr;
735extern
736#ifdef __cplusplus
737"C"
738#endif
739const char *_nl_expand_alias (const char *);
740#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
741#else
742#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
743#endif
744$gt_revision_test_code
745                 ]],
746                 [[
747bindtextdomain ("", "");
748return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
749                 ]])],
750              [eval "$gt_func_gnugettext_libintl=yes"],
751              [eval "$gt_func_gnugettext_libintl=no"])
752            dnl Now see whether libintl exists and depends on libiconv.
753            if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
754              LIBS="$LIBS $LIBICONV"
755              AC_LINK_IFELSE(
756                [AC_LANG_PROGRAM(
757                   [[
758#include <libintl.h>
759#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
760extern int _nl_msg_cat_cntr;
761extern
762#ifdef __cplusplus
763"C"
764#endif
765const char *_nl_expand_alias (const char *);
766#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
767#else
768#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
769#endif
770$gt_revision_test_code
771                   ]],
772                   [[
773bindtextdomain ("", "");
774return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
775                   ]])],
776                [LIBINTL="$LIBINTL $LIBICONV"
777                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
778                 eval "$gt_func_gnugettext_libintl=yes"
779                ])
780            fi
781            CPPFLAGS="$gt_save_CPPFLAGS"
782            LIBS="$gt_save_LIBS"])
783        fi
784
785        dnl If an already present or preinstalled GNU gettext() is found,
786        dnl use it.  But if this macro is used in GNU gettext, and GNU
787        dnl gettext is already preinstalled in libintl, we update this
788        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
789        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
790           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
791                && test "$PACKAGE" != gettext-runtime \
792                && test "$PACKAGE" != gettext-tools; }; then
793          gt_use_preinstalled_gnugettext=yes
794        else
795          dnl Reset the values set by searching for libintl.
796          LIBINTL=
797          LTLIBINTL=
798          INCINTL=
799        fi
800
801    ifelse(gt_included_intl, yes, [
802        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
803          dnl GNU gettext is not found in the C library.
804          dnl Fall back on included GNU gettext library.
805          nls_cv_use_gnu_gettext=yes
806        fi
807      fi
808
809      if test "$nls_cv_use_gnu_gettext" = "yes"; then
810        dnl Mark actions used to generate GNU NLS library.
811        BUILD_INCLUDED_LIBINTL=yes
812        USE_INCLUDED_LIBINTL=yes
813        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
814        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
815        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
816      fi
817
818      CATOBJEXT=
819      if test "$gt_use_preinstalled_gnugettext" = "yes" \
820         || test "$nls_cv_use_gnu_gettext" = "yes"; then
821        dnl Mark actions to use GNU gettext tools.
822        CATOBJEXT=.gmo
823      fi
824    ])
825
826    if test -n "$INTL_MACOSX_LIBS"; then
827      if test "$gt_use_preinstalled_gnugettext" = "yes" \
828         || test "$nls_cv_use_gnu_gettext" = "yes"; then
829        dnl Some extra flags are needed during linking.
830        LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
831        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
832      fi
833    fi
834
835    if test "$gt_use_preinstalled_gnugettext" = "yes" \
836       || test "$nls_cv_use_gnu_gettext" = "yes"; then
837      AC_DEFINE([ENABLE_NLS], [1],
838        [Define to 1 if translation of program messages to the user's native language
839   is requested.])
840    else
841      USE_NLS=no
842    fi
843  fi
844
845  AC_MSG_CHECKING([whether to use NLS])
846  AC_MSG_RESULT([$USE_NLS])
847  if test "$USE_NLS" = "yes"; then
848    AC_MSG_CHECKING([where the gettext function comes from])
849    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
850      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
851        gt_source="external libintl"
852      else
853        gt_source="libc"
854      fi
855    else
856      gt_source="included intl directory"
857    fi
858    AC_MSG_RESULT([$gt_source])
859  fi
860
861  if test "$USE_NLS" = "yes"; then
862
863    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
864      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
865        AC_MSG_CHECKING([how to link with libintl])
866        AC_MSG_RESULT([$LIBINTL])
867        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
868      fi
869
870      dnl For backward compatibility. Some packages may be using this.
871      AC_DEFINE([HAVE_GETTEXT], [1],
872       [Define if the GNU gettext() function is already present or preinstalled.])
873      AC_DEFINE([HAVE_DCGETTEXT], [1],
874       [Define if the GNU dcgettext() function is already present or preinstalled.])
875    fi
876
877    dnl We need to process the po/ directory.
878    POSUB=po
879  fi
880
881  ifelse(gt_included_intl, yes, [
882    dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
883    dnl because some of the testsuite requires it.
884    BUILD_INCLUDED_LIBINTL=yes
885
886    dnl Make all variables we use known to autoconf.
887    AC_SUBST([BUILD_INCLUDED_LIBINTL])
888    AC_SUBST([USE_INCLUDED_LIBINTL])
889    AC_SUBST([CATOBJEXT])
890  ])
891
892  dnl For backward compatibility. Some Makefiles may be using this.
893  INTLLIBS="$LIBINTL"
894  AC_SUBST([INTLLIBS])
895
896  dnl Make all documented variables known to autoconf.
897  AC_SUBST([LIBINTL])
898  AC_SUBST([LTLIBINTL])
899  AC_SUBST([POSUB])
900])
901
902
903dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
904m4_define([gt_NEEDS_INIT],
905[
906  m4_divert_text([DEFAULTS], [gt_needs=])
907  m4_define([gt_NEEDS_INIT], [])
908])
909
910
911dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
912AC_DEFUN([AM_GNU_GETTEXT_NEED],
913[
914  m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
915])
916
917
918dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
919AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
920
921
922dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
923AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
924
925# host-cpu-c-abi.m4 serial 13
926dnl Copyright (C) 2002-2020 Free Software Foundation, Inc.
927dnl This file is free software; the Free Software Foundation
928dnl gives unlimited permission to copy and/or distribute it,
929dnl with or without modifications, as long as this notice is preserved.
930
931dnl From Bruno Haible and Sam Steingold.
932
933dnl Sets the HOST_CPU variable to the canonical name of the CPU.
934dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
935dnl C language ABI (application binary interface).
936dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
937dnl config.h.
938dnl
939dnl This canonical name can be used to select a particular assembly language
940dnl source file that will interoperate with C code on the given host.
941dnl
942dnl For example:
943dnl * 'i386' and 'sparc' are different canonical names, because code for i386
944dnl   will not run on SPARC CPUs and vice versa. They have different
945dnl   instruction sets.
946dnl * 'sparc' and 'sparc64' are different canonical names, because code for
947dnl   'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
948dnl   contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
949dnl   instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
950dnl   mode, but not both.
951dnl * 'mips' and 'mipsn32' are different canonical names, because they use
952dnl   different argument passing and return conventions for C functions, and
953dnl   although the instruction set of 'mips' is a large subset of the
954dnl   instruction set of 'mipsn32'.
955dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
956dnl   different sizes for the C types like 'int' and 'void *', and although
957dnl   the instruction sets of 'mipsn32' and 'mips64' are the same.
958dnl * The same canonical name is used for different endiannesses. You can
959dnl   determine the endianness through preprocessor symbols:
960dnl   - 'arm': test __ARMEL__.
961dnl   - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
962dnl   - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
963dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
964dnl   (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
965dnl   - Instructions that do not exist on all of these CPUs (cmpxchg,
966dnl     MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
967dnl     assembly language source files use such instructions, you will
968dnl     need to make the distinction.
969dnl   - Speed of execution of the common instruction set is reasonable across
970dnl     the entire family of CPUs. If you have assembly language source files
971dnl     that are optimized for particular CPU types (like GNU gmp has), you
972dnl     will need to make the distinction.
973dnl   See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
974AC_DEFUN([gl_HOST_CPU_C_ABI],
975[
976  AC_REQUIRE([AC_CANONICAL_HOST])
977  AC_REQUIRE([gl_C_ASM])
978  AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
979    [case "$host_cpu" in
980
981changequote(,)dnl
982       i[34567]86 )
983changequote([,])dnl
984         gl_cv_host_cpu_c_abi=i386
985         ;;
986
987       x86_64 )
988         # On x86_64 systems, the C compiler may be generating code in one of
989         # these ABIs:
990         # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
991         # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
992         #   with native Windows (mingw, MSVC).
993         # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
994         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
995         AC_COMPILE_IFELSE(
996           [AC_LANG_SOURCE(
997              [[#if (defined __x86_64__ || defined __amd64__ \
998                     || defined _M_X64 || defined _M_AMD64)
999                 int ok;
1000                #else
1001                 error fail
1002                #endif
1003              ]])],
1004           [AC_COMPILE_IFELSE(
1005              [AC_LANG_SOURCE(
1006                 [[#if defined __ILP32__ || defined _ILP32
1007                    int ok;
1008                   #else
1009                    error fail
1010                   #endif
1011                 ]])],
1012              [gl_cv_host_cpu_c_abi=x86_64-x32],
1013              [gl_cv_host_cpu_c_abi=x86_64])],
1014           [gl_cv_host_cpu_c_abi=i386])
1015         ;;
1016
1017changequote(,)dnl
1018       alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
1019changequote([,])dnl
1020         gl_cv_host_cpu_c_abi=alpha
1021         ;;
1022
1023       arm* | aarch64 )
1024         # Assume arm with EABI.
1025         # On arm64 systems, the C compiler may be generating code in one of
1026         # these ABIs:
1027         # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
1028         # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
1029         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
1030         AC_COMPILE_IFELSE(
1031           [AC_LANG_SOURCE(
1032              [[#ifdef __aarch64__
1033                 int ok;
1034                #else
1035                 error fail
1036                #endif
1037              ]])],
1038           [AC_COMPILE_IFELSE(
1039              [AC_LANG_SOURCE(
1040                [[#if defined __ILP32__ || defined _ILP32
1041                   int ok;
1042                  #else
1043                   error fail
1044                  #endif
1045                ]])],
1046              [gl_cv_host_cpu_c_abi=arm64-ilp32],
1047              [gl_cv_host_cpu_c_abi=arm64])],
1048           [# Don't distinguish little-endian and big-endian arm, since they
1049            # don't require different machine code for simple operations and
1050            # since the user can distinguish them through the preprocessor
1051            # defines __ARMEL__ vs. __ARMEB__.
1052            # But distinguish arm which passes floating-point arguments and
1053            # return values in integer registers (r0, r1, ...) - this is
1054            # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
1055            # passes them in float registers (s0, s1, ...) and double registers
1056            # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
1057            # sets the preprocessor defines __ARM_PCS (for the first case) and
1058            # __ARM_PCS_VFP (for the second case), but older GCC does not.
1059            echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
1060            # Look for a reference to the register d0 in the .s file.
1061            AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
1062            if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
1063              gl_cv_host_cpu_c_abi=armhf
1064            else
1065              gl_cv_host_cpu_c_abi=arm
1066            fi
1067            rm -f conftest*
1068           ])
1069         ;;
1070
1071       hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
1072         # On hppa, the C compiler may be generating 32-bit code or 64-bit
1073         # code. In the latter case, it defines _LP64 and __LP64__.
1074         AC_COMPILE_IFELSE(
1075           [AC_LANG_SOURCE(
1076              [[#ifdef __LP64__
1077                 int ok;
1078                #else
1079                 error fail
1080                #endif
1081              ]])],
1082           [gl_cv_host_cpu_c_abi=hppa64],
1083           [gl_cv_host_cpu_c_abi=hppa])
1084         ;;
1085
1086       ia64* )
1087         # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
1088         # 32-bit code. In the latter case, it defines _ILP32.
1089         AC_COMPILE_IFELSE(
1090           [AC_LANG_SOURCE(
1091              [[#ifdef _ILP32
1092                 int ok;
1093                #else
1094                 error fail
1095                #endif
1096              ]])],
1097           [gl_cv_host_cpu_c_abi=ia64-ilp32],
1098           [gl_cv_host_cpu_c_abi=ia64])
1099         ;;
1100
1101       mips* )
1102         # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
1103         # at 32.
1104         AC_COMPILE_IFELSE(
1105           [AC_LANG_SOURCE(
1106              [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
1107                 int ok;
1108                #else
1109                 error fail
1110                #endif
1111              ]])],
1112           [gl_cv_host_cpu_c_abi=mips64],
1113           [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
1114            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
1115            # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
1116            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
1117            AC_COMPILE_IFELSE(
1118              [AC_LANG_SOURCE(
1119                 [[#if (_MIPS_SIM == _ABIN32)
1120                    int ok;
1121                   #else
1122                    error fail
1123                   #endif
1124                 ]])],
1125              [gl_cv_host_cpu_c_abi=mipsn32],
1126              [gl_cv_host_cpu_c_abi=mips])])
1127         ;;
1128
1129       powerpc* )
1130         # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
1131         # No need to distinguish them here; the caller may distinguish
1132         # them based on the OS.
1133         # On powerpc64 systems, the C compiler may still be generating
1134         # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
1135         # be generating 64-bit code.
1136         AC_COMPILE_IFELSE(
1137           [AC_LANG_SOURCE(
1138              [[#if defined __powerpc64__ || defined _ARCH_PPC64
1139                 int ok;
1140                #else
1141                 error fail
1142                #endif
1143              ]])],
1144           [# On powerpc64, there are two ABIs on Linux: The AIX compatible
1145            # one and the ELFv2 one. The latter defines _CALL_ELF=2.
1146            AC_COMPILE_IFELSE(
1147              [AC_LANG_SOURCE(
1148                 [[#if defined _CALL_ELF && _CALL_ELF == 2
1149                    int ok;
1150                   #else
1151                    error fail
1152                   #endif
1153                 ]])],
1154              [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
1155              [gl_cv_host_cpu_c_abi=powerpc64])
1156           ],
1157           [gl_cv_host_cpu_c_abi=powerpc])
1158         ;;
1159
1160       rs6000 )
1161         gl_cv_host_cpu_c_abi=powerpc
1162         ;;
1163
1164       riscv32 | riscv64 )
1165         # There are 2 architectures (with variants): rv32* and rv64*.
1166         AC_COMPILE_IFELSE(
1167           [AC_LANG_SOURCE(
1168              [[#if __riscv_xlen == 64
1169                  int ok;
1170                #else
1171                  error fail
1172                #endif
1173              ]])],
1174           [cpu=riscv64],
1175           [cpu=riscv32])
1176         # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
1177         # Size of 'long' and 'void *':
1178         AC_COMPILE_IFELSE(
1179           [AC_LANG_SOURCE(
1180              [[#if defined __LP64__
1181                  int ok;
1182                #else
1183                  error fail
1184                #endif
1185              ]])],
1186           [main_abi=lp64],
1187           [main_abi=ilp32])
1188         # Float ABIs:
1189         # __riscv_float_abi_double:
1190         #   'float' and 'double' are passed in floating-point registers.
1191         # __riscv_float_abi_single:
1192         #   'float' are passed in floating-point registers.
1193         # __riscv_float_abi_soft:
1194         #   No values are passed in floating-point registers.
1195         AC_COMPILE_IFELSE(
1196           [AC_LANG_SOURCE(
1197              [[#if defined __riscv_float_abi_double
1198                  int ok;
1199                #else
1200                  error fail
1201                #endif
1202              ]])],
1203           [float_abi=d],
1204           [AC_COMPILE_IFELSE(
1205              [AC_LANG_SOURCE(
1206                 [[#if defined __riscv_float_abi_single
1207                     int ok;
1208                   #else
1209                     error fail
1210                   #endif
1211                 ]])],
1212              [float_abi=f],
1213              [float_abi=''])
1214           ])
1215         gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
1216         ;;
1217
1218       s390* )
1219         # On s390x, the C compiler may be generating 64-bit (= s390x) code
1220         # or 31-bit (= s390) code.
1221         AC_COMPILE_IFELSE(
1222           [AC_LANG_SOURCE(
1223              [[#if defined __LP64__ || defined __s390x__
1224                  int ok;
1225                #else
1226                  error fail
1227                #endif
1228              ]])],
1229           [gl_cv_host_cpu_c_abi=s390x],
1230           [gl_cv_host_cpu_c_abi=s390])
1231         ;;
1232
1233       sparc | sparc64 )
1234         # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
1235         # C compiler still generates 32-bit code.
1236         AC_COMPILE_IFELSE(
1237           [AC_LANG_SOURCE(
1238              [[#if defined __sparcv9 || defined __arch64__
1239                 int ok;
1240                #else
1241                 error fail
1242                #endif
1243              ]])],
1244           [gl_cv_host_cpu_c_abi=sparc64],
1245           [gl_cv_host_cpu_c_abi=sparc])
1246         ;;
1247
1248       *)
1249         gl_cv_host_cpu_c_abi="$host_cpu"
1250         ;;
1251     esac
1252    ])
1253
1254  dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
1255  HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
1256  HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
1257  AC_SUBST([HOST_CPU])
1258  AC_SUBST([HOST_CPU_C_ABI])
1259
1260  # This was
1261  #   AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
1262  #   AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
1263  # earlier, but KAI C++ 3.2d doesn't like this.
1264  sed -e 's/-/_/g' >> confdefs.h <<EOF
1265#ifndef __${HOST_CPU}__
1266#define __${HOST_CPU}__ 1
1267#endif
1268#ifndef __${HOST_CPU_C_ABI}__
1269#define __${HOST_CPU_C_ABI}__ 1
1270#endif
1271EOF
1272  AH_TOP([/* CPU and C ABI indicator */
1273#ifndef __i386__
1274#undef __i386__
1275#endif
1276#ifndef __x86_64_x32__
1277#undef __x86_64_x32__
1278#endif
1279#ifndef __x86_64__
1280#undef __x86_64__
1281#endif
1282#ifndef __alpha__
1283#undef __alpha__
1284#endif
1285#ifndef __arm__
1286#undef __arm__
1287#endif
1288#ifndef __armhf__
1289#undef __armhf__
1290#endif
1291#ifndef __arm64_ilp32__
1292#undef __arm64_ilp32__
1293#endif
1294#ifndef __arm64__
1295#undef __arm64__
1296#endif
1297#ifndef __hppa__
1298#undef __hppa__
1299#endif
1300#ifndef __hppa64__
1301#undef __hppa64__
1302#endif
1303#ifndef __ia64_ilp32__
1304#undef __ia64_ilp32__
1305#endif
1306#ifndef __ia64__
1307#undef __ia64__
1308#endif
1309#ifndef __m68k__
1310#undef __m68k__
1311#endif
1312#ifndef __mips__
1313#undef __mips__
1314#endif
1315#ifndef __mipsn32__
1316#undef __mipsn32__
1317#endif
1318#ifndef __mips64__
1319#undef __mips64__
1320#endif
1321#ifndef __powerpc__
1322#undef __powerpc__
1323#endif
1324#ifndef __powerpc64__
1325#undef __powerpc64__
1326#endif
1327#ifndef __powerpc64_elfv2__
1328#undef __powerpc64_elfv2__
1329#endif
1330#ifndef __riscv32__
1331#undef __riscv32__
1332#endif
1333#ifndef __riscv64__
1334#undef __riscv64__
1335#endif
1336#ifndef __riscv32_ilp32__
1337#undef __riscv32_ilp32__
1338#endif
1339#ifndef __riscv32_ilp32f__
1340#undef __riscv32_ilp32f__
1341#endif
1342#ifndef __riscv32_ilp32d__
1343#undef __riscv32_ilp32d__
1344#endif
1345#ifndef __riscv64_ilp32__
1346#undef __riscv64_ilp32__
1347#endif
1348#ifndef __riscv64_ilp32f__
1349#undef __riscv64_ilp32f__
1350#endif
1351#ifndef __riscv64_ilp32d__
1352#undef __riscv64_ilp32d__
1353#endif
1354#ifndef __riscv64_lp64__
1355#undef __riscv64_lp64__
1356#endif
1357#ifndef __riscv64_lp64f__
1358#undef __riscv64_lp64f__
1359#endif
1360#ifndef __riscv64_lp64d__
1361#undef __riscv64_lp64d__
1362#endif
1363#ifndef __s390__
1364#undef __s390__
1365#endif
1366#ifndef __s390x__
1367#undef __s390x__
1368#endif
1369#ifndef __sh__
1370#undef __sh__
1371#endif
1372#ifndef __sparc__
1373#undef __sparc__
1374#endif
1375#ifndef __sparc64__
1376#undef __sparc64__
1377#endif
1378])
1379
1380])
1381
1382
1383dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
1384dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
1385dnl one, or to 'unknown' if unknown.
1386dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
1387AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
1388[
1389  AC_REQUIRE([AC_CANONICAL_HOST])
1390  AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
1391    [if test -n "$gl_cv_host_cpu_c_abi"; then
1392       case "$gl_cv_host_cpu_c_abi" in
1393         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
1394           gl_cv_host_cpu_c_abi_32bit=yes ;;
1395         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
1396           gl_cv_host_cpu_c_abi_32bit=no ;;
1397         *)
1398           gl_cv_host_cpu_c_abi_32bit=unknown ;;
1399       esac
1400     else
1401       case "$host_cpu" in
1402
1403         # CPUs that only support a 32-bit ABI.
1404         arc \
1405         | bfin \
1406         | cris* \
1407         | csky \
1408         | epiphany \
1409         | ft32 \
1410         | h8300 \
1411         | m68k \
1412         | microblaze | microblazeel \
1413         | nds32 | nds32le | nds32be \
1414         | nios2 | nios2eb | nios2el \
1415         | or1k* \
1416         | or32 \
1417         | sh | sh[1234] | sh[1234]e[lb] \
1418         | tic6x \
1419         | xtensa* )
1420           gl_cv_host_cpu_c_abi_32bit=yes
1421           ;;
1422
1423         # CPUs that only support a 64-bit ABI.
1424changequote(,)dnl
1425         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
1426         | mmix )
1427changequote([,])dnl
1428           gl_cv_host_cpu_c_abi_32bit=no
1429           ;;
1430
1431changequote(,)dnl
1432         i[34567]86 )
1433changequote([,])dnl
1434           gl_cv_host_cpu_c_abi_32bit=yes
1435           ;;
1436
1437         x86_64 )
1438           # On x86_64 systems, the C compiler may be generating code in one of
1439           # these ABIs:
1440           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
1441           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
1442           #   with native Windows (mingw, MSVC).
1443           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
1444           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
1445           AC_COMPILE_IFELSE(
1446             [AC_LANG_SOURCE(
1447                [[#if (defined __x86_64__ || defined __amd64__ \
1448                       || defined _M_X64 || defined _M_AMD64) \
1449                      && !(defined __ILP32__ || defined _ILP32)
1450                   int ok;
1451                  #else
1452                   error fail
1453                  #endif
1454                ]])],
1455             [gl_cv_host_cpu_c_abi_32bit=no],
1456             [gl_cv_host_cpu_c_abi_32bit=yes])
1457           ;;
1458
1459         arm* | aarch64 )
1460           # Assume arm with EABI.
1461           # On arm64 systems, the C compiler may be generating code in one of
1462           # these ABIs:
1463           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
1464           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
1465           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
1466           AC_COMPILE_IFELSE(
1467             [AC_LANG_SOURCE(
1468                [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
1469                   int ok;
1470                  #else
1471                   error fail
1472                  #endif
1473                ]])],
1474             [gl_cv_host_cpu_c_abi_32bit=no],
1475             [gl_cv_host_cpu_c_abi_32bit=yes])
1476           ;;
1477
1478         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
1479           # On hppa, the C compiler may be generating 32-bit code or 64-bit
1480           # code. In the latter case, it defines _LP64 and __LP64__.
1481           AC_COMPILE_IFELSE(
1482             [AC_LANG_SOURCE(
1483                [[#ifdef __LP64__
1484                   int ok;
1485                  #else
1486                   error fail
1487                  #endif
1488                ]])],
1489             [gl_cv_host_cpu_c_abi_32bit=no],
1490             [gl_cv_host_cpu_c_abi_32bit=yes])
1491           ;;
1492
1493         ia64* )
1494           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
1495           # 32-bit code. In the latter case, it defines _ILP32.
1496           AC_COMPILE_IFELSE(
1497             [AC_LANG_SOURCE(
1498                [[#ifdef _ILP32
1499                   int ok;
1500                  #else
1501                   error fail
1502                  #endif
1503                ]])],
1504             [gl_cv_host_cpu_c_abi_32bit=yes],
1505             [gl_cv_host_cpu_c_abi_32bit=no])
1506           ;;
1507
1508         mips* )
1509           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
1510           # at 32.
1511           AC_COMPILE_IFELSE(
1512             [AC_LANG_SOURCE(
1513                [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
1514                   int ok;
1515                  #else
1516                   error fail
1517                  #endif
1518                ]])],
1519             [gl_cv_host_cpu_c_abi_32bit=no],
1520             [gl_cv_host_cpu_c_abi_32bit=yes])
1521           ;;
1522
1523         powerpc* )
1524           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
1525           # No need to distinguish them here; the caller may distinguish
1526           # them based on the OS.
1527           # On powerpc64 systems, the C compiler may still be generating
1528           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
1529           # be generating 64-bit code.
1530           AC_COMPILE_IFELSE(
1531             [AC_LANG_SOURCE(
1532                [[#if defined __powerpc64__ || defined _ARCH_PPC64
1533                   int ok;
1534                  #else
1535                   error fail
1536                  #endif
1537                ]])],
1538             [gl_cv_host_cpu_c_abi_32bit=no],
1539             [gl_cv_host_cpu_c_abi_32bit=yes])
1540           ;;
1541
1542         rs6000 )
1543           gl_cv_host_cpu_c_abi_32bit=yes
1544           ;;
1545
1546         riscv32 | riscv64 )
1547           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
1548           # Size of 'long' and 'void *':
1549           AC_COMPILE_IFELSE(
1550             [AC_LANG_SOURCE(
1551                [[#if defined __LP64__
1552                    int ok;
1553                  #else
1554                    error fail
1555                  #endif
1556                ]])],
1557             [gl_cv_host_cpu_c_abi_32bit=no],
1558             [gl_cv_host_cpu_c_abi_32bit=yes])
1559           ;;
1560
1561         s390* )
1562           # On s390x, the C compiler may be generating 64-bit (= s390x) code
1563           # or 31-bit (= s390) code.
1564           AC_COMPILE_IFELSE(
1565             [AC_LANG_SOURCE(
1566                [[#if defined __LP64__ || defined __s390x__
1567                    int ok;
1568                  #else
1569                    error fail
1570                  #endif
1571                ]])],
1572             [gl_cv_host_cpu_c_abi_32bit=no],
1573             [gl_cv_host_cpu_c_abi_32bit=yes])
1574           ;;
1575
1576         sparc | sparc64 )
1577           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
1578           # C compiler still generates 32-bit code.
1579           AC_COMPILE_IFELSE(
1580             [AC_LANG_SOURCE(
1581                [[#if defined __sparcv9 || defined __arch64__
1582                   int ok;
1583                  #else
1584                   error fail
1585                  #endif
1586                ]])],
1587             [gl_cv_host_cpu_c_abi_32bit=no],
1588             [gl_cv_host_cpu_c_abi_32bit=yes])
1589           ;;
1590
1591         *)
1592           gl_cv_host_cpu_c_abi_32bit=unknown
1593           ;;
1594       esac
1595     fi
1596    ])
1597
1598  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
1599])
1600
1601# iconv.m4 serial 21
1602dnl Copyright (C) 2000-2002, 2007-2014, 2016-2020 Free Software Foundation,
1603dnl Inc.
1604dnl This file is free software; the Free Software Foundation
1605dnl gives unlimited permission to copy and/or distribute it,
1606dnl with or without modifications, as long as this notice is preserved.
1607
1608dnl From Bruno Haible.
1609
1610AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
1611[
1612  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
1613  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
1614  AC_REQUIRE([AC_LIB_RPATH])
1615
1616  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
1617  dnl accordingly.
1618  AC_LIB_LINKFLAGS_BODY([iconv])
1619])
1620
1621AC_DEFUN([AM_ICONV_LINK],
1622[
1623  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
1624  dnl those with the standalone portable GNU libiconv installed).
1625  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
1626
1627  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
1628  dnl accordingly.
1629  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
1630
1631  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
1632  dnl because if the user has installed libiconv and not disabled its use
1633  dnl via --without-libiconv-prefix, he wants to use it. The first
1634  dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
1635  am_save_CPPFLAGS="$CPPFLAGS"
1636  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
1637
1638  AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
1639    am_cv_func_iconv="no, consider installing GNU libiconv"
1640    am_cv_lib_iconv=no
1641    AC_LINK_IFELSE(
1642      [AC_LANG_PROGRAM(
1643         [[
1644#include <stdlib.h>
1645#include <iconv.h>
1646         ]],
1647         [[iconv_t cd = iconv_open("","");
1648           iconv(cd,NULL,NULL,NULL,NULL);
1649           iconv_close(cd);]])],
1650      [am_cv_func_iconv=yes])
1651    if test "$am_cv_func_iconv" != yes; then
1652      am_save_LIBS="$LIBS"
1653      LIBS="$LIBS $LIBICONV"
1654      AC_LINK_IFELSE(
1655        [AC_LANG_PROGRAM(
1656           [[
1657#include <stdlib.h>
1658#include <iconv.h>
1659           ]],
1660           [[iconv_t cd = iconv_open("","");
1661             iconv(cd,NULL,NULL,NULL,NULL);
1662             iconv_close(cd);]])],
1663        [am_cv_lib_iconv=yes]
1664        [am_cv_func_iconv=yes])
1665      LIBS="$am_save_LIBS"
1666    fi
1667  ])
1668  if test "$am_cv_func_iconv" = yes; then
1669    AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
1670      dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
1671      dnl Solaris 10.
1672      am_save_LIBS="$LIBS"
1673      if test $am_cv_lib_iconv = yes; then
1674        LIBS="$LIBS $LIBICONV"
1675      fi
1676      am_cv_func_iconv_works=no
1677      for ac_iconv_const in '' 'const'; do
1678        AC_RUN_IFELSE(
1679          [AC_LANG_PROGRAM(
1680             [[
1681#include <iconv.h>
1682#include <string.h>
1683
1684#ifndef ICONV_CONST
1685# define ICONV_CONST $ac_iconv_const
1686#endif
1687             ]],
1688             [[int result = 0;
1689  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
1690     returns.  */
1691  {
1692    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
1693    if (cd_utf8_to_88591 != (iconv_t)(-1))
1694      {
1695        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
1696        char buf[10];
1697        ICONV_CONST char *inptr = input;
1698        size_t inbytesleft = strlen (input);
1699        char *outptr = buf;
1700        size_t outbytesleft = sizeof (buf);
1701        size_t res = iconv (cd_utf8_to_88591,
1702                            &inptr, &inbytesleft,
1703                            &outptr, &outbytesleft);
1704        if (res == 0)
1705          result |= 1;
1706        iconv_close (cd_utf8_to_88591);
1707      }
1708  }
1709  /* Test against Solaris 10 bug: Failures are not distinguishable from
1710     successful returns.  */
1711  {
1712    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
1713    if (cd_ascii_to_88591 != (iconv_t)(-1))
1714      {
1715        static ICONV_CONST char input[] = "\263";
1716        char buf[10];
1717        ICONV_CONST char *inptr = input;
1718        size_t inbytesleft = strlen (input);
1719        char *outptr = buf;
1720        size_t outbytesleft = sizeof (buf);
1721        size_t res = iconv (cd_ascii_to_88591,
1722                            &inptr, &inbytesleft,
1723                            &outptr, &outbytesleft);
1724        if (res == 0)
1725          result |= 2;
1726        iconv_close (cd_ascii_to_88591);
1727      }
1728  }
1729  /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */
1730  {
1731    iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
1732    if (cd_88591_to_utf8 != (iconv_t)(-1))
1733      {
1734        static ICONV_CONST char input[] = "\304";
1735        static char buf[2] = { (char)0xDE, (char)0xAD };
1736        ICONV_CONST char *inptr = input;
1737        size_t inbytesleft = 1;
1738        char *outptr = buf;
1739        size_t outbytesleft = 1;
1740        size_t res = iconv (cd_88591_to_utf8,
1741                            &inptr, &inbytesleft,
1742                            &outptr, &outbytesleft);
1743        if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
1744          result |= 4;
1745        iconv_close (cd_88591_to_utf8);
1746      }
1747  }
1748#if 0 /* This bug could be worked around by the caller.  */
1749  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
1750  {
1751    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
1752    if (cd_88591_to_utf8 != (iconv_t)(-1))
1753      {
1754        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
1755        char buf[50];
1756        ICONV_CONST char *inptr = input;
1757        size_t inbytesleft = strlen (input);
1758        char *outptr = buf;
1759        size_t outbytesleft = sizeof (buf);
1760        size_t res = iconv (cd_88591_to_utf8,
1761                            &inptr, &inbytesleft,
1762                            &outptr, &outbytesleft);
1763        if ((int)res > 0)
1764          result |= 8;
1765        iconv_close (cd_88591_to_utf8);
1766      }
1767  }
1768#endif
1769  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
1770     provided.  */
1771  {
1772    /* Try standardized names.  */
1773    iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
1774    /* Try IRIX, OSF/1 names.  */
1775    iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
1776    /* Try AIX names.  */
1777    iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
1778    /* Try HP-UX names.  */
1779    iconv_t cd4 = iconv_open ("utf8", "eucJP");
1780    if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
1781        && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
1782      result |= 16;
1783    if (cd1 != (iconv_t)(-1))
1784      iconv_close (cd1);
1785    if (cd2 != (iconv_t)(-1))
1786      iconv_close (cd2);
1787    if (cd3 != (iconv_t)(-1))
1788      iconv_close (cd3);
1789    if (cd4 != (iconv_t)(-1))
1790      iconv_close (cd4);
1791  }
1792  return result;
1793]])],
1794          [am_cv_func_iconv_works=yes], ,
1795          [case "$host_os" in
1796             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
1797             *)            am_cv_func_iconv_works="guessing yes" ;;
1798           esac])
1799        test "$am_cv_func_iconv_works" = no || break
1800      done
1801      LIBS="$am_save_LIBS"
1802    ])
1803    case "$am_cv_func_iconv_works" in
1804      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
1805      *)   am_func_iconv=yes ;;
1806    esac
1807  else
1808    am_func_iconv=no am_cv_lib_iconv=no
1809  fi
1810  if test "$am_func_iconv" = yes; then
1811    AC_DEFINE([HAVE_ICONV], [1],
1812      [Define if you have the iconv() function and it works.])
1813  fi
1814  if test "$am_cv_lib_iconv" = yes; then
1815    AC_MSG_CHECKING([how to link with libiconv])
1816    AC_MSG_RESULT([$LIBICONV])
1817  else
1818    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
1819    dnl either.
1820    CPPFLAGS="$am_save_CPPFLAGS"
1821    LIBICONV=
1822    LTLIBICONV=
1823  fi
1824  AC_SUBST([LIBICONV])
1825  AC_SUBST([LTLIBICONV])
1826])
1827
1828dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
1829dnl avoid warnings like
1830dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
1831dnl This is tricky because of the way 'aclocal' is implemented:
1832dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
1833dnl   Otherwise aclocal's initial scan pass would miss the macro definition.
1834dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
1835dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
1836dnl   warnings.
1837m4_define([gl_iconv_AC_DEFUN],
1838  m4_version_prereq([2.64],
1839    [[AC_DEFUN_ONCE(
1840        [$1], [$2])]],
1841    [m4_ifdef([gl_00GNULIB],
1842       [[AC_DEFUN_ONCE(
1843           [$1], [$2])]],
1844       [[AC_DEFUN(
1845           [$1], [$2])]])]))
1846gl_iconv_AC_DEFUN([AM_ICONV],
1847[
1848  AM_ICONV_LINK
1849  if test "$am_cv_func_iconv" = yes; then
1850    AC_MSG_CHECKING([for iconv declaration])
1851    AC_CACHE_VAL([am_cv_proto_iconv], [
1852      AC_COMPILE_IFELSE(
1853        [AC_LANG_PROGRAM(
1854           [[
1855#include <stdlib.h>
1856#include <iconv.h>
1857extern
1858#ifdef __cplusplus
1859"C"
1860#endif
1861#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
1862size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
1863#else
1864size_t iconv();
1865#endif
1866           ]],
1867           [[]])],
1868        [am_cv_proto_iconv_arg1=""],
1869        [am_cv_proto_iconv_arg1="const"])
1870      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);"])
1871    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
1872    AC_MSG_RESULT([
1873         $am_cv_proto_iconv])
1874  else
1875    dnl When compiling GNU libiconv on a system that does not have iconv yet,
1876    dnl pick the POSIX compliant declaration without 'const'.
1877    am_cv_proto_iconv_arg1=""
1878  fi
1879  AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
1880    [Define as const if the declaration of iconv() needs const.])
1881  dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
1882  m4_ifdef([gl_ICONV_H_DEFAULTS],
1883    [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
1884     if test -n "$am_cv_proto_iconv_arg1"; then
1885       ICONV_CONST="const"
1886     fi
1887    ])
1888])
1889
1890# intlmacosx.m4 serial 8 (gettext-0.20.2)
1891dnl Copyright (C) 2004-2014, 2016, 2019-2020 Free Software Foundation, Inc.
1892dnl This file is free software; the Free Software Foundation
1893dnl gives unlimited permission to copy and/or distribute it,
1894dnl with or without modifications, as long as this notice is preserved.
1895dnl
1896dnl This file can be used in projects which are not available under
1897dnl the GNU General Public License or the GNU Lesser General Public
1898dnl License but which still want to provide support for the GNU gettext
1899dnl functionality.
1900dnl Please note that the actual code of the GNU gettext library is covered
1901dnl by the GNU Lesser General Public License, and the rest of the GNU
1902dnl gettext package is covered by the GNU General Public License.
1903dnl They are *not* in the public domain.
1904
1905dnl Checks for special options needed on Mac OS X.
1906dnl Defines INTL_MACOSX_LIBS.
1907AC_DEFUN([gt_INTL_MACOSX],
1908[
1909  dnl Check for API introduced in Mac OS X 10.4.
1910  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
1911    [gt_cv_func_CFPreferencesCopyAppValue],
1912    [gt_save_LIBS="$LIBS"
1913     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
1914     AC_LINK_IFELSE(
1915       [AC_LANG_PROGRAM(
1916          [[#include <CoreFoundation/CFPreferences.h>]],
1917          [[CFPreferencesCopyAppValue(NULL, NULL)]])],
1918       [gt_cv_func_CFPreferencesCopyAppValue=yes],
1919       [gt_cv_func_CFPreferencesCopyAppValue=no])
1920     LIBS="$gt_save_LIBS"])
1921  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
1922    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
1923      [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
1924  fi
1925  dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent,
1926  dnl because in macOS 10.13.4 it has the following behaviour:
1927  dnl When two or more languages are specified in the
1928  dnl "System Preferences > Language & Region > Preferred Languages" panel,
1929  dnl it returns en_CC where CC is the territory (even when English is not among
1930  dnl the preferred languages!).  What we want instead is what
1931  dnl CFLocaleCopyCurrent returned in earlier macOS releases and what
1932  dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the
1933  dnl first among the preferred languages and CC is the territory.
1934  AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
1935    [gt_save_LIBS="$LIBS"
1936     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
1937     AC_LINK_IFELSE(
1938       [AC_LANG_PROGRAM(
1939          [[#include <CoreFoundation/CFLocale.h>]],
1940          [[CFLocaleCopyPreferredLanguages();]])],
1941       [gt_cv_func_CFLocaleCopyPreferredLanguages=yes],
1942       [gt_cv_func_CFLocaleCopyPreferredLanguages=no])
1943     LIBS="$gt_save_LIBS"])
1944  if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
1945    AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1],
1946      [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.])
1947  fi
1948  INTL_MACOSX_LIBS=
1949  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
1950     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
1951    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
1952  fi
1953  AC_SUBST([INTL_MACOSX_LIBS])
1954])
1955
1956# lib-ld.m4 serial 9
1957dnl Copyright (C) 1996-2003, 2009-2020 Free Software Foundation, Inc.
1958dnl This file is free software; the Free Software Foundation
1959dnl gives unlimited permission to copy and/or distribute it,
1960dnl with or without modifications, as long as this notice is preserved.
1961
1962dnl Subroutines of libtool.m4,
1963dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
1964dnl collision with libtool.m4.
1965
1966dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
1967AC_DEFUN([AC_LIB_PROG_LD_GNU],
1968[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
1969[# I'd rather use --version here, but apparently some GNU lds only accept -v.
1970case `$LD -v 2>&1 </dev/null` in
1971*GNU* | *'with BFD'*)
1972  acl_cv_prog_gnu_ld=yes
1973  ;;
1974*)
1975  acl_cv_prog_gnu_ld=no
1976  ;;
1977esac])
1978with_gnu_ld=$acl_cv_prog_gnu_ld
1979])
1980
1981dnl From libtool-2.4. Sets the variable LD.
1982AC_DEFUN([AC_LIB_PROG_LD],
1983[AC_REQUIRE([AC_PROG_CC])dnl
1984AC_REQUIRE([AC_CANONICAL_HOST])dnl
1985
1986AC_ARG_WITH([gnu-ld],
1987    [AS_HELP_STRING([--with-gnu-ld],
1988        [assume the C compiler uses GNU ld [default=no]])],
1989    [test "$withval" = no || with_gnu_ld=yes],
1990    [with_gnu_ld=no])dnl
1991
1992# Prepare PATH_SEPARATOR.
1993# The user is always right.
1994if test "${PATH_SEPARATOR+set}" != set; then
1995  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
1996  # contains only /bin. Note that ksh looks also at the FPATH variable,
1997  # so we have to set that as well for the test.
1998  PATH_SEPARATOR=:
1999  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
2000    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
2001           || PATH_SEPARATOR=';'
2002       }
2003fi
2004
2005if test -n "$LD"; then
2006  AC_MSG_CHECKING([for ld])
2007elif test "$GCC" = yes; then
2008  AC_MSG_CHECKING([for ld used by $CC])
2009elif test "$with_gnu_ld" = yes; then
2010  AC_MSG_CHECKING([for GNU ld])
2011else
2012  AC_MSG_CHECKING([for non-GNU ld])
2013fi
2014if test -n "$LD"; then
2015  # Let the user override the test with a path.
2016  :
2017else
2018  AC_CACHE_VAL([acl_cv_path_LD],
2019  [
2020    acl_cv_path_LD= # Final result of this test
2021    ac_prog=ld # Program to search in $PATH
2022    if test "$GCC" = yes; then
2023      # Check if gcc -print-prog-name=ld gives a path.
2024      case $host in
2025        *-*-mingw*)
2026          # gcc leaves a trailing carriage return which upsets mingw
2027          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
2028        *)
2029          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
2030      esac
2031      case $acl_output in
2032        # Accept absolute paths.
2033        [[\\/]]* | ?:[[\\/]]*)
2034          re_direlt='/[[^/]][[^/]]*/\.\./'
2035          # Canonicalize the pathname of ld
2036          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
2037          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
2038            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
2039          done
2040          # Got the pathname. No search in PATH is needed.
2041          acl_cv_path_LD="$acl_output"
2042          ac_prog=
2043          ;;
2044        "")
2045          # If it fails, then pretend we aren't using GCC.
2046          ;;
2047        *)
2048          # If it is relative, then search for the first ld in PATH.
2049          with_gnu_ld=unknown
2050          ;;
2051      esac
2052    fi
2053    if test -n "$ac_prog"; then
2054      # Search for $ac_prog in $PATH.
2055      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
2056      for ac_dir in $PATH; do
2057        IFS="$acl_save_ifs"
2058        test -z "$ac_dir" && ac_dir=.
2059        if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
2060          acl_cv_path_LD="$ac_dir/$ac_prog"
2061          # Check to see if the program is GNU ld.  I'd rather use --version,
2062          # but apparently some variants of GNU ld only accept -v.
2063          # Break only if it was the GNU/non-GNU ld that we prefer.
2064          case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
2065            *GNU* | *'with BFD'*)
2066              test "$with_gnu_ld" != no && break
2067              ;;
2068            *)
2069              test "$with_gnu_ld" != yes && break
2070              ;;
2071          esac
2072        fi
2073      done
2074      IFS="$acl_save_ifs"
2075    fi
2076    case $host in
2077      *-*-aix*)
2078        AC_COMPILE_IFELSE(
2079          [AC_LANG_SOURCE(
2080             [[#if defined __powerpc64__ || defined _ARCH_PPC64
2081                int ok;
2082               #else
2083                error fail
2084               #endif
2085             ]])],
2086          [# The compiler produces 64-bit code. Add option '-b64' so that the
2087           # linker groks 64-bit object files.
2088           case "$acl_cv_path_LD " in
2089             *" -b64 "*) ;;
2090             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
2091           esac
2092          ], [])
2093        ;;
2094      sparc64-*-netbsd*)
2095        AC_COMPILE_IFELSE(
2096          [AC_LANG_SOURCE(
2097             [[#if defined __sparcv9 || defined __arch64__
2098                int ok;
2099               #else
2100                error fail
2101               #endif
2102             ]])],
2103          [],
2104          [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
2105           # so that the linker groks 32-bit object files.
2106           case "$acl_cv_path_LD " in
2107             *" -m elf32_sparc "*) ;;
2108             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
2109           esac
2110          ])
2111        ;;
2112    esac
2113  ])
2114  LD="$acl_cv_path_LD"
2115fi
2116if test -n "$LD"; then
2117  AC_MSG_RESULT([$LD])
2118else
2119  AC_MSG_RESULT([no])
2120  AC_MSG_ERROR([no acceptable ld found in \$PATH])
2121fi
2122AC_LIB_PROG_LD_GNU
2123])
2124
2125# lib-link.m4 serial 31
2126dnl Copyright (C) 2001-2020 Free Software Foundation, Inc.
2127dnl This file is free software; the Free Software Foundation
2128dnl gives unlimited permission to copy and/or distribute it,
2129dnl with or without modifications, as long as this notice is preserved.
2130
2131dnl From Bruno Haible.
2132
2133AC_PREREQ([2.61])
2134
2135dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
2136dnl the libraries corresponding to explicit and implicit dependencies.
2137dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
2138dnl augments the CPPFLAGS variable.
2139dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
2140dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
2141AC_DEFUN([AC_LIB_LINKFLAGS],
2142[
2143  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2144  AC_REQUIRE([AC_LIB_RPATH])
2145  pushdef([Name],[m4_translit([$1],[./+-], [____])])
2146  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
2147                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
2148  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
2149    AC_LIB_LINKFLAGS_BODY([$1], [$2])
2150    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
2151    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
2152    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
2153    ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
2154  ])
2155  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
2156  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
2157  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
2158  LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
2159  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
2160  AC_SUBST([LIB]NAME)
2161  AC_SUBST([LTLIB]NAME)
2162  AC_SUBST([LIB]NAME[_PREFIX])
2163  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
2164  dnl results of this search when this library appears as a dependency.
2165  HAVE_LIB[]NAME=yes
2166  popdef([NAME])
2167  popdef([Name])
2168])
2169
2170dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
2171dnl searches for libname and the libraries corresponding to explicit and
2172dnl implicit dependencies, together with the specified include files and
2173dnl the ability to compile and link the specified testcode. The missing-message
2174dnl defaults to 'no' and may contain additional hints for the user.
2175dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
2176dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
2177dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
2178dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
2179dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
2180dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
2181AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
2182[
2183  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2184  AC_REQUIRE([AC_LIB_RPATH])
2185  pushdef([Name],[m4_translit([$1],[./+-], [____])])
2186  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
2187                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
2188
2189  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
2190  dnl accordingly.
2191  AC_LIB_LINKFLAGS_BODY([$1], [$2])
2192
2193  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
2194  dnl because if the user has installed lib[]Name and not disabled its use
2195  dnl via --without-lib[]Name-prefix, he wants to use it.
2196  ac_save_CPPFLAGS="$CPPFLAGS"
2197  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
2198
2199  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
2200    ac_save_LIBS="$LIBS"
2201    dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
2202    dnl because these -l options might require -L options that are present in
2203    dnl LIBS. -l options benefit only from the -L options listed before it.
2204    dnl Otherwise, add it to the front of LIBS, because it may be a static
2205    dnl library that depends on another static library that is present in LIBS.
2206    dnl Static libraries benefit only from the static libraries listed after
2207    dnl it.
2208    case " $LIB[]NAME" in
2209      *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
2210      *)       LIBS="$LIB[]NAME $LIBS" ;;
2211    esac
2212    AC_LINK_IFELSE(
2213      [AC_LANG_PROGRAM([[$3]], [[$4]])],
2214      [ac_cv_lib[]Name=yes],
2215      [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
2216    LIBS="$ac_save_LIBS"
2217  ])
2218  if test "$ac_cv_lib[]Name" = yes; then
2219    HAVE_LIB[]NAME=yes
2220    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
2221    AC_MSG_CHECKING([how to link with lib[]$1])
2222    AC_MSG_RESULT([$LIB[]NAME])
2223  else
2224    HAVE_LIB[]NAME=no
2225    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
2226    dnl $INC[]NAME either.
2227    CPPFLAGS="$ac_save_CPPFLAGS"
2228    LIB[]NAME=
2229    LTLIB[]NAME=
2230    LIB[]NAME[]_PREFIX=
2231  fi
2232  AC_SUBST([HAVE_LIB]NAME)
2233  AC_SUBST([LIB]NAME)
2234  AC_SUBST([LTLIB]NAME)
2235  AC_SUBST([LIB]NAME[_PREFIX])
2236  popdef([NAME])
2237  popdef([Name])
2238])
2239
2240dnl Determine the platform dependent parameters needed to use rpath:
2241dnl   acl_libext,
2242dnl   acl_shlibext,
2243dnl   acl_libname_spec,
2244dnl   acl_library_names_spec,
2245dnl   acl_hardcode_libdir_flag_spec,
2246dnl   acl_hardcode_libdir_separator,
2247dnl   acl_hardcode_direct,
2248dnl   acl_hardcode_minus_L.
2249AC_DEFUN([AC_LIB_RPATH],
2250[
2251  dnl Complain if config.rpath is missing.
2252  AC_REQUIRE_AUX_FILE([config.rpath])
2253  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
2254  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
2255  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
2256  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
2257  AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
2258    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
2259    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
2260    . ./conftest.sh
2261    rm -f ./conftest.sh
2262    acl_cv_rpath=done
2263  ])
2264  wl="$acl_cv_wl"
2265  acl_libext="$acl_cv_libext"
2266  acl_shlibext="$acl_cv_shlibext"
2267  acl_libname_spec="$acl_cv_libname_spec"
2268  acl_library_names_spec="$acl_cv_library_names_spec"
2269  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
2270  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
2271  acl_hardcode_direct="$acl_cv_hardcode_direct"
2272  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
2273  dnl Determine whether the user wants rpath handling at all.
2274  AC_ARG_ENABLE([rpath],
2275    [  --disable-rpath         do not hardcode runtime library paths],
2276    :, enable_rpath=yes)
2277])
2278
2279dnl AC_LIB_FROMPACKAGE(name, package)
2280dnl declares that libname comes from the given package. The configure file
2281dnl will then not have a --with-libname-prefix option but a
2282dnl --with-package-prefix option. Several libraries can come from the same
2283dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
2284dnl macro call that searches for libname.
2285AC_DEFUN([AC_LIB_FROMPACKAGE],
2286[
2287  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
2288                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
2289  define([acl_frompackage_]NAME, [$2])
2290  popdef([NAME])
2291  pushdef([PACK],[$2])
2292  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
2293                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
2294  define([acl_libsinpackage_]PACKUP,
2295    m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
2296  popdef([PACKUP])
2297  popdef([PACK])
2298])
2299
2300dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
2301dnl the libraries corresponding to explicit and implicit dependencies.
2302dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
2303dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
2304dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
2305AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
2306[
2307  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
2308  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
2309                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
2310  pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
2311  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
2312                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
2313  pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
2314  dnl By default, look in $includedir and $libdir.
2315  use_additional=yes
2316  AC_LIB_WITH_FINAL_PREFIX([
2317    eval additional_includedir=\"$includedir\"
2318    eval additional_libdir=\"$libdir\"
2319    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
2320    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
2321  ])
2322  AC_ARG_WITH(PACK[-prefix],
2323[[  --with-]]PACK[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
2324  --without-]]PACK[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
2325[
2326    if test "X$withval" = "Xno"; then
2327      use_additional=no
2328    else
2329      if test "X$withval" = "X"; then
2330        AC_LIB_WITH_FINAL_PREFIX([
2331          eval additional_includedir=\"$includedir\"
2332          eval additional_libdir=\"$libdir\"
2333          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
2334          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
2335        ])
2336      else
2337        additional_includedir="$withval/include"
2338        additional_libdir="$withval/$acl_libdirstem"
2339        additional_libdir2="$withval/$acl_libdirstem2"
2340        additional_libdir3="$withval/$acl_libdirstem3"
2341      fi
2342    fi
2343])
2344  if test "X$additional_libdir2" = "X$additional_libdir"; then
2345    additional_libdir2=
2346  fi
2347  if test "X$additional_libdir3" = "X$additional_libdir"; then
2348    additional_libdir3=
2349  fi
2350  dnl Search the library and its dependencies in $additional_libdir and
2351  dnl $LDFLAGS. Using breadth-first-seach.
2352  LIB[]NAME=
2353  LTLIB[]NAME=
2354  INC[]NAME=
2355  LIB[]NAME[]_PREFIX=
2356  dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
2357  dnl computed. So it has to be reset here.
2358  HAVE_LIB[]NAME=
2359  rpathdirs=
2360  ltrpathdirs=
2361  names_already_handled=
2362  names_next_round='$1 $2'
2363  while test -n "$names_next_round"; do
2364    names_this_round="$names_next_round"
2365    names_next_round=
2366    for name in $names_this_round; do
2367      already_handled=
2368      for n in $names_already_handled; do
2369        if test "$n" = "$name"; then
2370          already_handled=yes
2371          break
2372        fi
2373      done
2374      if test -z "$already_handled"; then
2375        names_already_handled="$names_already_handled $name"
2376        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
2377        dnl or AC_LIB_HAVE_LINKFLAGS call.
2378        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
2379        eval value=\"\$HAVE_LIB$uppername\"
2380        if test -n "$value"; then
2381          if test "$value" = yes; then
2382            eval value=\"\$LIB$uppername\"
2383            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
2384            eval value=\"\$LTLIB$uppername\"
2385            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
2386          else
2387            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
2388            dnl that this library doesn't exist. So just drop it.
2389            :
2390          fi
2391        else
2392          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
2393          dnl and the already constructed $LIBNAME/$LTLIBNAME.
2394          found_dir=
2395          found_la=
2396          found_so=
2397          found_a=
2398          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
2399          if test -n "$acl_shlibext"; then
2400            shrext=".$acl_shlibext"             # typically: shrext=.so
2401          else
2402            shrext=
2403          fi
2404          if test $use_additional = yes; then
2405            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
2406              if test "X$found_dir" = "X"; then
2407                eval dir=\$$additional_libdir_variable
2408                if test -n "$dir"; then
2409                  dnl The same code as in the loop below:
2410                  dnl First look for a shared library.
2411                  if test -n "$acl_shlibext"; then
2412                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
2413                      found_dir="$dir"
2414                      found_so="$dir/$libname$shrext"
2415                    else
2416                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
2417                        ver=`(cd "$dir" && \
2418                              for f in "$libname$shrext".*; do echo "$f"; done \
2419                              | sed -e "s,^$libname$shrext\\\\.,," \
2420                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
2421                              | sed 1q ) 2>/dev/null`
2422                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
2423                          found_dir="$dir"
2424                          found_so="$dir/$libname$shrext.$ver"
2425                        fi
2426                      else
2427                        eval library_names=\"$acl_library_names_spec\"
2428                        for f in $library_names; do
2429                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
2430                            found_dir="$dir"
2431                            found_so="$dir/$f"
2432                            break
2433                          fi
2434                        done
2435                      fi
2436                    fi
2437                  fi
2438                  dnl Then look for a static library.
2439                  if test "X$found_dir" = "X"; then
2440                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
2441                      found_dir="$dir"
2442                      found_a="$dir/$libname.$acl_libext"
2443                    fi
2444                  fi
2445                  if test "X$found_dir" != "X"; then
2446                    if test -f "$dir/$libname.la"; then
2447                      found_la="$dir/$libname.la"
2448                    fi
2449                  fi
2450                fi
2451              fi
2452            done
2453          fi
2454          if test "X$found_dir" = "X"; then
2455            for x in $LDFLAGS $LTLIB[]NAME; do
2456              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2457              case "$x" in
2458                -L*)
2459                  dir=`echo "X$x" | sed -e 's/^X-L//'`
2460                  dnl First look for a shared library.
2461                  if test -n "$acl_shlibext"; then
2462                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
2463                      found_dir="$dir"
2464                      found_so="$dir/$libname$shrext"
2465                    else
2466                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
2467                        ver=`(cd "$dir" && \
2468                              for f in "$libname$shrext".*; do echo "$f"; done \
2469                              | sed -e "s,^$libname$shrext\\\\.,," \
2470                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
2471                              | sed 1q ) 2>/dev/null`
2472                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
2473                          found_dir="$dir"
2474                          found_so="$dir/$libname$shrext.$ver"
2475                        fi
2476                      else
2477                        eval library_names=\"$acl_library_names_spec\"
2478                        for f in $library_names; do
2479                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
2480                            found_dir="$dir"
2481                            found_so="$dir/$f"
2482                            break
2483                          fi
2484                        done
2485                      fi
2486                    fi
2487                  fi
2488                  dnl Then look for a static library.
2489                  if test "X$found_dir" = "X"; then
2490                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
2491                      found_dir="$dir"
2492                      found_a="$dir/$libname.$acl_libext"
2493                    fi
2494                  fi
2495                  if test "X$found_dir" != "X"; then
2496                    if test -f "$dir/$libname.la"; then
2497                      found_la="$dir/$libname.la"
2498                    fi
2499                  fi
2500                  ;;
2501              esac
2502              if test "X$found_dir" != "X"; then
2503                break
2504              fi
2505            done
2506          fi
2507          if test "X$found_dir" != "X"; then
2508            dnl Found the library.
2509            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
2510            if test "X$found_so" != "X"; then
2511              dnl Linking with a shared library. We attempt to hardcode its
2512              dnl directory into the executable's runpath, unless it's the
2513              dnl standard /usr/lib.
2514              if test "$enable_rpath" = no \
2515                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
2516                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
2517                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
2518                dnl No hardcoding is needed.
2519                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
2520              else
2521                dnl Use an explicit option to hardcode DIR into the resulting
2522                dnl binary.
2523                dnl Potentially add DIR to ltrpathdirs.
2524                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
2525                haveit=
2526                for x in $ltrpathdirs; do
2527                  if test "X$x" = "X$found_dir"; then
2528                    haveit=yes
2529                    break
2530                  fi
2531                done
2532                if test -z "$haveit"; then
2533                  ltrpathdirs="$ltrpathdirs $found_dir"
2534                fi
2535                dnl The hardcoding into $LIBNAME is system dependent.
2536                if test "$acl_hardcode_direct" = yes; then
2537                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
2538                  dnl resulting binary.
2539                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
2540                else
2541                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
2542                    dnl Use an explicit option to hardcode DIR into the resulting
2543                    dnl binary.
2544                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
2545                    dnl Potentially add DIR to rpathdirs.
2546                    dnl The rpathdirs will be appended to $LIBNAME at the end.
2547                    haveit=
2548                    for x in $rpathdirs; do
2549                      if test "X$x" = "X$found_dir"; then
2550                        haveit=yes
2551                        break
2552                      fi
2553                    done
2554                    if test -z "$haveit"; then
2555                      rpathdirs="$rpathdirs $found_dir"
2556                    fi
2557                  else
2558                    dnl Rely on "-L$found_dir".
2559                    dnl But don't add it if it's already contained in the LDFLAGS
2560                    dnl or the already constructed $LIBNAME
2561                    haveit=
2562                    for x in $LDFLAGS $LIB[]NAME; do
2563                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2564                      if test "X$x" = "X-L$found_dir"; then
2565                        haveit=yes
2566                        break
2567                      fi
2568                    done
2569                    if test -z "$haveit"; then
2570                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
2571                    fi
2572                    if test "$acl_hardcode_minus_L" != no; then
2573                      dnl FIXME: Not sure whether we should use
2574                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
2575                      dnl here.
2576                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
2577                    else
2578                      dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
2579                      dnl here, because this doesn't fit in flags passed to the
2580                      dnl compiler. So give up. No hardcoding. This affects only
2581                      dnl very old systems.
2582                      dnl FIXME: Not sure whether we should use
2583                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
2584                      dnl here.
2585                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
2586                    fi
2587                  fi
2588                fi
2589              fi
2590            else
2591              if test "X$found_a" != "X"; then
2592                dnl Linking with a static library.
2593                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
2594              else
2595                dnl We shouldn't come here, but anyway it's good to have a
2596                dnl fallback.
2597                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
2598              fi
2599            fi
2600            dnl Assume the include files are nearby.
2601            additional_includedir=
2602            case "$found_dir" in
2603              */$acl_libdirstem | */$acl_libdirstem/)
2604                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
2605                if test "$name" = '$1'; then
2606                  LIB[]NAME[]_PREFIX="$basedir"
2607                fi
2608                additional_includedir="$basedir/include"
2609                ;;
2610              */$acl_libdirstem2 | */$acl_libdirstem2/)
2611                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
2612                if test "$name" = '$1'; then
2613                  LIB[]NAME[]_PREFIX="$basedir"
2614                fi
2615                additional_includedir="$basedir/include"
2616                ;;
2617              */$acl_libdirstem3 | */$acl_libdirstem3/)
2618                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
2619                if test "$name" = '$1'; then
2620                  LIB[]NAME[]_PREFIX="$basedir"
2621                fi
2622                additional_includedir="$basedir/include"
2623                ;;
2624            esac
2625            if test "X$additional_includedir" != "X"; then
2626              dnl Potentially add $additional_includedir to $INCNAME.
2627              dnl But don't add it
2628              dnl   1. if it's the standard /usr/include,
2629              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
2630              dnl   3. if it's already present in $CPPFLAGS or the already
2631              dnl      constructed $INCNAME,
2632              dnl   4. if it doesn't exist as a directory.
2633              if test "X$additional_includedir" != "X/usr/include"; then
2634                haveit=
2635                if test "X$additional_includedir" = "X/usr/local/include"; then
2636                  if test -n "$GCC"; then
2637                    case $host_os in
2638                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
2639                    esac
2640                  fi
2641                fi
2642                if test -z "$haveit"; then
2643                  for x in $CPPFLAGS $INC[]NAME; do
2644                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2645                    if test "X$x" = "X-I$additional_includedir"; then
2646                      haveit=yes
2647                      break
2648                    fi
2649                  done
2650                  if test -z "$haveit"; then
2651                    if test -d "$additional_includedir"; then
2652                      dnl Really add $additional_includedir to $INCNAME.
2653                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
2654                    fi
2655                  fi
2656                fi
2657              fi
2658            fi
2659            dnl Look for dependencies.
2660            if test -n "$found_la"; then
2661              dnl Read the .la file. It defines the variables
2662              dnl dlname, library_names, old_library, dependency_libs, current,
2663              dnl age, revision, installed, dlopen, dlpreopen, libdir.
2664              save_libdir="$libdir"
2665              case "$found_la" in
2666                */* | *\\*) . "$found_la" ;;
2667                *) . "./$found_la" ;;
2668              esac
2669              libdir="$save_libdir"
2670              dnl We use only dependency_libs.
2671              for dep in $dependency_libs; do
2672                case "$dep" in
2673                  -L*)
2674                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
2675                    dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME.
2676                    dnl But don't add it
2677                    dnl   1. if it's the standard /usr/lib,
2678                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
2679                    dnl   3. if it's already present in $LDFLAGS or the already
2680                    dnl      constructed $LIBNAME,
2681                    dnl   4. if it doesn't exist as a directory.
2682                    if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
2683                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
2684                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
2685                      haveit=
2686                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
2687                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
2688                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
2689                        if test -n "$GCC"; then
2690                          case $host_os in
2691                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
2692                          esac
2693                        fi
2694                      fi
2695                      if test -z "$haveit"; then
2696                        haveit=
2697                        for x in $LDFLAGS $LIB[]NAME; do
2698                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2699                          if test "X$x" = "X-L$dependency_libdir"; then
2700                            haveit=yes
2701                            break
2702                          fi
2703                        done
2704                        if test -z "$haveit"; then
2705                          if test -d "$dependency_libdir"; then
2706                            dnl Really add $dependency_libdir to $LIBNAME.
2707                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir"
2708                          fi
2709                        fi
2710                        haveit=
2711                        for x in $LDFLAGS $LTLIB[]NAME; do
2712                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2713                          if test "X$x" = "X-L$dependency_libdir"; then
2714                            haveit=yes
2715                            break
2716                          fi
2717                        done
2718                        if test -z "$haveit"; then
2719                          if test -d "$dependency_libdir"; then
2720                            dnl Really add $dependency_libdir to $LTLIBNAME.
2721                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir"
2722                          fi
2723                        fi
2724                      fi
2725                    fi
2726                    ;;
2727                  -R*)
2728                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
2729                    if test "$enable_rpath" != no; then
2730                      dnl Potentially add DIR to rpathdirs.
2731                      dnl The rpathdirs will be appended to $LIBNAME at the end.
2732                      haveit=
2733                      for x in $rpathdirs; do
2734                        if test "X$x" = "X$dir"; then
2735                          haveit=yes
2736                          break
2737                        fi
2738                      done
2739                      if test -z "$haveit"; then
2740                        rpathdirs="$rpathdirs $dir"
2741                      fi
2742                      dnl Potentially add DIR to ltrpathdirs.
2743                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
2744                      haveit=
2745                      for x in $ltrpathdirs; do
2746                        if test "X$x" = "X$dir"; then
2747                          haveit=yes
2748                          break
2749                        fi
2750                      done
2751                      if test -z "$haveit"; then
2752                        ltrpathdirs="$ltrpathdirs $dir"
2753                      fi
2754                    fi
2755                    ;;
2756                  -l*)
2757                    dnl Handle this in the next round.
2758                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
2759                    ;;
2760                  *.la)
2761                    dnl Handle this in the next round. Throw away the .la's
2762                    dnl directory; it is already contained in a preceding -L
2763                    dnl option.
2764                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
2765                    ;;
2766                  *)
2767                    dnl Most likely an immediate library name.
2768                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
2769                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
2770                    ;;
2771                esac
2772              done
2773            fi
2774          else
2775            dnl Didn't find the library; assume it is in the system directories
2776            dnl known to the linker and runtime loader. (All the system
2777            dnl directories known to the linker should also be known to the
2778            dnl runtime loader, otherwise the system is severely misconfigured.)
2779            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
2780            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
2781          fi
2782        fi
2783      fi
2784    done
2785  done
2786  if test "X$rpathdirs" != "X"; then
2787    if test -n "$acl_hardcode_libdir_separator"; then
2788      dnl Weird platform: only the last -rpath option counts, the user must
2789      dnl pass all path elements in one option. We can arrange that for a
2790      dnl single library, but not when more than one $LIBNAMEs are used.
2791      alldirs=
2792      for found_dir in $rpathdirs; do
2793        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
2794      done
2795      dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
2796      acl_save_libdir="$libdir"
2797      libdir="$alldirs"
2798      eval flag=\"$acl_hardcode_libdir_flag_spec\"
2799      libdir="$acl_save_libdir"
2800      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
2801    else
2802      dnl The -rpath options are cumulative.
2803      for found_dir in $rpathdirs; do
2804        acl_save_libdir="$libdir"
2805        libdir="$found_dir"
2806        eval flag=\"$acl_hardcode_libdir_flag_spec\"
2807        libdir="$acl_save_libdir"
2808        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
2809      done
2810    fi
2811  fi
2812  if test "X$ltrpathdirs" != "X"; then
2813    dnl When using libtool, the option that works for both libraries and
2814    dnl executables is -R. The -R options are cumulative.
2815    for found_dir in $ltrpathdirs; do
2816      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
2817    done
2818  fi
2819  popdef([PACKLIBS])
2820  popdef([PACKUP])
2821  popdef([PACK])
2822  popdef([NAME])
2823])
2824
2825dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
2826dnl unless already present in VAR.
2827dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
2828dnl contains two or three consecutive elements that belong together.
2829AC_DEFUN([AC_LIB_APPENDTOVAR],
2830[
2831  for element in [$2]; do
2832    haveit=
2833    for x in $[$1]; do
2834      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2835      if test "X$x" = "X$element"; then
2836        haveit=yes
2837        break
2838      fi
2839    done
2840    if test -z "$haveit"; then
2841      [$1]="${[$1]}${[$1]:+ }$element"
2842    fi
2843  done
2844])
2845
2846dnl For those cases where a variable contains several -L and -l options
2847dnl referring to unknown libraries and directories, this macro determines the
2848dnl necessary additional linker options for the runtime path.
2849dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
2850dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
2851dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
2852dnl otherwise linking without libtool is assumed.
2853AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
2854[
2855  AC_REQUIRE([AC_LIB_RPATH])
2856  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
2857  $1=
2858  if test "$enable_rpath" != no; then
2859    if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
2860      dnl Use an explicit option to hardcode directories into the resulting
2861      dnl binary.
2862      rpathdirs=
2863      next=
2864      for opt in $2; do
2865        if test -n "$next"; then
2866          dir="$next"
2867          dnl No need to hardcode the standard /usr/lib.
2868          if test "X$dir" != "X/usr/$acl_libdirstem" \
2869             && test "X$dir" != "X/usr/$acl_libdirstem2" \
2870             && test "X$dir" != "X/usr/$acl_libdirstem3"; then
2871            rpathdirs="$rpathdirs $dir"
2872          fi
2873          next=
2874        else
2875          case $opt in
2876            -L) next=yes ;;
2877            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
2878                 dnl No need to hardcode the standard /usr/lib.
2879                 if test "X$dir" != "X/usr/$acl_libdirstem" \
2880                    && test "X$dir" != "X/usr/$acl_libdirstem2" \
2881                    && test "X$dir" != "X/usr/$acl_libdirstem3"; then
2882                   rpathdirs="$rpathdirs $dir"
2883                 fi
2884                 next= ;;
2885            *) next= ;;
2886          esac
2887        fi
2888      done
2889      if test "X$rpathdirs" != "X"; then
2890        if test -n ""$3""; then
2891          dnl libtool is used for linking. Use -R options.
2892          for dir in $rpathdirs; do
2893            $1="${$1}${$1:+ }-R$dir"
2894          done
2895        else
2896          dnl The linker is used for linking directly.
2897          if test -n "$acl_hardcode_libdir_separator"; then
2898            dnl Weird platform: only the last -rpath option counts, the user
2899            dnl must pass all path elements in one option.
2900            alldirs=
2901            for dir in $rpathdirs; do
2902              alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
2903            done
2904            acl_save_libdir="$libdir"
2905            libdir="$alldirs"
2906            eval flag=\"$acl_hardcode_libdir_flag_spec\"
2907            libdir="$acl_save_libdir"
2908            $1="$flag"
2909          else
2910            dnl The -rpath options are cumulative.
2911            for dir in $rpathdirs; do
2912              acl_save_libdir="$libdir"
2913              libdir="$dir"
2914              eval flag=\"$acl_hardcode_libdir_flag_spec\"
2915              libdir="$acl_save_libdir"
2916              $1="${$1}${$1:+ }$flag"
2917            done
2918          fi
2919        fi
2920      fi
2921    fi
2922  fi
2923  AC_SUBST([$1])
2924])
2925
2926# lib-prefix.m4 serial 17
2927dnl Copyright (C) 2001-2005, 2008-2020 Free Software Foundation, Inc.
2928dnl This file is free software; the Free Software Foundation
2929dnl gives unlimited permission to copy and/or distribute it,
2930dnl with or without modifications, as long as this notice is preserved.
2931
2932dnl From Bruno Haible.
2933
2934dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
2935dnl to access previously installed libraries. The basic assumption is that
2936dnl a user will want packages to use other packages he previously installed
2937dnl with the same --prefix option.
2938dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
2939dnl libraries, but is otherwise very convenient.
2940AC_DEFUN([AC_LIB_PREFIX],
2941[
2942  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
2943  AC_REQUIRE([AC_PROG_CC])
2944  AC_REQUIRE([AC_CANONICAL_HOST])
2945  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
2946  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2947  dnl By default, look in $includedir and $libdir.
2948  use_additional=yes
2949  AC_LIB_WITH_FINAL_PREFIX([
2950    eval additional_includedir=\"$includedir\"
2951    eval additional_libdir=\"$libdir\"
2952  ])
2953  AC_ARG_WITH([lib-prefix],
2954[[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
2955  --without-lib-prefix    don't search for libraries in includedir and libdir]],
2956[
2957    if test "X$withval" = "Xno"; then
2958      use_additional=no
2959    else
2960      if test "X$withval" = "X"; then
2961        AC_LIB_WITH_FINAL_PREFIX([
2962          eval additional_includedir=\"$includedir\"
2963          eval additional_libdir=\"$libdir\"
2964        ])
2965      else
2966        additional_includedir="$withval/include"
2967        additional_libdir="$withval/$acl_libdirstem"
2968      fi
2969    fi
2970])
2971  if test $use_additional = yes; then
2972    dnl Potentially add $additional_includedir to $CPPFLAGS.
2973    dnl But don't add it
2974    dnl   1. if it's the standard /usr/include,
2975    dnl   2. if it's already present in $CPPFLAGS,
2976    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
2977    dnl   4. if it doesn't exist as a directory.
2978    if test "X$additional_includedir" != "X/usr/include"; then
2979      haveit=
2980      for x in $CPPFLAGS; do
2981        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
2982        if test "X$x" = "X-I$additional_includedir"; then
2983          haveit=yes
2984          break
2985        fi
2986      done
2987      if test -z "$haveit"; then
2988        if test "X$additional_includedir" = "X/usr/local/include"; then
2989          if test -n "$GCC"; then
2990            case $host_os in
2991              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
2992            esac
2993          fi
2994        fi
2995        if test -z "$haveit"; then
2996          if test -d "$additional_includedir"; then
2997            dnl Really add $additional_includedir to $CPPFLAGS.
2998            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
2999          fi
3000        fi
3001      fi
3002    fi
3003    dnl Potentially add $additional_libdir to $LDFLAGS.
3004    dnl But don't add it
3005    dnl   1. if it's the standard /usr/lib,
3006    dnl   2. if it's already present in $LDFLAGS,
3007    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
3008    dnl   4. if it doesn't exist as a directory.
3009    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
3010      haveit=
3011      for x in $LDFLAGS; do
3012        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3013        if test "X$x" = "X-L$additional_libdir"; then
3014          haveit=yes
3015          break
3016        fi
3017      done
3018      if test -z "$haveit"; then
3019        if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
3020          if test -n "$GCC"; then
3021            case $host_os in
3022              linux*) haveit=yes;;
3023            esac
3024          fi
3025        fi
3026        if test -z "$haveit"; then
3027          if test -d "$additional_libdir"; then
3028            dnl Really add $additional_libdir to $LDFLAGS.
3029            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
3030          fi
3031        fi
3032      fi
3033    fi
3034  fi
3035])
3036
3037dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
3038dnl acl_final_exec_prefix, containing the values to which $prefix and
3039dnl $exec_prefix will expand at the end of the configure script.
3040AC_DEFUN([AC_LIB_PREPARE_PREFIX],
3041[
3042  dnl Unfortunately, prefix and exec_prefix get only finally determined
3043  dnl at the end of configure.
3044  if test "X$prefix" = "XNONE"; then
3045    acl_final_prefix="$ac_default_prefix"
3046  else
3047    acl_final_prefix="$prefix"
3048  fi
3049  if test "X$exec_prefix" = "XNONE"; then
3050    acl_final_exec_prefix='${prefix}'
3051  else
3052    acl_final_exec_prefix="$exec_prefix"
3053  fi
3054  acl_save_prefix="$prefix"
3055  prefix="$acl_final_prefix"
3056  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
3057  prefix="$acl_save_prefix"
3058])
3059
3060dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
3061dnl variables prefix and exec_prefix bound to the values they will have
3062dnl at the end of the configure script.
3063AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
3064[
3065  acl_save_prefix="$prefix"
3066  prefix="$acl_final_prefix"
3067  acl_save_exec_prefix="$exec_prefix"
3068  exec_prefix="$acl_final_exec_prefix"
3069  $1
3070  exec_prefix="$acl_save_exec_prefix"
3071  prefix="$acl_save_prefix"
3072])
3073
3074dnl AC_LIB_PREPARE_MULTILIB creates
3075dnl - a function acl_is_expected_elfclass, that tests whether standard input
3076dn;   has a 32-bit or 64-bit ELF header, depending on the host CPU ABI,
3077dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing
3078dnl   the basename of the libdir to try in turn, either "lib" or "lib64" or
3079dnl   "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar.
3080AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
3081[
3082  dnl There is no formal standard regarding lib, lib32, and lib64.
3083  dnl On most glibc systems, the current practice is that on a system supporting
3084  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
3085  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on
3086  dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go
3087  dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib.
3088  dnl We determine the compiler's default mode by looking at the compiler's
3089  dnl library search path. If at least one of its elements ends in /lib64 or
3090  dnl points to a directory whose absolute pathname ends in /lib64, we use that
3091  dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default,
3092  dnl namely "lib".
3093  dnl On Solaris systems, the current practice is that on a system supporting
3094  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
3095  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
3096  dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
3097  AC_REQUIRE([AC_CANONICAL_HOST])
3098  AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
3099
3100  AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
3101    [AC_EGREP_CPP([Extensible Linking Format],
3102       [#ifdef __ELF__
3103        Extensible Linking Format
3104        #endif
3105       ],
3106       [gl_cv_elf=yes],
3107       [gl_cv_elf=no])
3108     ])
3109  if test $gl_cv_elf; then
3110    # Extract the ELF class of a file (5th byte) in decimal.
3111    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
3112    if od -A x < /dev/null >/dev/null 2>/dev/null; then
3113      # Use POSIX od.
3114      func_elfclass ()
3115      {
3116        od -A n -t d1 -j 4 -N 1
3117      }
3118    else
3119      # Use BSD hexdump.
3120      func_elfclass ()
3121      {
3122        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
3123        echo
3124      }
3125    fi
3126changequote(,)dnl
3127    case $HOST_CPU_C_ABI_32BIT in
3128      yes)
3129        # 32-bit ABI.
3130        acl_is_expected_elfclass ()
3131        {
3132          test "`func_elfclass | sed -e 's/[ 	]//g'`" = 1
3133        }
3134        ;;
3135      no)
3136        # 64-bit ABI.
3137        acl_is_expected_elfclass ()
3138        {
3139          test "`func_elfclass | sed -e 's/[ 	]//g'`" = 2
3140        }
3141        ;;
3142      *)
3143        # Unknown.
3144        acl_is_expected_elfclass ()
3145        {
3146          :
3147        }
3148        ;;
3149    esac
3150changequote([,])dnl
3151  else
3152    acl_is_expected_elfclass ()
3153    {
3154      :
3155    }
3156  fi
3157
3158  dnl Allow the user to override the result by setting acl_cv_libdirstems.
3159  AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
3160    [acl_cv_libdirstems],
3161    [dnl Try 'lib' first, because that's the default for libdir in GNU, see
3162     dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>.
3163     acl_libdirstem=lib
3164     acl_libdirstem2=
3165     acl_libdirstem3=
3166     case "$host_os" in
3167       solaris*)
3168         dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
3169         dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
3170         dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
3171         dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
3172         dnl symlink is missing, so we set acl_libdirstem2 too.
3173         if test $HOST_CPU_C_ABI_32BIT = no; then
3174           acl_libdirstem2=lib/64
3175           case "$host_cpu" in
3176             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
3177             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
3178           esac
3179         fi
3180         ;;
3181       *)
3182         dnl If $CC generates code for a 32-bit ABI, the libraries are
3183         dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64.
3184         dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries
3185         dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32.
3186         dnl Find the compiler's search path. However, non-system compilers
3187         dnl sometimes have odd library search paths. But we can't simply invoke
3188         dnl '/usr/bin/gcc -print-search-dirs' because that would not take into
3189         dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS.
3190         searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
3191                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
3192         if test $HOST_CPU_C_ABI_32BIT != no; then
3193           # 32-bit or unknown ABI.
3194           if test -d /usr/lib32; then
3195             acl_libdirstem2=lib32
3196           fi
3197         fi
3198         if test $HOST_CPU_C_ABI_32BIT != yes; then
3199           # 64-bit or unknown ABI.
3200           if test -d /usr/lib64; then
3201             acl_libdirstem3=lib64
3202           fi
3203         fi
3204         if test -n "$searchpath"; then
3205           acl_save_IFS="${IFS= 	}"; IFS=":"
3206           for searchdir in $searchpath; do
3207             if test -d "$searchdir"; then
3208               case "$searchdir" in
3209                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
3210                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
3211                 */../ | */.. )
3212                   # Better ignore directories of this form. They are misleading.
3213                   ;;
3214                 *) searchdir=`cd "$searchdir" && pwd`
3215                    case "$searchdir" in
3216                      */lib32 ) acl_libdirstem2=lib32 ;;
3217                      */lib64 ) acl_libdirstem3=lib64 ;;
3218                    esac ;;
3219               esac
3220             fi
3221           done
3222           IFS="$acl_save_IFS"
3223           if test $HOST_CPU_C_ABI_32BIT = yes; then
3224             # 32-bit ABI.
3225             acl_libdirstem3=
3226           fi
3227           if test $HOST_CPU_C_ABI_32BIT = no; then
3228             # 64-bit ABI.
3229             acl_libdirstem2=
3230           fi
3231         fi
3232         ;;
3233     esac
3234     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
3235     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
3236     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
3237    ])
3238  dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and
3239  dnl acl_libdirstem3.
3240changequote(,)dnl
3241  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
3242  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
3243  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
3244changequote([,])dnl
3245])
3246
3247# nls.m4 serial 6 (gettext-0.20.2)
3248dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free
3249dnl Software Foundation, Inc.
3250dnl This file is free software; the Free Software Foundation
3251dnl gives unlimited permission to copy and/or distribute it,
3252dnl with or without modifications, as long as this notice is preserved.
3253dnl
3254dnl This file can be used in projects which are not available under
3255dnl the GNU General Public License or the GNU Lesser General Public
3256dnl License but which still want to provide support for the GNU gettext
3257dnl functionality.
3258dnl Please note that the actual code of the GNU gettext library is covered
3259dnl by the GNU Lesser General Public License, and the rest of the GNU
3260dnl gettext package is covered by the GNU General Public License.
3261dnl They are *not* in the public domain.
3262
3263dnl Authors:
3264dnl   Ulrich Drepper <[email protected]>, 1995-2000.
3265dnl   Bruno Haible <[email protected]>, 2000-2003.
3266
3267AC_PREREQ([2.50])
3268
3269AC_DEFUN([AM_NLS],
3270[
3271  AC_MSG_CHECKING([whether NLS is requested])
3272  dnl Default is enabled NLS
3273  AC_ARG_ENABLE([nls],
3274    [  --disable-nls           do not use Native Language Support],
3275    USE_NLS=$enableval, USE_NLS=yes)
3276  AC_MSG_RESULT([$USE_NLS])
3277  AC_SUBST([USE_NLS])
3278])
3279
3280# pkg.m4 - Macros to locate and use pkg-config.   -*- Autoconf -*-
3281# serial 12 (pkg-config-0.29.2)
3282
3283dnl Copyright © 2004 Scott James Remnant <[email protected]>.
3284dnl Copyright © 2012-2015 Dan Nicholson <[email protected]>
3285dnl
3286dnl This program is free software; you can redistribute it and/or modify
3287dnl it under the terms of the GNU General Public License as published by
3288dnl the Free Software Foundation; either version 2 of the License, or
3289dnl (at your option) any later version.
3290dnl
3291dnl This program is distributed in the hope that it will be useful, but
3292dnl WITHOUT ANY WARRANTY; without even the implied warranty of
3293dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3294dnl General Public License for more details.
3295dnl
3296dnl You should have received a copy of the GNU General Public License
3297dnl along with this program; if not, write to the Free Software
3298dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
3299dnl 02111-1307, USA.
3300dnl
3301dnl As a special exception to the GNU General Public License, if you
3302dnl distribute this file as part of a program that contains a
3303dnl configuration script generated by Autoconf, you may include it under
3304dnl the same distribution terms that you use for the rest of that
3305dnl program.
3306
3307dnl PKG_PREREQ(MIN-VERSION)
3308dnl -----------------------
3309dnl Since: 0.29
3310dnl
3311dnl Verify that the version of the pkg-config macros are at least
3312dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
3313dnl installed version of pkg-config, this checks the developer's version
3314dnl of pkg.m4 when generating configure.
3315dnl
3316dnl To ensure that this macro is defined, also add:
3317dnl m4_ifndef([PKG_PREREQ],
3318dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
3319dnl
3320dnl See the "Since" comment for each macro you use to see what version
3321dnl of the macros you require.
3322m4_defun([PKG_PREREQ],
3323[m4_define([PKG_MACROS_VERSION], [0.29.2])
3324m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
3325    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
3326])dnl PKG_PREREQ
3327
3328dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
3329dnl ----------------------------------
3330dnl Since: 0.16
3331dnl
3332dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
3333dnl first found in the path. Checks that the version of pkg-config found
3334dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
3335dnl used since that's the first version where most current features of
3336dnl pkg-config existed.
3337AC_DEFUN([PKG_PROG_PKG_CONFIG],
3338[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
3339m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
3340m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
3341AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
3342AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
3343AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
3344
3345if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
3346	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
3347fi
3348if test -n "$PKG_CONFIG"; then
3349	_pkg_min_version=m4_default([$1], [0.9.0])
3350	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
3351	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
3352		AC_MSG_RESULT([yes])
3353	else
3354		AC_MSG_RESULT([no])
3355		PKG_CONFIG=""
3356	fi
3357fi[]dnl
3358])dnl PKG_PROG_PKG_CONFIG
3359
3360dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
3361dnl -------------------------------------------------------------------
3362dnl Since: 0.18
3363dnl
3364dnl Check to see whether a particular set of modules exists. Similar to
3365dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
3366dnl
3367dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
3368dnl only at the first occurrence in configure.ac, so if the first place
3369dnl it's called might be skipped (such as if it is within an "if", you
3370dnl have to call PKG_CHECK_EXISTS manually
3371AC_DEFUN([PKG_CHECK_EXISTS],
3372[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3373if test -n "$PKG_CONFIG" && \
3374    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
3375  m4_default([$2], [:])
3376m4_ifvaln([$3], [else
3377  $3])dnl
3378fi])
3379
3380dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
3381dnl ---------------------------------------------
3382dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
3383dnl pkg_failed based on the result.
3384m4_define([_PKG_CONFIG],
3385[if test -n "$$1"; then
3386    pkg_cv_[]$1="$$1"
3387 elif test -n "$PKG_CONFIG"; then
3388    PKG_CHECK_EXISTS([$3],
3389                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
3390		      test "x$?" != "x0" && pkg_failed=yes ],
3391		     [pkg_failed=yes])
3392 else
3393    pkg_failed=untried
3394fi[]dnl
3395])dnl _PKG_CONFIG
3396
3397dnl _PKG_SHORT_ERRORS_SUPPORTED
3398dnl ---------------------------
3399dnl Internal check to see if pkg-config supports short errors.
3400AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
3401[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
3402if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
3403        _pkg_short_errors_supported=yes
3404else
3405        _pkg_short_errors_supported=no
3406fi[]dnl
3407])dnl _PKG_SHORT_ERRORS_SUPPORTED
3408
3409
3410dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
3411dnl   [ACTION-IF-NOT-FOUND])
3412dnl --------------------------------------------------------------
3413dnl Since: 0.4.0
3414dnl
3415dnl Note that if there is a possibility the first call to
3416dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
3417dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
3418AC_DEFUN([PKG_CHECK_MODULES],
3419[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3420AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
3421AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
3422
3423pkg_failed=no
3424AC_MSG_CHECKING([for $2])
3425
3426_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
3427_PKG_CONFIG([$1][_LIBS], [libs], [$2])
3428
3429m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
3430and $1[]_LIBS to avoid the need to call pkg-config.
3431See the pkg-config man page for more details.])
3432
3433if test $pkg_failed = yes; then
3434        AC_MSG_RESULT([no])
3435        _PKG_SHORT_ERRORS_SUPPORTED
3436        if test $_pkg_short_errors_supported = yes; then
3437                $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
3438        else
3439                $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
3440        fi
3441        # Put the nasty error message in config.log where it belongs
3442        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
3443
3444        m4_default([$4], [AC_MSG_ERROR(
3445[Package requirements ($2) were not met:
3446
3447$$1_PKG_ERRORS
3448
3449Consider adjusting the PKG_CONFIG_PATH environment variable if you
3450installed software in a non-standard prefix.
3451
3452_PKG_TEXT])[]dnl
3453        ])
3454elif test $pkg_failed = untried; then
3455        AC_MSG_RESULT([no])
3456        m4_default([$4], [AC_MSG_FAILURE(
3457[The pkg-config script could not be found or is too old.  Make sure it
3458is in your PATH or set the PKG_CONFIG environment variable to the full
3459path to pkg-config.
3460
3461_PKG_TEXT
3462
3463To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
3464        ])
3465else
3466        $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
3467        $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
3468        AC_MSG_RESULT([yes])
3469        $3
3470fi[]dnl
3471])dnl PKG_CHECK_MODULES
3472
3473
3474dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
3475dnl   [ACTION-IF-NOT-FOUND])
3476dnl ---------------------------------------------------------------------
3477dnl Since: 0.29
3478dnl
3479dnl Checks for existence of MODULES and gathers its build flags with
3480dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
3481dnl and VARIABLE-PREFIX_LIBS from --libs.
3482dnl
3483dnl Note that if there is a possibility the first call to
3484dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
3485dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
3486dnl configure.ac.
3487AC_DEFUN([PKG_CHECK_MODULES_STATIC],
3488[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3489_save_PKG_CONFIG=$PKG_CONFIG
3490PKG_CONFIG="$PKG_CONFIG --static"
3491PKG_CHECK_MODULES($@)
3492PKG_CONFIG=$_save_PKG_CONFIG[]dnl
3493])dnl PKG_CHECK_MODULES_STATIC
3494
3495
3496dnl PKG_INSTALLDIR([DIRECTORY])
3497dnl -------------------------
3498dnl Since: 0.27
3499dnl
3500dnl Substitutes the variable pkgconfigdir as the location where a module
3501dnl should install pkg-config .pc files. By default the directory is
3502dnl $libdir/pkgconfig, but the default can be changed by passing
3503dnl DIRECTORY. The user can override through the --with-pkgconfigdir
3504dnl parameter.
3505AC_DEFUN([PKG_INSTALLDIR],
3506[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
3507m4_pushdef([pkg_description],
3508    [pkg-config installation directory @<:@]pkg_default[@:>@])
3509AC_ARG_WITH([pkgconfigdir],
3510    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
3511    [with_pkgconfigdir=]pkg_default)
3512AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
3513m4_popdef([pkg_default])
3514m4_popdef([pkg_description])
3515])dnl PKG_INSTALLDIR
3516
3517
3518dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
3519dnl --------------------------------
3520dnl Since: 0.27
3521dnl
3522dnl Substitutes the variable noarch_pkgconfigdir as the location where a
3523dnl module should install arch-independent pkg-config .pc files. By
3524dnl default the directory is $datadir/pkgconfig, but the default can be
3525dnl changed by passing DIRECTORY. The user can override through the
3526dnl --with-noarch-pkgconfigdir parameter.
3527AC_DEFUN([PKG_NOARCH_INSTALLDIR],
3528[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
3529m4_pushdef([pkg_description],
3530    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
3531AC_ARG_WITH([noarch-pkgconfigdir],
3532    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
3533    [with_noarch_pkgconfigdir=]pkg_default)
3534AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
3535m4_popdef([pkg_default])
3536m4_popdef([pkg_description])
3537])dnl PKG_NOARCH_INSTALLDIR
3538
3539
3540dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
3541dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
3542dnl -------------------------------------------
3543dnl Since: 0.28
3544dnl
3545dnl Retrieves the value of the pkg-config variable for the given module.
3546AC_DEFUN([PKG_CHECK_VAR],
3547[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3548AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
3549
3550_PKG_CONFIG([$1], [variable="][$3]["], [$2])
3551AS_VAR_COPY([$1], [pkg_cv_][$1])
3552
3553AS_VAR_IF([$1], [""], [$5], [$4])dnl
3554])dnl PKG_CHECK_VAR
3555
3556dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
3557dnl   [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
3558dnl   [DESCRIPTION], [DEFAULT])
3559dnl ------------------------------------------
3560dnl
3561dnl Prepare a "--with-" configure option using the lowercase
3562dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
3563dnl PKG_CHECK_MODULES in a single macro.
3564AC_DEFUN([PKG_WITH_MODULES],
3565[
3566m4_pushdef([with_arg], m4_tolower([$1]))
3567
3568m4_pushdef([description],
3569           [m4_default([$5], [build with ]with_arg[ support])])
3570
3571m4_pushdef([def_arg], [m4_default([$6], [auto])])
3572m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
3573m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
3574
3575m4_case(def_arg,
3576            [yes],[m4_pushdef([with_without], [--without-]with_arg)],
3577            [m4_pushdef([with_without],[--with-]with_arg)])
3578
3579AC_ARG_WITH(with_arg,
3580     AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
3581    [AS_TR_SH([with_]with_arg)=def_arg])
3582
3583AS_CASE([$AS_TR_SH([with_]with_arg)],
3584            [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
3585            [auto],[PKG_CHECK_MODULES([$1],[$2],
3586                                        [m4_n([def_action_if_found]) $3],
3587                                        [m4_n([def_action_if_not_found]) $4])])
3588
3589m4_popdef([with_arg])
3590m4_popdef([description])
3591m4_popdef([def_arg])
3592
3593])dnl PKG_WITH_MODULES
3594
3595dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
3596dnl   [DESCRIPTION], [DEFAULT])
3597dnl -----------------------------------------------
3598dnl
3599dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
3600dnl check._[VARIABLE-PREFIX] is exported as make variable.
3601AC_DEFUN([PKG_HAVE_WITH_MODULES],
3602[
3603PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
3604
3605AM_CONDITIONAL([HAVE_][$1],
3606               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
3607])dnl PKG_HAVE_WITH_MODULES
3608
3609dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
3610dnl   [DESCRIPTION], [DEFAULT])
3611dnl ------------------------------------------------------
3612dnl
3613dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
3614dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
3615dnl and preprocessor variable.
3616AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
3617[
3618PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
3619
3620AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
3621        [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
3622])dnl PKG_HAVE_DEFINE_WITH_MODULES
3623
3624# po.m4 serial 31 (gettext-0.20.2)
3625dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
3626dnl This file is free software; the Free Software Foundation
3627dnl gives unlimited permission to copy and/or distribute it,
3628dnl with or without modifications, as long as this notice is preserved.
3629dnl
3630dnl This file can be used in projects which are not available under
3631dnl the GNU General Public License or the GNU Lesser General Public
3632dnl License but which still want to provide support for the GNU gettext
3633dnl functionality.
3634dnl Please note that the actual code of the GNU gettext library is covered
3635dnl by the GNU Lesser General Public License, and the rest of the GNU
3636dnl gettext package is covered by the GNU General Public License.
3637dnl They are *not* in the public domain.
3638
3639dnl Authors:
3640dnl   Ulrich Drepper <[email protected]>, 1995-2000.
3641dnl   Bruno Haible <[email protected]>, 2000-2003.
3642
3643AC_PREREQ([2.60])
3644
3645dnl Checks for all prerequisites of the po subdirectory.
3646AC_DEFUN([AM_PO_SUBDIRS],
3647[
3648  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
3649  AC_REQUIRE([AC_PROG_INSTALL])dnl
3650  AC_REQUIRE([AC_PROG_MKDIR_P])dnl
3651  AC_REQUIRE([AC_PROG_SED])dnl
3652  AC_REQUIRE([AM_NLS])dnl
3653
3654  dnl Release version of the gettext macros. This is used to ensure that
3655  dnl the gettext macros and po/Makefile.in.in are in sync.
3656  AC_SUBST([GETTEXT_MACRO_VERSION], [0.20])
3657
3658  dnl Perform the following tests also if --disable-nls has been given,
3659  dnl because they are needed for "make dist" to work.
3660
3661  dnl Search for GNU msgfmt in the PATH.
3662  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
3663  dnl The second test excludes FreeBSD msgfmt.
3664  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
3665    [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
3666     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
3667    :)
3668  AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
3669
3670  dnl Test whether it is GNU msgfmt >= 0.15.
3671changequote(,)dnl
3672  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
3673    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
3674    *) GMSGFMT_015=$GMSGFMT ;;
3675  esac
3676changequote([,])dnl
3677  AC_SUBST([GMSGFMT_015])
3678
3679  dnl Search for GNU xgettext 0.12 or newer in the PATH.
3680  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
3681  dnl The second test excludes FreeBSD xgettext.
3682  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
3683    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
3684     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
3685    :)
3686  dnl Remove leftover from FreeBSD xgettext call.
3687  rm -f messages.po
3688
3689  dnl Test whether it is GNU xgettext >= 0.15.
3690changequote(,)dnl
3691  case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
3692    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
3693    *) XGETTEXT_015=$XGETTEXT ;;
3694  esac
3695changequote([,])dnl
3696  AC_SUBST([XGETTEXT_015])
3697
3698  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
3699  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
3700    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
3701
3702  dnl Test whether it is GNU msgmerge >= 0.20.
3703  if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
3704    MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
3705  else
3706    dnl Test whether it is GNU msgmerge >= 0.12.
3707    if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
3708      MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
3709    else
3710      dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is
3711      dnl slow. But this is not a big problem, as such old gettext versions are
3712      dnl hardly in use any more.
3713      MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
3714    fi
3715  fi
3716  AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION])
3717
3718  dnl Support for AM_XGETTEXT_OPTION.
3719  test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
3720  AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
3721
3722  AC_CONFIG_COMMANDS([po-directories], [[
3723    for ac_file in $CONFIG_FILES; do
3724      # Support "outfile[:infile[:infile...]]"
3725      case "$ac_file" in
3726        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
3727      esac
3728      # PO directories have a Makefile.in generated from Makefile.in.in.
3729      case "$ac_file" in */Makefile.in)
3730        # Adjust a relative srcdir.
3731        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
3732        ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
3733        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
3734        # In autoconf-2.13 it is called $ac_given_srcdir.
3735        # In autoconf-2.50 it is called $srcdir.
3736        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
3737        case "$ac_given_srcdir" in
3738          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
3739          /*) top_srcdir="$ac_given_srcdir" ;;
3740          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
3741        esac
3742        # Treat a directory as a PO directory if and only if it has a
3743        # POTFILES.in file. This allows packages to have multiple PO
3744        # directories under different names or in different locations.
3745        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
3746          rm -f "$ac_dir/POTFILES"
3747          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
3748          gt_tab=`printf '\t'`
3749          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
3750          POMAKEFILEDEPS="POTFILES.in"
3751          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
3752          # on $ac_dir but don't depend on user-specified configuration
3753          # parameters.
3754          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
3755            # The LINGUAS file contains the set of available languages.
3756            if test -n "$OBSOLETE_ALL_LINGUAS"; then
3757              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
3758            fi
3759            ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
3760            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
3761          else
3762            # The set of available languages was given in configure.in.
3763            ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
3764          fi
3765          # Compute POFILES
3766          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
3767          # Compute UPDATEPOFILES
3768          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
3769          # Compute DUMMYPOFILES
3770          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
3771          # Compute GMOFILES
3772          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
3773          case "$ac_given_srcdir" in
3774            .) srcdirpre= ;;
3775            *) srcdirpre='$(srcdir)/' ;;
3776          esac
3777          POFILES=
3778          UPDATEPOFILES=
3779          DUMMYPOFILES=
3780          GMOFILES=
3781          for lang in $ALL_LINGUAS; do
3782            POFILES="$POFILES $srcdirpre$lang.po"
3783            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
3784            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
3785            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
3786          done
3787          # CATALOGS depends on both $ac_dir and the user's LINGUAS
3788          # environment variable.
3789          INST_LINGUAS=
3790          if test -n "$ALL_LINGUAS"; then
3791            for presentlang in $ALL_LINGUAS; do
3792              useit=no
3793              if test "%UNSET%" != "$LINGUAS"; then
3794                desiredlanguages="$LINGUAS"
3795              else
3796                desiredlanguages="$ALL_LINGUAS"
3797              fi
3798              for desiredlang in $desiredlanguages; do
3799                # Use the presentlang catalog if desiredlang is
3800                #   a. equal to presentlang, or
3801                #   b. a variant of presentlang (because in this case,
3802                #      presentlang can be used as a fallback for messages
3803                #      which are not translated in the desiredlang catalog).
3804                case "$desiredlang" in
3805                  "$presentlang"*) useit=yes;;
3806                esac
3807              done
3808              if test $useit = yes; then
3809                INST_LINGUAS="$INST_LINGUAS $presentlang"
3810              fi
3811            done
3812          fi
3813          CATALOGS=
3814          if test -n "$INST_LINGUAS"; then
3815            for lang in $INST_LINGUAS; do
3816              CATALOGS="$CATALOGS $lang.gmo"
3817            done
3818          fi
3819          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
3820          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
3821          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
3822            if test -f "$f"; then
3823              case "$f" in
3824                *.orig | *.bak | *~) ;;
3825                *) cat "$f" >> "$ac_dir/Makefile" ;;
3826              esac
3827            fi
3828          done
3829        fi
3830        ;;
3831      esac
3832    done]],
3833   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
3834    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
3835    OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
3836    # Capture the value of LINGUAS because we need it to compute CATALOGS.
3837    LINGUAS="${LINGUAS-%UNSET%}"
3838   ])
3839])
3840
3841dnl Postprocesses a Makefile in a directory containing PO files.
3842AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
3843[
3844  # When this code is run, in config.status, two variables have already been
3845  # set:
3846  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
3847  # - LINGUAS is the value of the environment variable LINGUAS at configure
3848  #   time.
3849
3850changequote(,)dnl
3851  # Adjust a relative srcdir.
3852  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
3853  ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
3854  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
3855  # In autoconf-2.13 it is called $ac_given_srcdir.
3856  # In autoconf-2.50 it is called $srcdir.
3857  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
3858  case "$ac_given_srcdir" in
3859    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
3860    /*) top_srcdir="$ac_given_srcdir" ;;
3861    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
3862  esac
3863
3864  # Find a way to echo strings without interpreting backslash.
3865  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
3866    gt_echo='echo'
3867  else
3868    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
3869      gt_echo='printf %s\n'
3870    else
3871      echo_func () {
3872        cat <<EOT
3873$*
3874EOT
3875      }
3876      gt_echo='echo_func'
3877    fi
3878  fi
3879
3880  # A sed script that extracts the value of VARIABLE from a Makefile.
3881  tab=`printf '\t'`
3882  sed_x_variable='
3883# Test if the hold space is empty.
3884x
3885s/P/P/
3886x
3887ta
3888# Yes it was empty. Look if we have the expected variable definition.
3889/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
3890  # Seen the first line of the variable definition.
3891  s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
3892  ba
3893}
3894bd
3895:a
3896# Here we are processing a line from the variable definition.
3897# Remove comment, more precisely replace it with a space.
3898s/#.*$/ /
3899# See if the line ends in a backslash.
3900tb
3901:b
3902s/\\$//
3903# Print the line, without the trailing backslash.
3904p
3905tc
3906# There was no trailing backslash. The end of the variable definition is
3907# reached. Clear the hold space.
3908s/^.*$//
3909x
3910bd
3911:c
3912# A trailing backslash means that the variable definition continues in the
3913# next line. Put a nonempty string into the hold space to indicate this.
3914s/^.*$/P/
3915x
3916:d
3917'
3918changequote([,])dnl
3919
3920  # Set POTFILES to the value of the Makefile variable POTFILES.
3921  sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
3922  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
3923  # Compute POTFILES_DEPS as
3924  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
3925  POTFILES_DEPS=
3926  for file in $POTFILES; do
3927    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
3928  done
3929  POMAKEFILEDEPS=""
3930
3931  if test -n "$OBSOLETE_ALL_LINGUAS"; then
3932    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
3933  fi
3934  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
3935    # The LINGUAS file contains the set of available languages.
3936    ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
3937    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
3938  else
3939    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
3940    sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
3941    ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
3942  fi
3943  # Compute POFILES
3944  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
3945  # Compute UPDATEPOFILES
3946  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
3947  # Compute DUMMYPOFILES
3948  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
3949  # Compute GMOFILES
3950  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
3951  # Compute PROPERTIESFILES
3952  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties)
3953  # Compute CLASSFILES
3954  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class)
3955  # Compute QMFILES
3956  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
3957  # Compute MSGFILES
3958  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
3959  # Compute RESOURCESDLLFILES
3960  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
3961  case "$ac_given_srcdir" in
3962    .) srcdirpre= ;;
3963    *) srcdirpre='$(srcdir)/' ;;
3964  esac
3965  POFILES=
3966  UPDATEPOFILES=
3967  DUMMYPOFILES=
3968  GMOFILES=
3969  PROPERTIESFILES=
3970  CLASSFILES=
3971  QMFILES=
3972  MSGFILES=
3973  RESOURCESDLLFILES=
3974  for lang in $ALL_LINGUAS; do
3975    POFILES="$POFILES $srcdirpre$lang.po"
3976    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
3977    DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
3978    GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
3979    PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties"
3980    CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class"
3981    QMFILES="$QMFILES $srcdirpre$lang.qm"
3982    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
3983    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
3984    frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
3985    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
3986  done
3987  # CATALOGS depends on both $ac_dir and the user's LINGUAS
3988  # environment variable.
3989  INST_LINGUAS=
3990  if test -n "$ALL_LINGUAS"; then
3991    for presentlang in $ALL_LINGUAS; do
3992      useit=no
3993      if test "%UNSET%" != "$LINGUAS"; then
3994        desiredlanguages="$LINGUAS"
3995      else
3996        desiredlanguages="$ALL_LINGUAS"
3997      fi
3998      for desiredlang in $desiredlanguages; do
3999        # Use the presentlang catalog if desiredlang is
4000        #   a. equal to presentlang, or
4001        #   b. a variant of presentlang (because in this case,
4002        #      presentlang can be used as a fallback for messages
4003        #      which are not translated in the desiredlang catalog).
4004        case "$desiredlang" in
4005          "$presentlang"*) useit=yes;;
4006        esac
4007      done
4008      if test $useit = yes; then
4009        INST_LINGUAS="$INST_LINGUAS $presentlang"
4010      fi
4011    done
4012  fi
4013  CATALOGS=
4014  JAVACATALOGS=
4015  QTCATALOGS=
4016  TCLCATALOGS=
4017  CSHARPCATALOGS=
4018  if test -n "$INST_LINGUAS"; then
4019    for lang in $INST_LINGUAS; do
4020      CATALOGS="$CATALOGS $lang.gmo"
4021      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
4022      QTCATALOGS="$QTCATALOGS $lang.qm"
4023      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
4024      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
4025      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
4026      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
4027    done
4028  fi
4029
4030  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
4031  tab=`printf '\t'`
4032  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
4033    # Add dependencies that cannot be formulated as a simple suffix rule.
4034    for lang in $ALL_LINGUAS; do
4035      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
4036      cat >> "$ac_file.tmp" <<EOF
4037$frobbedlang.msg: $lang.po
4038${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
4039${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
4040EOF
4041    done
4042  fi
4043  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
4044    # Add dependencies that cannot be formulated as a simple suffix rule.
4045    for lang in $ALL_LINGUAS; do
4046      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
4047      cat >> "$ac_file.tmp" <<EOF
4048$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
4049${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
4050${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
4051EOF
4052    done
4053  fi
4054  if test -n "$POMAKEFILEDEPS"; then
4055    cat >> "$ac_file.tmp" <<EOF
4056Makefile: $POMAKEFILEDEPS
4057EOF
4058  fi
4059  mv "$ac_file.tmp" "$ac_file"
4060])
4061
4062dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
4063AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
4064[
4065  XGETTEXT_EXTRA_OPTIONS=
4066])
4067
4068dnl Registers an option to be passed to xgettext in the po subdirectory.
4069AC_DEFUN([AM_XGETTEXT_OPTION],
4070[
4071  AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
4072  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
4073])
4074
4075# progtest.m4 serial 8 (gettext-0.20.2)
4076dnl Copyright (C) 1996-2003, 2005, 2008-2020 Free Software Foundation, Inc.
4077dnl This file is free software; the Free Software Foundation
4078dnl gives unlimited permission to copy and/or distribute it,
4079dnl with or without modifications, as long as this notice is preserved.
4080dnl
4081dnl This file can be used in projects which are not available under
4082dnl the GNU General Public License or the GNU Lesser General Public
4083dnl License but which still want to provide support for the GNU gettext
4084dnl functionality.
4085dnl Please note that the actual code of the GNU gettext library is covered
4086dnl by the GNU Lesser General Public License, and the rest of the GNU
4087dnl gettext package is covered by the GNU General Public License.
4088dnl They are *not* in the public domain.
4089
4090dnl Authors:
4091dnl   Ulrich Drepper <[email protected]>, 1996.
4092
4093AC_PREREQ([2.50])
4094
4095# Search path for a program which passes the given test.
4096
4097dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
4098dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
4099AC_DEFUN([AM_PATH_PROG_WITH_TEST],
4100[
4101# Prepare PATH_SEPARATOR.
4102# The user is always right.
4103if test "${PATH_SEPARATOR+set}" != set; then
4104  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
4105  # contains only /bin. Note that ksh looks also at the FPATH variable,
4106  # so we have to set that as well for the test.
4107  PATH_SEPARATOR=:
4108  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
4109    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
4110           || PATH_SEPARATOR=';'
4111       }
4112fi
4113
4114# Find out how to test for executable files. Don't use a zero-byte file,
4115# as systems may use methods other than mode bits to determine executability.
4116cat >conf$$.file <<_ASEOF
4117#! /bin/sh
4118exit 0
4119_ASEOF
4120chmod +x conf$$.file
4121if test -x conf$$.file >/dev/null 2>&1; then
4122  ac_executable_p="test -x"
4123else
4124  ac_executable_p="test -f"
4125fi
4126rm -f conf$$.file
4127
4128# Extract the first word of "$2", so it can be a program name with args.
4129set dummy $2; ac_word=[$]2
4130AC_MSG_CHECKING([for $ac_word])
4131AC_CACHE_VAL([ac_cv_path_$1],
4132[case "[$]$1" in
4133  [[\\/]]* | ?:[[\\/]]*)
4134    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
4135    ;;
4136  *)
4137    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
4138    for ac_dir in ifelse([$5], , $PATH, [$5]); do
4139      IFS="$ac_save_IFS"
4140      test -z "$ac_dir" && ac_dir=.
4141      for ac_exec_ext in '' $ac_executable_extensions; do
4142        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
4143          echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
4144          if [$3]; then
4145            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
4146            break 2
4147          fi
4148        fi
4149      done
4150    done
4151    IFS="$ac_save_IFS"
4152dnl If no 4th arg is given, leave the cache variable unset,
4153dnl so AC_PATH_PROGS will keep looking.
4154ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
4155])dnl
4156    ;;
4157esac])dnl
4158$1="$ac_cv_path_$1"
4159if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
4160  AC_MSG_RESULT([$][$1])
4161else
4162  AC_MSG_RESULT([no])
4163fi
4164AC_SUBST([$1])dnl
4165])
4166
4167m4_include([acinclude.m4])
4168