summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-03-05 13:54:55 +0800
committerGeoff Levand <geoff@infradead.org>2013-03-05 06:08:20 -0800
commit76fdd1c6932624e1783d5d53683919c35728c945 (patch)
tree77ef35d0b6008a242b26f1dbbaceefb737a76ced
parent6f381004c354e0e0e2ce5303eb7a675cd1b32c57 (diff)
downloadtalos-petitboot-76fdd1c6932624e1783d5d53683919c35728c945.tar.gz
talos-petitboot-76fdd1c6932624e1783d5d53683919c35728c945.zip
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 <jk@ozlabs.org> Signed-off-by: Geoff Levand <geoff@infradead.org>
-rw-r--r--configure.ac.in21
-rw-r--r--lib/system/system.c20
2 files changed, 31 insertions, 10 deletions
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)
OpenPOWER on IntegriCloud