aboutsummaryrefslogtreecommitdiff
path: root/extra/libdw/build
diff options
context:
space:
mode:
Diffstat (limited to 'extra/libdw/build')
-rwxr-xr-xextra/libdw/build35
1 files changed, 35 insertions, 0 deletions
diff --git a/extra/libdw/build b/extra/libdw/build
new file mode 100755
index 00000000..6f9a77c9
--- /dev/null
+++ b/extra/libdw/build
@@ -0,0 +1,35 @@
+#!/bin/sh -e
+
+# Build sometimes forces -Werror.
+export CFLAGS="$CFLAGS -Wno-error"
+
+# Disable configure error for missing argp.
+sed -i 's/as_fn_error.*libargp/: "/g' configure
+
+# Don't compile two unrelated C files which require argp.
+sed -i 's/color.*printversion../#/g' lib/Makefile.in
+
+./configure \
+ --prefix=/usr \
+ --disable-symbol-versioning \
+ --disable-debuginfod \
+ --disable-nls
+
+# Skip the default make target and build only what we need.
+for dep in lib libelf backends libebl libcpu libdwelf libdwfl; do
+ make -C "$dep"
+done
+make -C libdw libdw.a
+
+(
+cd libebl
+install -Dm644 libebl.h "$1/usr/include/elfutils/libebl.h"
+install -Dm644 libebl.a "$1/usr/lib/libebl.a"
+)
+
+(
+cd libdw
+install -Dm644 libdw.h "$1/usr/include/elfutils/libdw.h"
+install -Dm644 dwarf.h "$1/usr/include/dwarf.h"
+install -Dm644 libdw.a "$1/usr/lib/libdw.a"
+)