From: Jeremy Kerr Date: Tue, 5 Mar 2013 05:54:55 +0000 (+0800) Subject: Allow host programs to be configured X-Git-Tag: v1.0.0~742 X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=76fdd1c6932624e1783d5d53683919c35728c945 Allow host programs to be configured Rather than hard-coding in lib/system/system.c, this change adds a set of #defines for host programs, through the autoheader config.h These host programs can then be set through configure: ./configure HOST_PROG_MOUNT=/usr/bin/mount Because we need to define nine host programs, we add an autoconf macro to avoid repeating the definition code. Signed-off-by: Jeremy Kerr Signed-off-by: Geoff Levand --- diff --git a/configure.ac.in b/configure.ac.in index 1f4a419..0121579 100644 --- a/configure.ac.in +++ b/configure.ac.in @@ -163,6 +163,27 @@ AC_ARG_ENABLE( ) #AM_CONDITIONAL([ENABLE_DEBUG], [test "x$enable_debug" = "xyes"]) +# host program paths +AC_DEFUN([DEFINE_HOST_PROG], + [ + AC_ARG_VAR([HOST_PROG_$1], [Path to "$2" on the host [default $3]]) + if test "x$HOST_PROG_$1" = "x"; then + HOST_PROG_$1="$3" + fi + AC_DEFINE_UNQUOTED(HOST_PROG_$1, ["$HOST_PROG_$1"], + [Path to "$2" on the host]) + ]) + +DEFINE_HOST_PROG(CP, cp, [/bin/cp]) +DEFINE_HOST_PROG(KEXEC, kexec, [/sbin/kexec]) +DEFINE_HOST_PROG(MOUNT, mount, [/bin/mount]) +DEFINE_HOST_PROG(SHUTDOWN, shutdown, [/sbin/shutdown]) +DEFINE_HOST_PROG(SFTP, sftp, [/usr/bin/sftp]) +DEFINE_HOST_PROG(TFTP, tftp, [/usr/bin/tftp]) +DEFINE_HOST_PROG(UDEVADM, udevadm, [/sbin/udevadm]) +DEFINE_HOST_PROG(UMOUNT, umount, [/bin/umount]) +DEFINE_HOST_PROG(WGET, wget, [/usr/bin/wget]) + default_cflags="--std=gnu99 -g \ -Wall -W -Wunused -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wredundant-decls -Winline" diff --git a/lib/system/system.c b/lib/system/system.c index 3b30f04..cbf6b9f 100644 --- a/lib/system/system.c +++ b/lib/system/system.c @@ -17,16 +17,16 @@ #include "system.h" const struct pb_system_apps pb_system_apps = { - .prefix = PREFIX, - .cp = "/bin/cp", - .kexec = "/sbin/kexec", - .mount = "/bin/mount", - .shutdown = "/sbin/shutdown", - .sftp = "/usr/bin/sftp", - .tftp = "/usr/bin/tftp", - .udevadm = "/sbin/udevadm", - .umount = "/bin/umount", - .wget = "/usr/bin/wget", + .prefix = PREFIX, + .cp = HOST_PROG_CP, + .kexec = HOST_PROG_KEXEC, + .mount = HOST_PROG_MOUNT, + .shutdown = HOST_PROG_SHUTDOWN, + .sftp = HOST_PROG_SFTP, + .tftp = HOST_PROG_TFTP, + .udevadm = HOST_PROG_UDEVADM, + .umount = HOST_PROG_UMOUNT, + .wget = HOST_PROG_WGET, }; int pb_mkdir_recursive(const char *dir)