* [PATCH LIVEPATCH-BUILD-TOOLS] Support "make install"
@ 2016-07-14 8:34 Ross Lagerwall
0 siblings, 0 replies; only message in thread
From: Ross Lagerwall @ 2016-07-14 8:34 UTC (permalink / raw)
To: xen-devel; +Cc: Ross Lagerwall
Add rules to support using "make install".
Use "make install DESTDIR=... PREFIX=..." to customize the installation
path.
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
Makefile | 10 ++++++++++
livepatch-build | 20 +++++++++++++++++---
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index aa5d5b0..f96b150 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,9 @@
SHELL = /bin/sh
CC = gcc
+INSTALL = install
+PREFIX ?= /usr/local
+BINDIR = $(DESTDIR)$(PREFIX)/bin
+LIBEXECDIR = $(DESTDIR)$(PREFIX)/libexec/livepatch-build-tools
.PHONY: all install clean
.DEFAULT: all
@@ -25,5 +29,11 @@ create-diff-object: $(CREATE_DIFF_OBJECT_OBJS)
prelink: $(PRELINK_OBJS)
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
+install: all
+ $(INSTALL) -d $(LIBEXECDIR)
+ $(INSTALL) $(TARGETS) livepatch-gcc $(LIBEXECDIR)
+ $(INSTALL) -d $(BINDIR)
+ $(INSTALL) livepatch-build $(BINDIR)
+
clean:
$(RM) $(TARGETS) $(CREATE_DIFF_OBJECT_OBJS) $(PRELINK_OBJS) *.d insn/*.d
diff --git a/livepatch-build b/livepatch-build
index 8dc8889..5ef2c88 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -49,6 +49,18 @@ die() {
exit 1
}
+find_tools() {
+ if [[ -e "$SCRIPTDIR/create-diff-object" ]]; then
+ # Running from source tree
+ TOOLSDIR="$SCRIPTDIR"
+ elif [[ -e "$SCRIPTDIR/../libexec/livepatch-build-tools/create-diff-object" ]]; then
+ # Running installed
+ TOOLSDIR="$(readlink -f $SCRIPTDIR/../libexec/livepatch-build-tools)"
+ else
+ return 1
+ fi
+}
+
function make_patch_name()
{
PATCHNAME=$(basename "$1")
@@ -78,7 +90,7 @@ function build_special()
cd "${SRCDIR}" || die
# Capture .o files from the patched build
- export CROSS_COMPILE="${SCRIPTDIR}/livepatch-gcc "
+ export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
export LIVEPATCH_BUILD_DIR="$(pwd)/"
export LIVEPATCH_CAPTURE_DIR="$OUTPUT/${name}"
mkdir -p "$LIVEPATCH_CAPTURE_DIR"
@@ -112,7 +124,7 @@ function create_patch()
mkdir -p "output/$(dirname $i)" || die
echo "Processing ${i}"
echo "Run create-diff-object on $i" >> "${OUTPUT}/create-diff-object.log"
- "${SCRIPTDIR}"/create-diff-object $debugopt $PRELINK "original/$i" "patched/$i" "$XENSYMS" "output/$i" &>> "${OUTPUT}/create-diff-object.log"
+ "${TOOLSDIR}"/create-diff-object $debugopt $PRELINK "original/$i" "patched/$i" "$XENSYMS" "output/$i" &>> "${OUTPUT}/create-diff-object.log"
rc="${PIPESTATUS[0]}"
if [[ $rc = 139 ]]; then
warn "create-diff-object SIGSEGV"
@@ -146,7 +158,7 @@ function create_patch()
chmod +x "${PATCHNAME}.livepatch"
else
ld -r -o output.o --build-id=sha1 $(find output -type f -name "*.o") || die
- "${SCRIPTDIR}"/prelink $debugopt output.o "${PATCHNAME}.livepatch" "$XENSYMS" &>> "${OUTPUT}/prelink.log" || die
+ "${TOOLSDIR}"/prelink $debugopt output.o "${PATCHNAME}.livepatch" "$XENSYMS" &>> "${OUTPUT}/prelink.log" || die
fi
objcopy --add-section .livepatch.depends=depends.bin "${PATCHNAME}.livepatch"
@@ -168,6 +180,8 @@ usage() {
echo " --prelink Prelink" >&2
}
+find_tools || die "can't find supporting tools"
+
options=$(getopt -o hs:p:o:j:k:d -l "help,srcdir:patch:output:cpus:,skip:,debug,xen-debug,xen-syms:,depends:,prelink" -- "$@") || die "getopt failed"
eval set -- "$options"
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-07-14 8:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-14 8:34 [PATCH LIVEPATCH-BUILD-TOOLS] Support "make install" Ross Lagerwall
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).