dpkg (1.18.25) stretch; urgency=medium
[dpkg] / configure.ac
1 # Process this file with autoconf to produce a configure script.
2
3 m4_pattern_forbid([^_?DPKG_])
4
5 AC_PREREQ(2.60)
6 AC_INIT([dpkg], m4_esyscmd([./get-version]), [debian-dpkg@lists.debian.org])
7 AC_SUBST([PACKAGE_COPYRIGHT_HOLDER], ['Dpkg Developers'])
8 AC_CONFIG_SRCDIR([lib/dpkg/dpkg.h])
9 AC_CONFIG_MACRO_DIR([m4])
10 AC_CONFIG_AUX_DIR([build-aux])
11
12 AC_USE_SYSTEM_EXTENSIONS
13
14 AM_INIT_AUTOMAKE([1.11 -Wall foreign nostdinc no-dist-gzip dist-xz])
15 AM_SILENT_RULES([yes])
16
17 # Do not unconditionally use the following macro, as Debian jessie does not
18 # have a recent enough gettext.
19 m4_ifdef([
20 AM_GNU_GETTEXT_REQUIRE_VERSION
21 ], [
22 AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
23 ])
24 # We cannot remove the following macro due to backwards compatibility reasons.
25 # In the future when the gettext version is bumped, we have to set the above
26 # macro unconditionally to the minimal version, and set the below to 0.19.6,
27 # the first version introducing the AM_GNU_GETTEXT_REQUIRE_VERSION macro.
28 AM_GNU_GETTEXT_VERSION([0.19])
29 AM_GNU_GETTEXT([external])
30 DPKG_DIST_CHECK([test "$GMSGFMT" = ":" && test "$USE_NLS" = "yes"],
31 [gettext required when NLS support enabled])
32
33 # Shared libraries are disabled on purpose, currently there is no ABI stability
34 # guarantee, and it will be broken at will. The infrastructure is in place just
35 # to be able to test that its future activation will work.
36 AM_PROG_AR
37 LT_INIT([disable-shared])
38 DPKG_BUILD_SHARED_LIBS
39 DPKG_LINKER_AS_NEEDED
40 DPKG_LINKER_VERSION_SCRIPT
41
42 # Allow compilation without optional programs
43 DPKG_BUILD_PROG([dselect])
44 DPKG_BUILD_PROG([start-stop-daemon])
45 DPKG_BUILD_PROG([update-alternatives])
46
47 DPKG_BUILD_RELEASE_DATE
48 DPKG_BUILD_DEVEL_DOCS
49
50 # Allow alternate directories
51 DPKG_WITH_DIR([devlibdir], [${libdir}],
52 [dpkg development library directory [LIBDIR]])
53 DPKG_WITH_DIR([pkgconfdir], [${sysconfdir}/${PACKAGE_NAME}],
54 [dpkg configuration directory [SYSCONFDIR/dpkg]])
55 DPKG_WITH_DIR([admindir], [${localstatedir}/lib/${PACKAGE_NAME}],
56 [dpkg database directory [LOCALSTATEDIR/lib/dpkg]])
57 DPKG_WITH_DIR([logdir], [${localstatedir}/log],
58 [system logging directory [LOCALSTATEDIR/log]])
59
60 # Set default dpkg-deb values
61 DPKG_DEB_COMPRESSOR([xz])
62 DPKG_DEB_PROG_TAR
63
64 # Checks for programs.
65 AC_PROG_CC
66 DPKG_C_C99
67 AC_PROG_CXX
68 DPKG_CXX_CXX11
69 DPKG_PROG_PATCH
70 AC_CHECK_PROGS([DOXYGEN], [doxygen])
71 AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
72 DPKG_PROG_PO4A
73 DPKG_PROG_PERL
74 DPKG_PROG_POD2MAN
75 DPKG_CODE_COVERAGE
76
77 # Checks for operating system services and capabilities.
78 AC_SYS_LARGEFILE
79
80 # Checks for libraries.
81 DPKG_LIB_MD
82 DPKG_LIB_Z
83 DPKG_LIB_BZ2
84 DPKG_LIB_LZMA
85 DPKG_LIB_SELINUX
86 AS_IF([test "x$build_dselect" = "xyes"], [
87 DPKG_LIB_CURSES
88 ])
89 AS_IF([test "x$build_start_stop_daemon" = "xyes"], [
90 DPKG_LIB_PS
91 DPKG_LIB_KVM
92 ])
93
94 # Checks for header files.
95 AC_HEADER_STDC
96 AC_CHECK_HEADERS([\
97 stddef.h \
98 error.h \
99 err.h \
100 locale.h \
101 libintl.h \
102 kvm.h \
103 sys/sysmacros.h \
104 sys/param.h \
105 sys/sysctl.h \
106 sys/syscall.h \
107 sys/user.h \
108 sys/procfs.h \
109 sys/pstat.h \
110 linux/fiemap.h \
111 ])
112 AC_CHECK_HEADERS([sys/proc.h], [], [], [
113 #ifdef HAVE_SYS_PARAM_H
114 #include <sys/param.h>
115 #endif
116 ])
117
118 AS_IF([test "x$build_dselect" = "xyes"], [
119 AC_LANG_PUSH([C++])
120 AC_CHECK_HEADERS([cxxabi.h])
121 AC_LANG_POP([C++])
122 ])
123
124 # Checks for typedefs, structures, and compiler characteristics.
125 AC_C_BIGENDIAN
126 AC_C_CONST
127 AC_C_INLINE
128 AC_C_VOLATILE
129 AC_TYPE_MODE_T
130 AC_TYPE_PID_T
131 AC_TYPE_SIZE_T
132 DPKG_TYPES_U_INT_T
133 DPKG_TYPE_PTRDIFF_T
134 AC_CHECK_SIZEOF([unsigned int])
135 AC_CHECK_SIZEOF([unsigned long])
136 DPKG_DECL_SYS_SIGLIST
137 DPKG_DECL_SYS_ERRLIST
138
139 # Checks for library functions.
140 DPKG_FUNC_VA_COPY
141 DPKG_FUNC_C99_SNPRINTF
142 DPKG_CHECK_DECL([offsetof], [stddef.h])
143 DPKG_CHECK_DECL([makedev], [sys/types.h])
144 DPKG_CHECK_DECL([WCOREDUMP], [sys/wait.h])
145 DPKG_CHECK_DECL([TIOCNOTTY], [sys/ioctl.h])
146 DPKG_CHECK_DECL([O_NOFOLLOW], [fcntl.h])
147 DPKG_CHECK_DECL([F_ALLOCSP64], [fcntl.h])
148 DPKG_CHECK_DECL([F_PREALLOCATE], [fcntl.h])
149 DPKG_CHECK_DECL([P_tmpdir], [stdio.h])
150 DPKG_CHECK_PROGNAME
151 DPKG_CHECK_COMPAT_FUNCS([\
152 getopt \
153 getopt_long \
154 obstack_free \
155 strnlen \
156 strndup \
157 strerror \
158 strsignal \
159 asprintf \
160 scandir \
161 alphasort \
162 unsetenv \
163 ])
164 AC_CHECK_FUNCS([memcpy lchown],
165 [], [AC_MSG_ERROR([missing required function])])
166 AC_CHECK_FUNCS([\
167 strtoimax \
168 isascii \
169 setsid \
170 getdtablesize \
171 getprogname \
172 getexecname \
173 lutimes \
174 fallocate \
175 posix_fallocate \
176 posix_fadvise \
177 ])
178
179 AS_IF([test "x$build_dselect" = "xyes"], [
180 AC_LANG_PUSH([C++])
181 AC_CHECK_FUNCS([__cxa_pure_virtual])
182 AC_LANG_POP([C++])
183 ])
184
185 DPKG_USE_MMAP
186 DPKG_USE_DISK_PREALLOCATE
187
188 # Checks for the build machinery.
189 AC_DEFINE([LIBDPKG_VOLATILE_API], [1], [Acknowledge the volatility of the API.])
190 DPKG_COMPILER_WARNINGS
191 DPKG_COMPILER_OPTIMIZATIONS
192 DPKG_LINKER_OPTIMIZATIONS
193 DPKG_ARCHITECTURE
194 AC_DEFINE([PACKAGE_RELEASE], [PACKAGE_VERSION " (" ARCHITECTURE ")"],
195 [Define the project release information, version and architecture])
196
197 AC_CONFIG_TESTDIR([t-func])
198 AM_MISSING_PROG([AUTOM4TE], [autom4te])
199
200 AC_CONFIG_FILES([
201 Makefile
202 t-func/Makefile
203 t-func/atlocal
204 dpkg-deb/Makefile
205 dpkg-split/Makefile
206 dselect/Makefile
207 dselect/methods/Makefile
208 dselect/po/Makefile.in
209 lib/Makefile
210 lib/compat/Makefile
211 lib/dpkg/Makefile
212 lib/dpkg/libdpkg.pc
213 lib/dpkg/t/Makefile
214 doc/Doxyfile
215 man/Makefile
216 po/Makefile.in
217 scripts/Makefile
218 scripts/mk/Makefile
219 scripts/po/Makefile.in
220 src/Makefile
221 utils/Makefile
222 ])
223 AC_CONFIG_HEADERS([config.h])
224 AC_OUTPUT
225
226 # Print the current configuration
227 cat <<CONFIG
228
229 Configuration:
230 Features:
231 native language support . . . : $USE_NLS
232 unicode support . . . . . . . : $USE_UNICODE
233 development documentation . . : $build_devel_docs
234 code coverage . . . . . . . . : $enable_coverage
235 build shared libraries . . . : $enable_shared
236 mmap loaders . . . . . . . . : $enable_mmap
237 disk pre-allocation . . . . . : $enable_disk_preallocate
238 default dpkg-deb compressor . : $with_dpkg_deb_compressor
239
240 Paths:
241 devlibdir . . . . . . . . . . : $devlibdir
242 pkgconfdir . . . . . . . . . : $pkgconfdir
243 admindir . . . . . . . . . . : $admindir
244 logdir . . . . . . . . . . . : $logdir
245 perl interpreter . . . . . . : $PERL
246 perl libdir . . . . . . . . . : $PERL_LIBDIR
247
248 Programs:
249 update-alternatives . . . . . : $build_update_alternatives
250 start-stop-daemon . . . . . . : $build_start_stop_daemon
251 dselect . . . . . . . . . . . : $build_dselect
252
253 System Libraries:
254 libps . . . . . . . . . . . . : ${have_libps:-no}
255 libkvm . . . . . . . . . . . : ${have_libkvm:-no}
256 libselinux . . . . . . . . . : $have_libselinux
257 libmd . . . . . . . . . . . . : $have_libmd
258 libz . . . . . . . . . . . . : $have_libz
259 liblzma . . . . . . . . . . . : $have_liblzma
260 libbz2 . . . . . . . . . . . : $have_libbz2
261 libcurses . . . . . . . . . . : ${have_libcurses:-no}
262 CONFIG