blob: 9b1dd39a0a9032348ff8f9fe5bac17810d4ea5d9 [file] [log] [blame] [edit]
#!/bin/bash
set -o errtrace
readonly LOCAL_PATH=external/e2fsprogs
readonly BUILD_DIR=${LOCAL_PATH}/build
readonly BUILD_ROOT=$(pwd)
cleanup() {
echo "Removing ${BUILD_ROOT}/${BUILD_DIR}"
rm -rf ${BUILD_ROOT}/${BUILD_DIR}
}
trap 'echo Fatal error: script $0 aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?' ERR
trap 'cleanup; exit 1' ERR EXIT
if [ ! -d "${LOCAL_PATH}" ]; then
echo "Must be run from Eureka root"
exit 1
fi
#TODO(mengyu): Add supports for other toolchains if needed.
readonly armv7a_CC=${BUILD_ROOT}/prebuilt/toolchain/armv7a/bin/armv7a-cros-linux-gnueabihf-gcc
readonly HOST_ARMV7=armv7a-cros-linux-gnueabihf
readonly aarch64_CC=${BUILD_ROOT}/prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu-gcc
readonly HOST_ARMV8=aarch64-cros-linux-gnu
build_e2fsprogs() {
export TARGET_ARCH_VARIANT=$1
export TARGET_CC=$2
export HOST=$3
rm -rf ${BUILD_DIR}
mkdir ${BUILD_DIR}
pushd ${BUILD_DIR}
../configure --host=${HOST} CC=${TARGET_CC} CFLAGS='-g -fPIC -O2'
make -j50
popd
cp ${BUILD_DIR}/e2fsck/e2fsck ${LOCAL_PATH}/prebuilt/${TARGET_ARCH_VARIANT}
if [ "$TARGET_ARCH_VARIANT" = "armv7-a" ]; then
cp ${BUILD_DIR}/resize/resize2fs ${LOCAL_PATH}/prebuilt/${TARGET_ARCH_VARIANT}
elif [ "$TARGET_ARCH_VARIANT" = "armv8-a-neon" ]; then
cp ${BUILD_DIR}/misc/badblocks ${LOCAL_PATH}/prebuilt/${TARGET_ARCH_VARIANT}
cp ${BUILD_DIR}/misc/mke2fs ${LOCAL_PATH}/prebuilt/${TARGET_ARCH_VARIANT}
fi
}
build_e2fsprogs armv7-a ${armv7a_CC} ${HOST_ARMV7}
build_e2fsprogs armv8-a-neon ${aarch64_CC} ${HOST_ARMV8}