diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-03-05 13:54:55 +0800 |
---|---|---|
committer | Geoff Levand <geoff@infradead.org> | 2013-03-05 06:08:20 -0800 |
commit | 76fdd1c6932624e1783d5d53683919c35728c945 (patch) | |
tree | 77ef35d0b6008a242b26f1dbbaceefb737a76ced | |
parent | 6f381004c354e0e0e2ce5303eb7a675cd1b32c57 (diff) | |
download | petitboot-76fdd1c6932624e1783d5d53683919c35728c945.zip petitboot-76fdd1c6932624e1783d5d53683919c35728c945.tar.gz |
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.in | 21 | ||||
-rw-r--r-- | lib/system/system.c | 20 |
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) |