# Process this file with autoconf to produce a configure script. m4_pattern_forbid([^_?DPKG_]) AC_PREREQ(2.60) AC_INIT([dpkg], m4_esyscmd([build-aux/get-version]), [debian-dpkg@lists.debian.org], [dpkg], [https://wiki.debian.org/Teams/Dpkg]) DPKG_DIST_IS_RELEASE AC_SUBST([PACKAGE_COPYRIGHT_HOLDER], ['Dpkg Developers']) AC_SUBST([PACKAGE_VCS_TYPE], [git]) AC_SUBST([PACKAGE_VCS_URL], [https://git.dpkg.org/git/dpkg/dpkg.git]) AC_SUBST([PACKAGE_VCS_WEB], [https://git.dpkg.org/cgit/dpkg/dpkg.git]) AC_SUBST([PACKAGE_BUG_WEB], [https://bugs.debian.org/src:dpkg]) AC_SUBST([PACKAGE_CPAN_NAME], [Dpkg]) AC_CONFIG_SRCDIR([lib/dpkg/dpkg.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_USE_SYSTEM_EXTENSIONS AM_INIT_AUTOMAKE( [1.11] [-Wall] [foreign] [nostdinc] [subdir-objects] [tar-ustar no-dist-gzip dist-xz] ) AM_SILENT_RULES([yes]) # Require at least this gettext version, but will take any later version too. AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.8]) # XXX: We cannot remove the following macro due to backwards compatibility # reasons. The above macro is set unconditionally to the minimal version # required, and the below is set to 0.19.6, the first version introducing # the AM_GNU_GETTEXT_REQUIRE_VERSION macro. AM_GNU_GETTEXT_VERSION([0.19.6]) AM_GNU_GETTEXT([external]) DPKG_DIST_CHECK([test "$GMSGFMT" = ":" && test "$USE_NLS" = "yes"], [gettext required when NLS support enabled]) # Shared libraries are disabled on purpose, currently there is no ABI stability # guarantee, and it will be broken at will. The infrastructure is in place just # to be able to test that its future activation will work. AM_PROG_AR LT_INIT([disable-shared]) DPKG_BUILD_SHARED_LIBS DPKG_LINKER_AS_NEEDED DPKG_LINKER_VERSION_SCRIPT # Allow compilation without optional programs DPKG_BUILD_PROG([dselect]) DPKG_BUILD_PROG([start-stop-daemon]) DPKG_BUILD_PROG([update-alternatives]) DPKG_BUILD_RELEASE_DATE DPKG_BUILD_DEVEL_DOCS # Allow alternate directories DPKG_WITH_DIR([devlibdir], [${libdir}], [dpkg development library directory [LIBDIR]]) DPKG_WITH_DIR([pkgconfdir], [${sysconfdir}/${PACKAGE_NAME}], [dpkg configuration directory [SYSCONFDIR/dpkg]]) DPKG_WITH_DIR([admindir], [${localstatedir}/lib/${PACKAGE_NAME}], [dpkg database directory [LOCALSTATEDIR/lib/dpkg]]) DPKG_WITH_DIR([backupsdir], [${localstatedir}/backups], [dpkg database backups directory [LOCALSTATEDIR/backups]]) DPKG_WITH_DIR([logdir], [${localstatedir}/log], [system logging directory [LOCALSTATEDIR/log]]) DPKG_WITH_DIR([zshcompletionsdir], [${datadir}/zsh/vendor-completions], [zsh vendor completions directory [DATADIR/zsh/vendor-completions]]) # Set default dpkg-deb values DPKG_DEB_COMPRESSOR([xz]) # Checks for programs. AC_PROG_SED AC_PROG_CC DPKG_C_C99 AC_PROG_CXX DPKG_CXX_CXX11 DPKG_PROG_PATCH AC_CHECK_PROGS([DOXYGEN], [doxygen]) AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO]) DPKG_PROG_TAR DPKG_PROG_PO4A DPKG_PROG_PERL DPKG_PROG_POD2MAN DPKG_CODE_COVERAGE # Checks for operating system services and capabilities. AC_SYS_LARGEFILE # Checks for libraries. DPKG_LIB_MD DPKG_LIB_Z DPKG_LIB_BZ2 DPKG_LIB_LZMA DPKG_LIB_ZSTD DPKG_LIB_SELINUX AS_IF([test "x$build_dselect" = "xyes"], [ DPKG_LIB_CURSES ]) AS_IF([test "x$build_start_stop_daemon" = "xyes"], [ DPKG_LIB_SOCKET DPKG_LIB_PS DPKG_LIB_KVM ]) # Checks for header files. AC_CHECK_HEADERS([\ stddef.h \ error.h \ err.h \ locale.h \ xlocale.h \ libintl.h \ kvm.h \ sys/sysmacros.h \ sys/param.h \ sys/syscall.h \ sys/user.h \ sys/procfs.h \ sys/pstat.h \ linux/fiemap.h \ ]) AS_CASE([$host_os], [linux-gnu*], [ # The glibc project has deprecated the header and emits # warnings on its usage, and removed it in 2.32. The Linux kernel removed # support for it in 5.5. ], [ # On other systems, we need to check whether to use it. AC_CHECK_HEADERS([\ sys/sysctl.h \ ]) ] ) AC_CHECK_HEADERS([sys/proc.h], [], [], [ #ifdef HAVE_SYS_PARAM_H #include #endif ]) AS_IF([test "x$build_dselect" = "xyes"], [ AC_LANG_PUSH([C++]) AC_CHECK_HEADERS([cxxabi.h]) AC_LANG_POP([C++]) ]) # Checks for typedefs, structures, and compiler characteristics. AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE AC_C_VOLATILE AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_SIZE_T DPKG_TYPE_PTRDIFF_T AC_CHECK_SIZEOF([unsigned int]) AC_CHECK_SIZEOF([unsigned long]) DPKG_DECL_SYS_SIGLIST DPKG_DECL_SYS_ERRLIST # Checks for library functions. DPKG_FUNC_VA_COPY DPKG_FUNC_C99_SNPRINTF DPKG_FUNC_FSYNC_DIR DPKG_CHECK_DECL([offsetof], [stddef.h]) DPKG_CHECK_DECL([makedev], [sys/types.h]) DPKG_CHECK_DECL([WCOREDUMP], [sys/wait.h]) DPKG_CHECK_DECL([TIOCNOTTY], [sys/ioctl.h]) DPKG_CHECK_DECL([O_NOFOLLOW], [fcntl.h]) DPKG_CHECK_DECL([F_ALLOCSP64], [fcntl.h]) DPKG_CHECK_DECL([F_PREALLOCATE], [fcntl.h]) DPKG_CHECK_DECL([P_tmpdir], [stdio.h]) DPKG_CHECK_PROGNAME DPKG_CHECK_COMPAT_FUNCS([\ getopt \ getopt_long \ obstack_free \ strchrnul \ strnlen \ strndup \ strerror \ strsignal \ asprintf \ scandir \ alphasort \ unsetenv \ ]) AC_CHECK_FUNCS([memcpy lchown], [], [AC_MSG_ERROR([missing required function])]) AC_CHECK_FUNCS([\ strtoimax \ isascii \ setsid \ getdtablesize \ getprocs64 \ getprogname \ getexecname \ lutimes \ fallocate \ posix_fallocate \ posix_fadvise \ uselocale \ ]) AS_IF([test "x$build_dselect" = "xyes"], [ AC_LANG_PUSH([C++]) AC_CHECK_FUNCS([__cxa_pure_virtual]) AC_LANG_POP([C++]) ]) DPKG_USE_MMAP DPKG_USE_DISK_PREALLOCATE # Checks for the build machinery. AC_DEFINE([LIBDPKG_VOLATILE_API], [1], [Acknowledge the volatility of the API.]) DPKG_COMPILER_WARNINGS DPKG_COMPILER_OPTIMIZATIONS DPKG_LINKER_OPTIMIZATIONS DPKG_ARCHITECTURE AC_DEFINE([PACKAGE_RELEASE], [PACKAGE_VERSION " (" ARCHITECTURE ")"], [Define the project release information, version and architecture]) AC_CONFIG_TESTDIR([src/at]) AM_MISSING_PROG([AUTOM4TE], [autom4te]) AC_CONFIG_FILES([ Makefile dselect/Makefile dselect/methods/Makefile dselect/po/Makefile.in lib/Makefile lib/compat/Makefile lib/dpkg/Makefile lib/dpkg/libdpkg.pc doc/Doxyfile man/Makefile po/Makefile.in scripts/Build.PL scripts/Makefile scripts/README.cpan scripts/mk/Makefile scripts/po/Makefile.in src/Makefile src/at/atlocal utils/Makefile ]) AC_CONFIG_HEADERS([config.h]) AC_OUTPUT # Print the current configuration cat <