summaryrefslogtreecommitdiff
path: root/scripts/build/companion_libs/libelf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/companion_libs/libelf.sh')
-rw-r--r--scripts/build/companion_libs/libelf.sh91
1 files changed, 91 insertions, 0 deletions
diff --git a/scripts/build/companion_libs/libelf.sh b/scripts/build/companion_libs/libelf.sh
new file mode 100644
index 0000000..ecda8ff
--- /dev/null
+++ b/scripts/build/companion_libs/libelf.sh
@@ -0,0 +1,91 @@
+# Build script for libelf
+
+do_libelf_get() { :; }
+do_libelf_extract() { :; }
+do_libelf() { :; }
+do_libelf_target() { :; }
+
+if [ "${CT_LIBELF}" = "y" -o "${CT_LIBELF_TARGET}" = "y" ]; then
+
+do_libelf_get() {
+ # The server hosting libelf will return an "HTTP 300 : Multiple Choices"
+ # error code if we try to download a file that does not exists there.
+ # So we have to request the file with an explicit extension.
+ CT_GetFile "libelf-${CT_LIBELF_VERSION}" .tar.gz http://www.mr511.de/software/
+}
+
+do_libelf_extract() {
+ CT_Extract "libelf-${CT_LIBELF_VERSION}"
+ CT_Patch "libelf-${CT_LIBELF_VERSION}"
+}
+
+if [ "${CT_LIBELF}" = "y" ]; then
+
+# Uncomment when we need it for gcc-4.5
+# WARNING! This function is absolutely UNTESTED yet!
+do_libelf() {
+ : # Remove this line!
+# CT_DoStep INFO "Installing libelf"
+# mkdir -p "${CT_BUILD_DIR}/build-libelf"
+# CT_Pushd "${CT_BUILD_DIR}/build-libelf"
+#
+# CT_DoLog EXTRA "Configuring libelf"
+# CC="${CT_TARGET}-gcc" \
+# CT_DoExecLog ALL \
+# "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure" \
+# --build=${CT_BUILD} \
+# --host=${CT_HOST} \
+# --target=${CT_TARGET} \
+# --prefix="${CT_PREFIX_DIR}" \
+# --enable-compat \
+# --enable-elf64 \
+# --enable-static \
+# --enable-shared \
+# --enable-extended-format
+#
+# CT_DoLog EXTRA "Building libelf"
+# CT_DoExecLog ALL make
+#
+# CT_DoLog EXTRA "Installing libelf"
+# CT_DoExecLog ALL make instroot="${CT_SYSROOT_DIR}" install
+#
+# CT_Popd
+# CT_EndStep
+}
+
+fi # CT_LIBELF
+
+if [ "${CT_LIBELF_TARGET}" = "y" ]; then
+
+do_libelf_target() {
+ CT_DoStep INFO "Installing libelf for the target"
+ mkdir -p "${CT_BUILD_DIR}/build-libelf"
+ CT_Pushd "${CT_BUILD_DIR}/build-libelf"
+
+ CT_DoLog EXTRA "Configuring libelf"
+ CC="${CT_TARGET}-gcc" \
+ CT_DoExecLog ALL \
+ "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_TARGET} \
+ --target=${CT_TARGET} \
+ --prefix=/usr \
+ --enable-compat \
+ --enable-elf64 \
+ --enable-shared \
+ --enable-extended-format \
+ --enable-static
+
+ CT_DoLog EXTRA "Building libelf"
+ CT_DoExecLog ALL make
+
+ CT_DoLog EXTRA "Installing libelf"
+ CT_DoExecLog ALL make instroot="${CT_SYSROOT_DIR}" install
+
+ CT_Popd
+ CT_EndStep
+}
+
+fi # CT_LIBELF_TARGET
+
+fi # CT_LIBELF || CT_LIBELF_TARGET