1 dnl Copyright (C) 1999-2024 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.17])
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 native Windows and Cygwin, we can activate special Makefile rules which
85 dnl add version information to the executables.
87 mingw* | windows* | 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
105 dnl checks for header files, functions and declarations
107 if test "$am_cv_func_iconv" = yes -a -n "$iconv_arg1"; then
112 AC_SUBST([ICONV_CONST])
114 AC_CHECK_FUNCS([getc_unlocked mbrtowc wcrtomb mbsinit setlocale])
116 dnl mbstate_t is used if HAVE_WCRTOMB || HAVE_MBRTOWC, see lib/loop_wchar.h.
117 if test $ac_cv_func_wcrtomb = yes || test $ac_cv_func_mbrtowc = yes; then
122 AC_SUBST([USE_MBSTATE_T])
124 AC_CACHE_CHECK([whether <wchar.h> is standalone],
125 [gl_cv_header_wchar_h_standalone],
131 [gl_cv_header_wchar_h_standalone=yes],
132 [gl_cv_header_wchar_h_standalone=no])])
133 if test $gl_cv_header_wchar_h_standalone = yes; then
138 AC_SUBST([BROKEN_WCHAR_H])
140 AC_REPLACE_FUNCS([memmove])
148 [AC_DEFINE([WORDS_LITTLEENDIAN], [1],
149 [Define if the machine's byte ordering is little endian.])
156 dnl End of hack to work around limitations of automake and error.m4.
157 m4_popdef([AC_REPLACE_FUNCS])
158 m4_popdef([AC_LIBOBJ])
159 AC_SUBST([SRCLIBOBJS])
161 dnl Compilation on native Windows and Cygwin needs special Makefile rules,
163 dnl 1. when we install a shared library, we must arrange to export
164 dnl auxiliary pointer variables for every exported variable,
165 dnl 2. when we install a shared library and a static library simultaneously
166 dnl (e.g. when the user overrides the 'disable-static' default above by
167 dnl passing the configure options --enable-shared --enable-static),
168 dnl the include file specifies __declspec(dllimport) and therefore we
169 dnl must arrange to define the auxiliary pointer variables for the
170 dnl exported variables _also_ in the static library.
171 if test "$enable_shared" = yes; then
173 mingw* | windows* | cygwin*) is_woe32dll=yes ;;
179 WOE32DLL=$is_woe32dll
181 if test $is_woe32dll = yes; then
182 DLL_VARIABLE='__declspec (dllimport)'
186 AC_SUBST([DLL_VARIABLE])
189 /* On Windows, variables that may be in a DLL must be marked specially.
190 The symbols marked with DLL_VARIABLE should be exported if and only if the
191 object file gets included in a DLL. Libtool, on Windows platforms, defines
192 the C macro DLL_EXPORT (together with PIC) when compiling for a shared
193 library (called DLL under Windows) and does not define it when compiling
194 an object file meant to be linked statically into some executable. */
195 #if defined _MSC_VER && defined DLL_EXPORT
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])