1 dnl Copyright (C) 1999-2011, 2016, 2018-2021 Free Software Foundation, Inc.
2 dnl This file is part of the GNU LIBICONV Library.
4 dnl The GNU LIBICONV Library is free software; you can redistribute it
5 dnl and/or modify it under the terms of the GNU Lesser General Public
6 dnl License as published by the Free Software Foundation; either version 2.1
7 dnl of the License, or (at your option) any later version.
9 dnl The GNU LIBICONV Library is distributed in the hope that it will be
10 dnl useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 dnl Lesser General Public License for more details.
14 dnl You should have received a copy of the GNU Lesser General Public
15 dnl License along with the GNU LIBICONV Library; see the file COPYING.LIB.
16 dnl If not, see <https://www.gnu.org/licenses/>.
19 AC_INIT([libiconv], [1.16])
20 AC_CONFIG_SRCDIR([lib/iconv.c])
21 AC_CONFIG_AUX_DIR([build-aux])
23 AC_CONFIG_HEADERS([config.h lib/config.h])
26 dnl checks for basic programs
32 AC_PATH_PROG([STRIP], [strip], [:]) dnl sets STRIP
33 AM_PROG_INSTALL_STRIP dnl overrides STRIP when cross-compiling,
34 dnl sets INSTALL_STRIP_PROGRAM
36 dnl check for host type
42 dnl Hack to work around limitations of automake and error.m4 regarding LIBOBJS.
43 dnl "srclib/Makefile.am:32: automatically discovered file `error.h' should not be explicitly mentioned"
44 AC_DEFUN([my_SRCLIB_OBJ],[SRCLIBOBJS="$SRCLIBOBJS $1.$ac_objext"])
45 AC_DEFUN([my_SRCLIB_REPLACE_FUNCS], [AC_CHECK_FUNCS([$1], , [my_SRCLIB_OBJ($ac_func)])])
46 m4_pushdef([AC_LIBOBJ], m4_defn([my_SRCLIB_OBJ]))
47 m4_pushdef([AC_REPLACE_FUNCS], m4_defn([my_SRCLIB_REPLACE_FUNCS]))
49 dnl checks for UNIX variants that set DEFS
53 dnl checks for build configuration
55 LT_INIT([disable-static win32-dll])
58 AC_ARG_ENABLE([extra-encodings],
59 [AS_HELP_STRING([--enable-extra-encodings],
60 [add support for a few rarely used encodings])],
61 [AC_DEFINE([ENABLE_EXTRA], 1,
62 [Define to 1 to enable a few rarely used encodings.])
63 USE_EXTRA_ENCODINGS=yes],
64 [USE_EXTRA_ENCODINGS=no])
65 AC_SUBST([USE_EXTRA_ENCODINGS])
67 dnl checks for programs
73 dnl checks for compiler output filename suffixes
78 dnl checks for build configuration
80 dnl Prepares the libtool configuration for handling of Windows resources, and
81 dnl sets the RC variable to a program that compiles Windows resource files.
82 LT_LANG([Windows Resource])
84 dnl On mingw and Cygwin, we can activate special Makefile rules which add
85 dnl version information to the executables.
87 mingw* | cygwin*) is_woe32=yes ;;
92 if test $WOE32 = yes; then
93 dnl Check for a program that compiles Windows resource files.
94 AC_CHECK_TOOL([WINDRES], [windres])
99 AM_GNU_GETTEXT([external], [need-ngettext])
101 dnl checks for typedefs
106 dnl checks for header files, functions and declarations
108 if test "$am_cv_func_iconv" = yes -a -n "$iconv_arg1"; then
113 AC_SUBST([ICONV_CONST])
115 if test $gt_cv_c_wchar_t = yes; then
120 AC_SUBST([HAVE_WCHAR_T])
122 AC_CHECK_FUNCS([getc_unlocked mbrtowc wcrtomb mbsinit setlocale])
124 dnl mbstate_t is used if HAVE_WCRTOMB || HAVE_MBRTOWC, see lib/loop_wchar.h.
125 if test $ac_cv_func_wcrtomb = yes || test $ac_cv_func_mbrtowc = yes; then
130 AC_SUBST([USE_MBSTATE_T])
132 AC_CACHE_CHECK([whether <wchar.h> is standalone],
133 [gl_cv_header_wchar_h_standalone],
139 [gl_cv_header_wchar_h_standalone=yes],
140 [gl_cv_header_wchar_h_standalone=no])])
141 if test $gl_cv_header_wchar_h_standalone = yes; then
146 AC_SUBST([BROKEN_WCHAR_H])
148 AC_REPLACE_FUNCS([memmove])
156 [AC_DEFINE([WORDS_LITTLEENDIAN], [1],
157 [Define if the machine's byte ordering is little endian.])
164 dnl End of hack to work around limitations of automake and error.m4.
165 m4_popdef([AC_REPLACE_FUNCS])
166 m4_popdef([AC_LIBOBJ])
167 AC_SUBST([SRCLIBOBJS])
169 dnl Compilation on mingw and Cygwin needs special Makefile rules, because
170 dnl 1. when we install a shared library, we must arrange to export
171 dnl auxiliary pointer variables for every exported variable,
172 dnl 2. when we install a shared library and a static library simultaneously,
173 dnl the include file specifies __declspec(dllimport) and therefore we
174 dnl must arrange to define the auxiliary pointer variables for the
175 dnl exported variables _also_ in the static library.
176 if test "$enable_shared" = yes; then
178 mingw* | cygwin*) is_woe32dll=yes ;;
184 WOE32DLL=$is_woe32dll
186 if test $is_woe32dll = yes; then
187 DLL_VARIABLE='__declspec (dllimport)'
191 AC_SUBST([DLL_VARIABLE])
194 /* On Windows, variables that may be in a DLL must be marked specially. */
195 #if defined _MSC_VER && defined _DLL
196 # define DLL_VARIABLE __declspec (dllimport)
198 # define DLL_VARIABLE
202 AC_CONFIG_SUBDIRS([libcharset])
203 AC_CONFIG_FILES([Makefile])
204 AC_CONFIG_FILES([lib/Makefile])
205 AC_CONFIG_FILES([srclib/Makefile])
206 AC_CONFIG_FILES([src/Makefile])
207 AC_CONFIG_FILES([po/Makefile.in])
208 AC_CONFIG_FILES([man/Makefile])
209 if test -d "${srcdir}/tests"; then
210 AC_CONFIG_FILES([tests/Makefile])
212 AC_CONFIG_FILES([include/iconv.h:include/iconv.h.build.in])
213 AC_CONFIG_FILES([include/iconv.h.inst:include/iconv.h.in])