X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=configure.ac;h=566742c63996b454c0c6da7ddbfc270ca766480b;hp=3d2ec184c437246c1a9b1d77c2219a7978695c0f;hb=9a5c9c9331f0c0c539cad423a4654015598b0d9d;hpb=e39ce1c5ae8bd4bcd5a6e6997d994919f402fcf6 diff --git a/configure.ac b/configure.ac index 3d2ec18..566742c 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ AC_INIT([petitboot], [m4_esyscmd_s([./version.sh])], - [Geoff Levand ]) + [https://lists.ozlabs.org/listinfo/petitboot]) AC_CONFIG_MACRO_DIR([m4]) @@ -26,13 +26,23 @@ AS_IF([test "x$CFLAGS" = "x"], [AC_SUBST([CFLAGS], [""])]) AC_PROG_CC AC_PROG_LEX +if test -z "$($LEX --version)"; then + AC_MSG_ERROR([[Please install flex/lex]]) +fi AC_PROG_YACC +if test -z "$($YACC --version)"; then + AC_MSG_ERROR([[Please install bison/yacc]]) +fi AC_PROG_INSTALL AM_INIT_AUTOMAKE AC_GNU_SOURCE +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION(0.18.1) LT_INIT +AM_SILENT_RULES([yes]) + AX_WITH_CURSES AX_WITH_CURSES_MENU AX_WITH_CURSES_FORM @@ -49,10 +59,30 @@ if test "x$ax_cv_curses" = xyes; then fi AC_CHECK_LIB([udev], [udev_new], - [], + [UDEV_LIBS=-ludev], [AC_MSG_FAILURE([The libudev development library is required by petitboot. Try installing the package libudev-dev or libudev-devel.])] ) +PKG_CHECK_EXISTS(libudev >= 218, [old_udev=no], [old_udev=yes]) +if test "$old_udev" = "yes" ; then + AC_DEFINE(UDEV_LOGGING, 1, [Support old udev logging interface]) +fi + +AC_CHECK_LIB([devmapper], [dm_task_create], + [DEVMAPPER_LIBS=-ldevmapper], + [AC_MSG_FAILURE([The libdevmapper development library is required by petitboot. Try installing the package libdevmapper-dev or device-mapper-devel.])] +) + +AC_ARG_WITH([fdt], + AS_HELP_STRING([--without-fdt], + [Build without libfdt (default: no)])) + +AS_IF([test "x$with_fdt" != "xno"], + AC_CHECK_LIB([fdt], [fdt_check_header], + [FDT_LIBS=-lfdt; have_libfdt=yes])) + +AM_CONDITIONAL([HAVE_LIBFDT], [test x"$have_libfdt" = xyes]) + AC_CHECK_HEADERS([stdarg.h]) AC_CHECK_HEADERS([varargs.h]) @@ -83,7 +113,7 @@ AC_ARG_WITH( [build x11 GUI programs using the twin window system [default=yes]] )], [], - [with_twin_x11=yes] + [with_twin_x11=no] ) AM_CONDITIONAL([WITH_TWIN_X11], [test "x$with_twin_x11" = "xyes"]) @@ -94,7 +124,7 @@ AC_ARG_WITH( [build frame buffer GUI programs using the twin window system [default=no]] )], [], - [with_twin_fbdev=yes] + [with_twin_fbdev=no] ) AM_CONDITIONAL([WITH_TWIN_FBDEV], [test "x$with_twin_fbdev" = "xyes"]) @@ -146,6 +176,69 @@ AS_IF( ] ) +AC_ARG_WITH( + [signed-boot], + [AS_HELP_STRING([--with-signed-boot], + [build kernel signature checking support [default=no]] + )], + [], + [with_signed_boot=no] +) + +AM_CONDITIONAL( + [WITH_SIGNED_BOOT], + [test "x$with_signed_boot" = "xyes"]) + +AS_IF( + [test "x$with_signed_boot" = "xyes"], + [PKG_CHECK_MODULES( + [GPGME], + [gpgme >= 1.0.0], + [SAVE_LIBS="$LIBS" LIBS="$LIBS $gpgme_LIBS" + AC_CHECK_LIB( + [gpgme], + [gpgme_op_verify], + [], + [AC_MSG_FAILURE([--with-signed-boot was given but the test for gpgme failed.])] + ) + LIBS="$SAVE_LIBS" + ], + [AM_PATH_GPGME([1.0.0], [SAVE_LIBS="$LIBS" LIBS="$LIBS $gpgme_LIBS" + AC_CHECK_LIB( + [gpgme], + [gpgme_op_verify], + [], + [AC_MSG_FAILURE([--with-signed-boot was given but the test for gpgme failed.])] + ) + LIBS="$SAVE_LIBS"], + [AC_MSG_RESULT([$gpgme_PKG_ERRORS]) + AC_MSG_FAILURE([ Consider adjusting PKG_CONFIG_PATH environment variable]) + ]) + ] + )] +) + +AS_IF( + [test "x$with_signed_boot" = "xyes"], + [SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $gpgme_CFLAGS" + AC_CHECK_HEADERS( + [gpgme.h], + [], + [AC_MSG_FAILURE([ --with-signed-boot given but gpgme.h not found])] + ) + CPPFLAGS="$SAVE_CPPFLAGS" + ] +) + +AM_CONDITIONAL([WITH_GPGME], [test "x$with_signed_boot" = "xyes"]) + +AC_ARG_VAR( + [lockdown_file], + [Location of authorized signature file [default = "/etc/pb-lockdown"]] +) +AS_IF([test "x$lockdown_file" = x], [lockdown_file="/etc/pb-lockdown"]) +AC_DEFINE_UNQUOTED(LOCKDOWN_FILE, "$lockdown_file", [Lockdown file location]) + AC_ARG_ENABLE( [busybox], [AS_HELP_STRING( @@ -155,7 +248,45 @@ AC_ARG_ENABLE( [], [enable_busybox=no] ) -#AM_CONDITIONAL([ENABLE_BUSYBOX], [test "x$enable_busybox" = "xyes"]) +AM_CONDITIONAL([ENABLE_BUSYBOX], [test "x$enable_busybox" = "xyes"]) +AS_IF([test "x$enable_busybox" = "xyes"], + [AC_DEFINE(WITH_BUSYBOX, 1, [Busybox environment enabled])], + [] +) + +AC_ARG_ENABLE( + [mtd], + [AS_HELP_STRING( + [--enable-mtd], + [Add support for MTD devices on certain platforms [default=no]] + )], + [], + [enable_mtd=no] +) +AM_CONDITIONAL([ENABLE_MTD], [test "x$enable_mtd" = "xyes"]) +AS_IF([test "x$enable_mtd" = "xyes"], + [AC_DEFINE(MTD_SUPPORT, 1, [Enable MTD support])], + [] +) + +AS_IF( + [test "x$enable_mtd" = "xyes"], + AC_CHECK_LIB([flash], [arch_flash_init], + [LIBFLASH_LIBS=-lflash], + [AC_MSG_FAILURE([--enable-mtd requires the libflash library])] + ) +) +AS_IF( + [test "x$enable_mtd" = "xyes"], + [SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $libflash_CFLAGS" + AC_CHECK_HEADERS( + [libflash/libflash.h], + [], + [AC_MSG_FAILURE([--enable-mtd given but libflash/libflash.h not found])] + ) + CPPFLAGS="$SAVE_CPPFLAGS" + ] +) AC_ARG_ENABLE( [ps3], @@ -207,6 +338,11 @@ DEFINE_HOST_PROG(UMOUNT, umount, [/bin/umount]) DEFINE_HOST_PROG(WGET, wget, [/usr/bin/wget]) DEFINE_HOST_PROG(IP, ip, [/sbin/ip]) DEFINE_HOST_PROG(UDHCPC, udhcpc, [/sbin/udhcpc]) +DEFINE_HOST_PROG(VGSCAN, vgscan, [/usr/sbin/vgscan]) +DEFINE_HOST_PROG(VGCHANGE, vgchange, [/usr/sbin/vgchange]) +DEFINE_HOST_PROG(PB_PLUGIN, pb-plugin, [/usr/sbin/pb-plugin]) +DEFINE_HOST_PROG(PB_EXEC, pb-exec, [/usr/sbin/pb-exec]) +DEFINE_HOST_PROG(SH, sh, [/bin/sh]) AC_ARG_WITH( [tftp], @@ -245,11 +381,20 @@ AC_ARG_ENABLE( AS_IF( [test "x$enable_debug" = "xyes"], - [AC_SUBST([DEFAULT_CFLAGS], ["$default_cflags -O0 -DDEBUG"])], - [AC_SUBST([DEFAULT_CFLAGS], ["$default_cflags -O2 -DNDEBUG"])] + [ + AC_SUBST([DEFAULT_CFLAGS], ["$default_cflags -O0"]) + AC_SUBST([DEFAULT_CPPFLAGS], ["-DDEBUG"]) + ], + [ + AC_SUBST([DEFAULT_CFLAGS], ["$default_cflags -O2"]) + AC_SUBST([DEFAULT_CPPFLAGS], ["-DNDEBUG"]) + ] ) - +AC_SUBST([UDEV_LIBS]) +AC_SUBST([DEVMAPPER_LIBS]) +AC_SUBST([FDT_LIBS]) +AC_SUBST([LIBFLASH_LIBS]) AC_SUBST([LIBTOOL_DEPS]) AC_SUBST([DESTDIR]) AC_SUBST([pkgsysconfdir], ["${sysconfdir}/${package}"]) @@ -257,20 +402,7 @@ AC_SUBST([pkgsysconfdir], ["${sysconfdir}/${package}"]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ Makefile - discover/Makefile - discover/grub2/Makefile - lib/Makefile - man/Makefile - test/Makefile - test/lib/Makefile - test/parser/Makefile - test/urls/Makefile - ui/Makefile - ui/common/Makefile - ui/ncurses/Makefile - ui/test/Makefile - ui/twin/Makefile - utils/Makefile + po/Makefile.in ]) AC_OUTPUT