c48e8bfad3
Now that `ci/installdeps.sh` gracefully exits if run as non-root, we can fold the cargo bits into the our build scripts and avoid invoking both of them. However, now we need to split test deps to separate file because we won't have `cargo` in the main cosa pod. This also fixes a FIXME. Steal the `grep` invocation from cosa and make it a declarative text file so we can have comments per package etc.
156 lines
5.4 KiB
Plaintext
156 lines
5.4 KiB
Plaintext
AC_PREREQ([2.63])
|
|
dnl
|
|
dnl SEE RELEASE.md FOR INSTRUCTIONS ON HOW TO DO A RELEASE.
|
|
dnl
|
|
m4_define([year_version], [2021])
|
|
m4_define([release_version], [1])
|
|
m4_define([package_version], [year_version.release_version])
|
|
AC_INIT([rpm-ostree], [package_version], [coreos@lists.fedoraproject.org])
|
|
AC_CONFIG_HEADER([config.h])
|
|
AC_CONFIG_MACRO_DIR([buildutil])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
dnl Versioning information
|
|
AC_SUBST([YEAR_VERSION], [year_version])
|
|
AC_SUBST([RELEASE_VERSION], [release_version])
|
|
AC_SUBST([PACKAGE_VERSION], [package_version])
|
|
|
|
AM_INIT_AUTOMAKE([1.11 -Wno-portability foreign no-define tar-ustar no-dist-gzip dist-xz subdir-objects])
|
|
AM_MAINTAINER_MODE([enable])
|
|
AM_SILENT_RULES([yes])
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
AC_SYS_LARGEFILE
|
|
|
|
AC_PROG_CC
|
|
dnl we don't today use C++ in rpm-ostree, only in libdnf,
|
|
dnl but this has the side effect of setting CXXFLAGS with -g
|
|
dnl if not set, which we definitely want; cmake doesn't do that.
|
|
AC_PROG_CXX
|
|
AM_PROG_CC_C_O
|
|
|
|
AC_ARG_ENABLE(sanitizers,
|
|
AS_HELP_STRING([--enable-sanitizers],
|
|
[Enable ASAN and UBSAN (default: no)]),,
|
|
[enable_sanitizers=no])
|
|
AM_CONDITIONAL(BUILDOPT_ASAN, [test x$enable_sanitizers != xno])
|
|
|
|
# Initialize libtool
|
|
LT_PREREQ([2.2.4])
|
|
LT_INIT([disable-static])
|
|
|
|
RPM_OSTREE_FEATURES=""
|
|
AC_SUBST([RPM_OSTREE_FEATURES])
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
dnl Remember to update AM_CPPFLAGS in Makefile.am when bumping GIO req.
|
|
PKG_CHECK_MODULES(PKGDEP_GIO_UNIX, [gio-unix-2.0])
|
|
dnl These are the dependencies of the public librpmostree-1.0.0 shared library
|
|
PKG_CHECK_MODULES(PKGDEP_LIBRPMOSTREE, [gio-unix-2.0 >= 2.50.0 json-glib-1.0 ostree-1 >= 2020.7 rpm])
|
|
dnl And these additional ones are used by for the rpmostreeinternals C/C++ library
|
|
PKG_CHECK_MODULES(PKGDEP_RPMOSTREE, [polkit-gobject-1 libarchive])
|
|
|
|
dnl RHEL8.1 has old libarchive
|
|
AS_IF([pkg-config --atleast-version=3.3.3 libarchive],
|
|
[AC_DEFINE([HAVE_LIBARCHIVE_ZSTD], 1, [Define if we have libarchive with zstd])])
|
|
|
|
dnl We don't *actually* use this ourself, but librepo does, and libdnf gets confused
|
|
dnl if librepo doesn't support it.
|
|
have_zchunk=no
|
|
AS_IF([pkg-config --exists zck],
|
|
[have_zchunk=yes; AC_DEFINE([HAVE_ZCHUNK], 1, [Define if we have zchunk])])
|
|
|
|
AC_PATH_PROG([XSLTPROC], [xsltproc])
|
|
|
|
GLIB_TESTS
|
|
LIBGLNX_CONFIGURE
|
|
|
|
m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [
|
|
GOBJECT_INTROSPECTION_CHECK([1.34.0])
|
|
])
|
|
AM_CONDITIONAL(BUILDOPT_INTROSPECTION, test "x$found_introspection" = xyes)
|
|
|
|
m4_ifdef([GTK_DOC_CHECK], [
|
|
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
|
|
],[
|
|
AM_CONDITIONAL([ENABLE_GTK_DOC],[false])
|
|
])
|
|
|
|
AC_ARG_ENABLE(werror,
|
|
AS_HELP_STRING([--enable-werror],
|
|
[Enable -Werror for C/C++ (default: no)]),,
|
|
[enable_werror=no])
|
|
AM_CONDITIONAL(BUILDOPT_WERROR, [test x$enable_werror != xno])
|
|
|
|
AC_ARG_ENABLE(sqlite_rpmdb_default,
|
|
AS_HELP_STRING([--enable-sqlite-rpmdb-default],
|
|
[Default to sqlite rpmdb backend (default: no)]),,
|
|
[enable_sqlite_rpmdb_default=no])
|
|
AM_CONDITIONAL(BUILDOPT_ENABLE_SQLITE_RPMDB_DEFAULT, test x$enable_sqlite_rpmdb_default = xyes)
|
|
|
|
RPM_OSTREE_FEATURES="$RPM_OSTREE_FEATURES compose"
|
|
|
|
PKG_CHECK_VAR(BASH_COMPLETIONSDIR, [bash-completion], [completionsdir],,
|
|
BASH_COMPLETIONSDIR="${datadir}/bash-completion/completions")
|
|
AC_SUBST(BASH_COMPLETIONSDIR)
|
|
|
|
AC_PATH_PROG([cargo], [cargo])
|
|
AS_IF([test -z "$cargo"], [AC_MSG_ERROR([cargo is required for --enable-rust])])
|
|
AC_PATH_PROG([rustc], [rustc])
|
|
AS_IF([test -z "$rustc"], [AC_MSG_ERROR([rustc is required for --enable-rust])])
|
|
|
|
dnl See comment in installdeps.sh
|
|
AM_CONDITIONAL(BUILDOPT_PREBUILT_BINDINGS, [test -f rpmostree-rust-prebuilt.h])
|
|
|
|
AC_MSG_CHECKING(whether to build in debug mode)
|
|
debug_release=release
|
|
if $(echo $CFLAGS |grep -q -E "(-O0|-Og)"); then
|
|
debug_release=debug
|
|
fi
|
|
AC_MSG_RESULT($debug_release)
|
|
|
|
dnl These bits based on gnome:librsvg/configure.ac
|
|
dnl By default, we build in release mode (but without LTO!)
|
|
AC_ARG_ENABLE(rust-debug,
|
|
AC_HELP_STRING([--enable-rust-debug],
|
|
[Build Rust code with debugging information [default=no]]),
|
|
[rust_debug_release=$enableval],
|
|
[rust_debug_release=$debug_release])
|
|
dnl Canonicalize yes/no to debug/release
|
|
AS_IF([test x$rust_debug_release = xno ], [rust_debug_release=release])
|
|
AS_IF([test x$rust_debug_release = xyes ], [rust_debug_release=debug])
|
|
|
|
RUST_TARGET_SUBDIR=${rust_debug_release}
|
|
AC_SUBST([RUST_TARGET_SUBDIR])
|
|
AM_CONDITIONAL(RUST_DEBUG, [test "x$rust_debug_release" = "xdebug"])
|
|
dnl Unconditional now.
|
|
RPM_OSTREE_FEATURES="$RPM_OSTREE_FEATURES rust"
|
|
|
|
AC_ARG_ENABLE(rojig,
|
|
AC_HELP_STRING([--enable-rojig],
|
|
[Support for shipping ostree commits via RPMs [default=no]]))
|
|
AM_CONDITIONAL([BUILDOPT_ROJIG], test x$enable_rojig = xyes)
|
|
AM_COND_IF([BUILDOPT_ROJIG], [
|
|
RPM_OSTREE_FEATURES="$RPM_OSTREE_FEATURES rojig"
|
|
AC_DEFINE([BUILDOPT_ROJIG], 1, [Define if rojig is enabled])
|
|
])
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
api-doc/Makefile
|
|
src/lib/rpm-ostree-1.pc
|
|
src/lib/rpmostree-version.h
|
|
])
|
|
AC_OUTPUT
|
|
|
|
echo "
|
|
$PACKAGE $VERSION
|
|
|
|
introspection: $found_introspection
|
|
rojig: ${enable_rojig:-no}
|
|
ASAN + UBSAN: ${enable_sanitizers:-no}
|
|
gtk-doc: $enable_gtk_doc
|
|
rust: $rust_debug_release
|
|
cbindgen: ${cbindgen:-external}
|
|
sqlite rpmdb default: ${enable_sqlite_rpmdb_default}
|
|
"
|