From 20e5ef825ab9f16db049b2ad1f7eaf2751a33020 Mon Sep 17 00:00:00 2001 From: Darren Hart Date: Wed, 21 Aug 2013 21:21:18 +0200 Subject: [PATCH] configure.ac: Use AC_CHECK_HEADER to detect the efi includes While cross-compiling, AC_CHECK_FILE will abort the configure. The gnu-efi sources don't use relative paths and require the user to explicitly include -I/usr/include/efi/${ARCH}. I haven't found a way to do this with AC_CHECK_HEADER. However, since the existing test was not testing for usability (conftest.c compilation), we don't lose much by just not looking for efi.h and assume it exists if we can find and use efibind.h. Signed-off-by: Darren Hart --- configure.ac | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 5951f4d..137580a 100644 --- a/configure.ac +++ b/configure.ac @@ -71,11 +71,12 @@ AC_CHECK_FILE([/usr/share/qemu-ovmf/bios], [BIOS=/usr/share/qemu-ovmf/bios]) AC_SUBST([BIOS]) # ------------------------------------------------------------------------------ -dnl Compile EFI stuff is so tricky that it's probably better to check for the -dnl include files that try to use AC_CHECK_HEADERS to compile any conftest.c -AC_CHECK_FILES([/usr/include/efi/efi.h - /usr/include/efi/${ARCH}/efibind.h], [], - [AC_MSG_ERROR([*** GNU Efi headers not found])]) +dnl GNU EFI doesn't use relative paths: efi.h includes efibind.h which is in +dnl ${ARCH} relative to efi.h. I can't find a way to get AC_CHECK_HEADERS to +dnl add -I/usr/include/efi/${ARCH} to the conftest.c build. So, just test for +dnl efibind.h as the chances of efi.h not existing if it does are very low. +AC_CHECK_HEADER(efi/${ARCH}/efibind.h, [], + [AC_MSG_ERROR([*** GNU EFI header efibind.h not found])]) efiroot=$(echo $(cd /usr/lib/$(gcc -print-multi-os-directory); pwd)) GNUEFI_LIBS="-L $efiroot" -- 2.7.4