AC_INIT([sbsigntool], [0.9.5], [James.Bottomley@HansenPartnership.com]) AM_INIT_AUTOMAKE() AC_PREREQ(2.60) AC_CONFIG_HEADERS(config.h) AC_CONFIG_SRCDIR(src/sbsign.c) AM_PROG_AS AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CPP AC_PROG_RANLIB AC_PROG_MKDIR_P AC_CHECK_TOOL(OBJCOPY, [objcopy]) AC_CHECK_TOOL(STRIP, [strip]) AC_CHECK_HEADER([bfd.h], [], AC_MSG_ERROR([bfd.h not found.] [bfd.h is usually distributed in a binutils development package.])) if test $cross_compiling = no; then AM_MISSING_PROG(HELP2MAN, help2man) else HELP2MAN=: fi AC_MSG_CHECKING([build system endianness]) AC_PREPROC_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[#if __BYTE_ORDER != __LITTLE_ENDIAN]] [[#error]] [[#endif]])], endian=little little_endian=1 big_endian=0) AC_PREPROC_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[#if __BYTE_ORDER != __BIG_ENDIAN]] [[#error]] [[#endif]])], endian=big little_endian=0 big_endian=1) if test x"$endian" != "xbig" -a x"$endian" != "xlittle"; then AC_MSG_ERROR([Can't determine endianness; is endian.h present?]) fi AC_MSG_RESULT($endian) AC_DEFINE_UNQUOTED(HAVE_LITTLE_ENDIAN, $little_endian, [Little-endian system]) AC_DEFINE_UNQUOTED(HAVE_BIG_ENDIAN, $big_endian, [Big-endian system]) PKG_PROG_PKG_CONFIG() PKG_CHECK_MODULES(libcrypto, [libcrypto >= 3.0.0], [ac_have_openssl3=1], [PKG_CHECK_MODULES(libcrypto, libcrypto, [], AC_MSG_ERROR([libcrypto (from the OpenSSL package) is required]))]) AM_CONDITIONAL(HAVE_OPENSSL3, test "$ac_have_openssl3" = "1") PKG_CHECK_MODULES(uuid, uuid, [], AC_MSG_ERROR([libuuid (from the uuid package) is required])) dnl gnu-efi headers require extra include dirs EFI_ARCH=$(uname -m | sed 's/i.86/ia32/;s/arm.*/arm/') AM_CONDITIONAL(TEST_BINARY_FORMAT, [ test "$EFI_ARCH" = "arm" -o "$EFI_ARCH" = "aarch64" -o "$EFI_ARCH" = riscv64 ]) ## # no consistent view of where gnu-efi should dump the efi stuff, so find it ## for path in /lib /lib64 /usr/lib /usr/lib64 /usr/lib32 /lib/efi /lib64/efi /usr/lib/efi /usr/lib64/efi /usr/lib/gnuefi /usr/lib64/gnuefi ; do if test -e $path/crt0-efi-$EFI_ARCH.o; then CRTPATH=$path fi done if test -z "$CRTPATH"; then AC_MSG_ERROR([cannot find the gnu-efi crt path]) fi EFI_CPPFLAGS="-I/usr/include/efi -I/usr/include/efi/$EFI_ARCH \ -DEFI_FUNCTION_WRAPPER" CPPFLAGS_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $EFI_CPPFLAGS" AC_CHECK_HEADERS([efi.h], [], [], $EFI_INCLUDES) CPPFLAGS="$CPPFLAGS_save" AC_SUBST(EFI_CPPFLAGS, $EFI_CPPFLAGS) AC_SUBST(EFI_ARCH, $EFI_ARCH) AC_SUBST(CRTPATH, $CRTPATH) AC_CONFIG_FILES([Makefile src/Makefile lib/ccan/Makefile] [docs/Makefile tests/Makefile]) AC_OUTPUT