| #!/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} |
| |