Skip to content

Commit

Permalink
build: Do not unnecessarily rebuild native dependencies
Browse files Browse the repository at this point in the history
And bump zlib to 1.3

Signed-off-by: Francisco Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Loading branch information
javierhonduco committed Aug 20, 2023
1 parent 049093e commit 9de4269
Showing 1 changed file with 57 additions and 32 deletions.
89 changes: 57 additions & 32 deletions tools/build_deps
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ NPROC=$(nproc --all)
ELFUTILS_VERSION="0.188"
ELFUTILS_SHA_512="585551b2d937d19d1becfc2f28935db1dd1a3d25571a62f322b70ac8da98c1a741a55d070327705df6c3e2ee026652e0b9a3c733b050a0b0ec5f2fc75d5b74b5"

ZLIB_VERSION="1.2.13"
ZLIB_SHA256="b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30"
ZLIB_VERSION="1.3"
ZLIB_SHA256="ff0ba4c292013dbc27530b3a81e1f9a813cd39de01ca5e0f8bf355702efa593e"

LOGS_FILE="${PWD}/target/static-libs/run-logs.txt"
STATIC_LIBS_OUT_PATH="${PWD}/target/static-libs"
run() {
"$@" >/dev/null 2>&1
"$@" > "$LOGS_FILE" 2>&1
}

mkdir -p target/static-libs
mkdir -p target/static-libs/libz
mkdir -p target/static-libs/elfutils
STATIC_LIBS_OUT_PATH="${PWD}/target/static-libs"

run pushd "${STATIC_LIBS_OUT_PATH}"

Expand All @@ -24,39 +25,63 @@ run pushd "${STATIC_LIBS_OUT_PATH}"
# https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html
#
# * cflags required for clang to compile elfutils
export CFLAGS="-fno-omit-frame-pointer -fpic -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-but-set-parameter"
export CFLAGS="-fno-omit-frame-pointer -fpic -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-but-set-parameter -Wno-unused-but-set-variable"
export CC=clang

echo "=> Building elfutils"
run curl -L -O "https://sourceware.org/pub/elfutils/${ELFUTILS_VERSION}/elfutils-${ELFUTILS_VERSION}.tar.bz2"
if ! sha512sum "elfutils-${ELFUTILS_VERSION}.tar.bz2" | grep -q "$ELFUTILS_SHA_512"; then
echo "Checksum for elfutils doesn't match"
exit 1
fi
elfutils_build() {
build_artifact="${STATIC_LIBS_OUT_PATH}/elfutils-${ELFUTILS_VERSION}/lib/libelf.a"

run tar xjf "elfutils-${ELFUTILS_VERSION}.tar.bz2"
if [ -f "${build_artifact}" ]; then
echo "Already built"
cp "${build_artifact}" "${STATIC_LIBS_OUT_PATH}"
return
fi

run pushd "elfutils-${ELFUTILS_VERSION}"
run ./configure --prefix="${STATIC_LIBS_OUT_PATH}/elfutils" --disable-debuginfod --disable-libdebuginfod
run curl -L -O "https://sourceware.org/pub/elfutils/${ELFUTILS_VERSION}/elfutils-${ELFUTILS_VERSION}.tar.bz2"
if ! sha512sum "elfutils-${ELFUTILS_VERSION}.tar.bz2" | grep -q "$ELFUTILS_SHA_512"; then
echo "Checksum for elfutils doesn't match"
exit 1
fi

run make "-j${NPROC}"
run make install
cp "${STATIC_LIBS_OUT_PATH}/elfutils/lib/libelf.a" "${STATIC_LIBS_OUT_PATH}"
run popd
run tar xjf "elfutils-${ELFUTILS_VERSION}.tar.bz2"

run pushd "elfutils-${ELFUTILS_VERSION}"
run ./configure --prefix="${STATIC_LIBS_OUT_PATH}/elfutils-${ELFUTILS_VERSION}" --disable-debuginfod --disable-libdebuginfod

run make "-j${NPROC}"
run make install
cp "${build_artifact}" "${STATIC_LIBS_OUT_PATH}"
run popd
}

zlib_build() {
build_artifact="${STATIC_LIBS_OUT_PATH}/libz-${ZLIB_VERSION}/lib/libz.a"

if [ -f "${build_artifact}" ]; then
echo "Already built"
cp "${build_artifact}" "${STATIC_LIBS_OUT_PATH}"
return
fi

run curl -L -O "https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz"
if ! sha256sum "zlib-${ZLIB_VERSION}.tar.gz" | grep -q "$ZLIB_SHA256"; then
echo "Checksum for zlib doesn't match"
exit 1
fi
run tar xzf zlib-${ZLIB_VERSION}.tar.gz

run pushd "zlib-${ZLIB_VERSION}"
run ./configure --prefix="${STATIC_LIBS_OUT_PATH}/libz-${ZLIB_VERSION}" >/dev/null
run make "-j${NPROC}" >/dev/null
run make install >/dev/null
cp "${build_artifact}" "${STATIC_LIBS_OUT_PATH}"
run popd
}

echo "=> Building elfutils"
elfutils_build

echo "=> Building zlib"
run curl -L -O "https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz"
if ! sha256sum "zlib-${ZLIB_VERSION}.tar.gz" | grep -q "$ZLIB_SHA256"; then
echo "Checksum for zlib doesn't match"
exit 1
fi
run tar xzf zlib-${ZLIB_VERSION}.tar.gz

run pushd "zlib-${ZLIB_VERSION}"
run ./configure --prefix="${STATIC_LIBS_OUT_PATH}/libz" >/dev/null
run make "-j${NPROC}" >/dev/null
run make install >/dev/null
cp "${STATIC_LIBS_OUT_PATH}/libz/lib/libz.a" "${STATIC_LIBS_OUT_PATH}"
run popd
zlib_build

run popd
run popd

0 comments on commit 9de4269

Please sign in to comment.