Dpkg::OpenPGP::Backend::GnuPG: Fallback to use «gpg dearmor» if present
[dpkg.git] / configure.ac
blob9a241292097eca118c67deb78487769c37ed92f4
1 # Process this file with autoconf to produce a configure script.
3 m4_pattern_forbid([^_?DPKG_])
5 AC_PREREQ(2.60)
6 AC_INIT([dpkg], m4_esyscmd([build-aux/get-version]),
7         [debian-dpkg@lists.debian.org], [dpkg],
8         [https://wiki.debian.org/Teams/Dpkg])
9 DPKG_DIST_IS_RELEASE
10 AC_SUBST([PACKAGE_COPYRIGHT_HOLDER], ['Dpkg Developers'])
11 AC_SUBST([PACKAGE_VCS_TYPE], [git])
12 AC_SUBST([PACKAGE_VCS_URL], [https://git.dpkg.org/git/dpkg/dpkg.git])
13 AC_SUBST([PACKAGE_VCS_WEB], [https://git.dpkg.org/cgit/dpkg/dpkg.git])
14 AC_SUBST([PACKAGE_BUG_WEB], [https://bugs.debian.org/src:dpkg])
15 AC_SUBST([PACKAGE_CPAN_NAME], [Dpkg])
16 AC_CONFIG_SRCDIR([lib/dpkg/dpkg.h])
17 AC_CONFIG_MACRO_DIR([m4])
18 AC_CONFIG_AUX_DIR([build-aux])
20 AC_USE_SYSTEM_EXTENSIONS
22 AM_INIT_AUTOMAKE(
23   [1.11]
24   [-Wall]
25   [foreign]
26   [nostdinc]
27   [subdir-objects]
28   [tar-ustar no-dist-gzip dist-xz]
30 AM_SILENT_RULES([yes])
32 # Require at least this gettext version, but will take any later version too.
33 AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.8])
34 # XXX: We cannot remove the following macro due to backwards compatibility
35 # reasons. The above macro is set unconditionally to the minimal version
36 # required, and the below is set to 0.19.6, the first version introducing
37 # the AM_GNU_GETTEXT_REQUIRE_VERSION macro.
38 AM_GNU_GETTEXT_VERSION([0.19.6])
39 AM_GNU_GETTEXT([external])
40 DPKG_DIST_CHECK([test "$GMSGFMT" = ":" && test "$USE_NLS" = "yes"],
41   [gettext required when NLS support enabled])
43 # Shared libraries are disabled on purpose, currently there is no ABI stability
44 # guarantee, and it will be broken at will. The infrastructure is in place just
45 # to be able to test that its future activation will work.
46 AM_PROG_AR
47 LT_INIT([disable-shared])
48 DPKG_BUILD_SHARED_LIBS
49 DPKG_LINKER_AS_NEEDED
50 DPKG_LINKER_VERSION_SCRIPT
52 # Allow compilation without optional programs
53 DPKG_BUILD_PROG([dselect])
54 DPKG_BUILD_PROG([start-stop-daemon])
55 DPKG_BUILD_PROG([update-alternatives])
57 DPKG_BUILD_RELEASE_DATE
58 DPKG_BUILD_DEVEL_DOCS
60 # Allow alternate directories
61 DPKG_WITH_DIR([devlibdir], [${libdir}],
62   [dpkg development library directory [LIBDIR]])
63 DPKG_WITH_DIR([pkgconfdir], [${sysconfdir}/${PACKAGE_NAME}],
64   [dpkg configuration directory [SYSCONFDIR/dpkg]])
65 DPKG_WITH_DIR([admindir], [${localstatedir}/lib/${PACKAGE_NAME}],
66   [dpkg database directory [LOCALSTATEDIR/lib/dpkg]])
67 DPKG_WITH_DIR([backupsdir], [${localstatedir}/backups],
68   [dpkg database backups directory [LOCALSTATEDIR/backups]])
69 DPKG_WITH_DIR([logdir], [${localstatedir}/log],
70   [system logging directory [LOCALSTATEDIR/log]])
71 DPKG_WITH_DIR([zshcompletionsdir], [${datadir}/zsh/vendor-completions],
72   [zsh vendor completions directory [DATADIR/zsh/vendor-completions]])
74 # Set default dpkg-deb values
75 DPKG_DEB_COMPRESSOR([xz])
77 # Checks for programs.
78 AC_PROG_SED
79 AC_PROG_CC
80 DPKG_C_C99
81 AC_PROG_CXX
82 DPKG_CXX_CXX11
83 DPKG_PROG_PATCH
84 AC_CHECK_PROGS([DOXYGEN], [doxygen])
85 AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
86 DPKG_PROG_TAR
87 DPKG_PROG_PO4A
88 DPKG_PROG_PERL
89 DPKG_PROG_POD2MAN
90 DPKG_CODE_COVERAGE
92 # Checks for operating system services and capabilities.
93 AC_SYS_LARGEFILE
95 # Checks for libraries.
96 DPKG_LIB_MD
97 DPKG_LIB_Z
98 DPKG_LIB_BZ2
99 DPKG_LIB_LZMA
100 DPKG_LIB_ZSTD
101 DPKG_LIB_SELINUX
102 AS_IF([test "x$build_dselect" = "xyes"], [
103   DPKG_LIB_CURSES
105 AS_IF([test "x$build_start_stop_daemon" = "xyes"], [
106   DPKG_LIB_SOCKET
107   DPKG_LIB_PS
108   DPKG_LIB_KVM
111 # Checks for header files.
112 AC_CHECK_HEADERS([\
113   stddef.h \
114   error.h \
115   err.h \
116   locale.h \
117   xlocale.h \
118   libintl.h \
119   kvm.h \
120   sys/sysmacros.h \
121   sys/param.h \
122   sys/syscall.h \
123   sys/user.h \
124   sys/procfs.h \
125   sys/pstat.h \
126   linux/fiemap.h \
128 AS_CASE([$host_os],
129   [linux-gnu*], [
130     # The glibc project has deprecated the <sys/sysctl.h> header and emits
131     # warnings on its usage, and removed it in 2.32. The Linux kernel removed
132     # support for it in 5.5.
133   ], [
134     # On other systems, we need to check whether to use it.
135     AC_CHECK_HEADERS([\
136       sys/sysctl.h \
137     ])
138   ]
140 AC_CHECK_HEADERS([sys/proc.h], [], [], [
141 #ifdef HAVE_SYS_PARAM_H
142 #include <sys/param.h>
143 #endif
146 AS_IF([test "x$build_dselect" = "xyes"], [
147   AC_LANG_PUSH([C++])
148   AC_CHECK_HEADERS([cxxabi.h])
149   AC_LANG_POP([C++])
152 # Checks for typedefs, structures, and compiler characteristics.
153 AC_C_BIGENDIAN
154 AC_C_CONST
155 AC_C_INLINE
156 AC_C_VOLATILE
157 AC_TYPE_MODE_T
158 AC_TYPE_PID_T
159 AC_TYPE_SIZE_T
160 DPKG_TYPE_PTRDIFF_T
161 AC_CHECK_SIZEOF([unsigned int])
162 AC_CHECK_SIZEOF([unsigned long])
163 DPKG_DECL_SYS_SIGLIST
164 DPKG_DECL_SYS_ERRLIST
166 # Checks for library functions.
167 DPKG_FUNC_VA_COPY
168 DPKG_FUNC_C99_SNPRINTF
169 DPKG_FUNC_FSYNC_DIR
170 DPKG_CHECK_DECL([offsetof], [stddef.h])
171 DPKG_CHECK_DECL([makedev], [sys/types.h])
172 DPKG_CHECK_DECL([WCOREDUMP], [sys/wait.h])
173 DPKG_CHECK_DECL([TIOCNOTTY], [sys/ioctl.h])
174 DPKG_CHECK_DECL([O_NOFOLLOW], [fcntl.h])
175 DPKG_CHECK_DECL([F_ALLOCSP64], [fcntl.h])
176 DPKG_CHECK_DECL([F_PREALLOCATE], [fcntl.h])
177 DPKG_CHECK_DECL([P_tmpdir], [stdio.h])
178 DPKG_CHECK_PROGNAME
179 DPKG_CHECK_COMPAT_FUNCS([\
180   getopt \
181   getopt_long \
182   obstack_free \
183   strchrnul \
184   strnlen \
185   strndup \
186   strerror \
187   strsignal \
188   asprintf \
189   scandir \
190   alphasort \
191   unsetenv \
193 AC_CHECK_FUNCS([memcpy lchown],
194   [], [AC_MSG_ERROR([missing required function])])
195 AC_CHECK_FUNCS([\
196   strtoimax \
197   isascii \
198   setsid \
199   getdtablesize \
200   getprocs64 \
201   getprogname \
202   getexecname \
203   lutimes \
204   fallocate \
205   posix_fallocate \
206   posix_fadvise \
207   uselocale \
210 AS_IF([test "x$build_dselect" = "xyes"], [
211   AC_LANG_PUSH([C++])
212   AC_CHECK_FUNCS([__cxa_pure_virtual])
213   AC_LANG_POP([C++])
216 DPKG_USE_MMAP
217 DPKG_USE_DISK_PREALLOCATE
219 # Checks for the build machinery.
220 AC_DEFINE([LIBDPKG_VOLATILE_API], [1], [Acknowledge the volatility of the API.])
221 DPKG_COMPILER_WARNINGS
222 DPKG_COMPILER_OPTIMIZATIONS
223 DPKG_LINKER_OPTIMIZATIONS
224 DPKG_ARCHITECTURE
225 AC_DEFINE([PACKAGE_RELEASE], [PACKAGE_VERSION " (" ARCHITECTURE ")"],
226   [Define the project release information, version and architecture])
228 AC_CONFIG_TESTDIR([src/at])
229 AM_MISSING_PROG([AUTOM4TE], [autom4te])
231 AC_CONFIG_FILES([
232   Makefile
233   dselect/Makefile
234   dselect/methods/Makefile
235   dselect/po/Makefile.in
236   lib/Makefile
237   lib/compat/Makefile
238   lib/dpkg/Makefile
239   lib/dpkg/libdpkg.pc
240   doc/Doxyfile
241   man/Makefile
242   po/Makefile.in
243   scripts/Build.PL
244   scripts/Makefile
245   scripts/README.cpan
246   scripts/mk/Makefile
247   scripts/po/Makefile.in
248   src/Makefile
249   src/at/atlocal
250   utils/Makefile
252 AC_CONFIG_HEADERS([config.h])
253 AC_OUTPUT
255 # Print the current configuration
256 cat <<CONFIG
258 Configuration:
259   Features:
260     native language support . . . : $USE_NLS
261     unicode support . . . . . . . : $USE_UNICODE
262     development documentation . . : $build_devel_docs
263     code coverage . . . . . . . . : $enable_coverage
264     build shared libraries  . . . : $enable_shared
265     mmap loaders  . . . . . . . . : $enable_mmap
266     disk pre-allocation . . . . . : $enable_disk_preallocate
267     default dpkg-deb compressor . : $with_dpkg_deb_compressor
269   Paths:
270     devlibdir . . . . . . . . . . : $devlibdir
271     pkgconfdir  . . . . . . . . . : $pkgconfdir
272     admindir  . . . . . . . . . . : $admindir
273     backupsdir  . . . . . . . . . : $backupsdir
274     logdir  . . . . . . . . . . . : $logdir
275     perl interpreter  . . . . . . : $PERL
276     perl libdir . . . . . . . . . : $PERL_LIBDIR
278   Programs:
279     update-alternatives . . . . . : $build_update_alternatives
280     start-stop-daemon . . . . . . : $build_start_stop_daemon
281     dselect . . . . . . . . . . . : $build_dselect
283   System Libraries:
284     libsocket . . . . . . . . . . : ${have_libsocket:-no}
285     libps . . . . . . . . . . . . : ${have_libps:-no}
286     libkvm  . . . . . . . . . . . : ${have_libkvm:-no}
287     libselinux  . . . . . . . . . : $have_libselinux
288     libmd . . . . . . . . . . . . : $have_libmd
289     libz  . . . . . . . . . . . . : $have_libz_impl
290     liblzma . . . . . . . . . . . : $have_liblzma
291     libzstd . . . . . . . . . . . : $have_libzstd
292     libbz2  . . . . . . . . . . . : $have_libbz2
293     libcurses . . . . . . . . . . : ${have_libcurses:-no}
294 CONFIG