Skip to content

Commit ce8b6dd

Browse files
committed
完善了 clean 功能
1 parent e589628 commit ce8b6dd

6 files changed

Lines changed: 73 additions & 34 deletions

File tree

build.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ usage() {
2020
printf '%s\n' " release -> scripts/release.sh"
2121
printf '%s\n' " all -> build all platforms sequentially"
2222
printf '%s\n' " clean Clean build output artifacts"
23+
printf '%s\n' " cleanall|distclean Remove all directories"
2324
printf '%s\n' ""
2425
printf '%s\n' "OS:"
2526
printf '%s\n' " linux build linux kernel"
@@ -138,10 +139,15 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
138139
clean)
139140
platforms=(phytiumpi roc-rk3568-pc evm3588 tac-e400-plc qemu-aarch64 qemu-x86_64 qemu-riscv64)
140141
for p in "${platforms[@]}"; do
141-
echo "[ALL] Building: $p $*"
142+
echo "[ALL] Cleaning: $p $*"
142143
"$0" "$p" "clean" || { echo "[ERROR] $p build failed" >&2; exit 1; }
143144
done
144145
;;
146+
cleanall|distclean)
147+
echo "[CLEANALL] Removing build, IMAGES and release directories"
148+
rm -rf build IMAGES release
149+
echo "[CLEANALL] Removed all directories"
150+
;;
145151
*)
146152
echo "[ERROR] Unknown platform: $cmd" >&2
147153
usage

scripts/evm3588.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,23 @@ build_linux() {
5151
REMOTE_HOST="10.0.0.110"
5252
REMOTE_DIR="/runner/evm3588_linux_sdk_v1.0.3"
5353

54-
info "Building remotely via SSH:ssh ${REMOTE_HOST} cd '${REMOTE_DIR}' && ./build.sh $@"
55-
ssh "${REMOTE_HOST}" "cd '${REMOTE_DIR}' && ./build.sh $@"
5654

5755
if [[ "$@" != *"clean"* ]]; then
56+
info "Building remotely via SSH:ssh ${REMOTE_HOST} cd '${REMOTE_DIR}' && ./build.sh $@"
57+
ssh "${REMOTE_HOST}" "cd '${REMOTE_DIR}' && ./build.sh $@"
58+
5859
info "Copying build artifacts: -> $LINUX_IMAGES_DIR"
5960
mkdir -p "${LINUX_IMAGES_DIR}"
6061
scp "${REMOTE_HOST}:${REMOTE_DIR}/rockdev/boot.img" "${LINUX_IMAGES_DIR}/"
6162
scp "${REMOTE_HOST}:${REMOTE_DIR}/rockdev/MiniLoaderAll.bin" "${LINUX_IMAGES_DIR}/"
6263
scp "${REMOTE_HOST}:${REMOTE_DIR}/rockdev/parameter.txt" "${LINUX_IMAGES_DIR}/"
6364
scp "${REMOTE_HOST}:${REMOTE_DIR}/kernel/arch/arm64/boot/Image" "${LINUX_IMAGES_DIR}/"
6465
scp "${REMOTE_HOST}:${REMOTE_DIR}/kernel/arch/arm64/boot/dts/rockchip/evm3588.dtb" "${LINUX_IMAGES_DIR}/"
66+
else
67+
info "Cleaning remotely via SSH:ssh ${REMOTE_HOST} cd '${REMOTE_DIR}' && ./build.sh cleanall"
68+
ssh "${REMOTE_HOST}" "cd '${REMOTE_DIR}' && ./build.sh cleanall"
69+
info "Removing ${LINUX_IMAGES_DIR}/*"
70+
rm ${LINUX_IMAGES_DIR}/* || true
6571
fi
6672
}
6773

@@ -84,6 +90,8 @@ build_arceos() {
8490
info "Copying build artifacts -> $ARCEOS_IMAGES_DIR"
8591
mkdir -p "$ARCEOS_IMAGES_DIR"
8692
cp "$ARCEOS_SRC_DIR/examples/helloworld-myplat/helloworld-myplat_aarch64-dyn.bin" "$ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin"
93+
else
94+
rm -rf $ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin || true
8795
fi
8896
}
8997

scripts/phytiumpi.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ build_linux() {
6565
"$LINUX_IMAGES_DIR/"
6666
gzip -dc "$LINUX_SRC_DIR/output/images/Image.gz" > "$LINUX_IMAGES_DIR/Image"
6767
else
68-
info "Starting compilation: make $@"
68+
info "Cleaning: make $@"
6969
make $@ > /dev/null
70+
info "Removing ${LINUX_IMAGES_DIR}/*"
71+
rm ${LINUX_IMAGES_DIR}/* || true
7072
fi
7173
popd >/dev/null
7274
}
@@ -96,6 +98,8 @@ build_arceos() {
9698
info "Copying build artifacts -> $ARCEOS_IMAGES_DIR"
9799
mkdir -p "$ARCEOS_IMAGES_DIR"
98100
cp "$ARCEOS_SRC_DIR/examples/helloworld-myplat/helloworld-myplat_aarch64-dyn.bin" "$ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin"
101+
else
102+
rm -rf $ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin || true
99103
fi
100104
}
101105

scripts/qemu.sh

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -84,26 +84,33 @@ build_linux() {
8484
# info "Cleaning Linux: make distclean"
8585
# make distclean || true
8686

87-
if [[ ${#commands[@]} -eq 0 ]] || [[ "${commands[0]}" == "all" ]]; then
88-
info "Configuring Linux: make ARCH=${linux_arch} CROSS_COMPILE=${cross_compile} ${defconfig}"
89-
make ARCH="${linux_arch}" CROSS_COMPILE="${cross_compile}" "${defconfig}"
90-
fi
91-
92-
info "Building Linux: make -j$(nproc) ARCH=${linux_arch} CROSS_COMPILE=${cross_compile} ${commands[@]}"
93-
make -j"$(nproc)" ARCH="${linux_arch}" CROSS_COMPILE="${cross_compile}" "${commands[@]}"
94-
95-
popd >/dev/null
96-
97-
# If it's a full build, copy the image and create the root filesystem
98-
if [[ ${#commands[@]} -eq 0 ]] || [[ "${commands[0]}" == "all" ]]; then
99-
mkdir -p "${LINUX_IMAGES_DIR}/${ARCH:-}"
100-
KIMG_PATH="${LINUX_SRC_DIR}/${kimg_subpath}"
101-
[[ -f "${KIMG_PATH}" ]] || die "Kernel image not found: ${KIMG_PATH}"
102-
info "Copying image: ${KIMG_PATH} -> ${LINUX_IMAGES_DIR}/${ARCH:-}"
103-
cp -f "${KIMG_PATH}" "${LINUX_IMAGES_DIR}/${ARCH:-}/"
87+
if [[ "$@" != *"clean"* ]]; then
88+
if [[ ${#commands[@]} -eq 0 ]] || [[ "${commands[0]}" == "all" ]]; then
89+
info "Configuring Linux: make ARCH=${linux_arch} CROSS_COMPILE=${cross_compile} ${defconfig}"
90+
make ARCH="${linux_arch}" CROSS_COMPILE="${cross_compile}" "${defconfig}"
91+
fi
92+
93+
info "Building Linux: make -j$(nproc) ARCH=${linux_arch} CROSS_COMPILE=${cross_compile} ${commands[@]}"
94+
make -j"$(nproc)" ARCH="${linux_arch}" CROSS_COMPILE="${cross_compile}" "${commands[@]}"
10495

105-
info "Creating root filesystem: ${SCRIPT_DIR}/mkfs.sh -> ${LINUX_IMAGES_DIR}/${ARCH:-}"
106-
build_rootfs
96+
popd >/dev/null
97+
98+
# If it's a full build, copy the image and create the root filesystem
99+
if [[ ${#commands[@]} -eq 0 ]] || [[ "${commands[0]}" == "all" ]]; then
100+
mkdir -p "${LINUX_IMAGES_DIR}/${ARCH:-}"
101+
KIMG_PATH="${LINUX_SRC_DIR}/${kimg_subpath}"
102+
[[ -f "${KIMG_PATH}" ]] || die "Kernel image not found: ${KIMG_PATH}"
103+
info "Copying image: ${KIMG_PATH} -> ${LINUX_IMAGES_DIR}/${ARCH:-}"
104+
cp -f "${KIMG_PATH}" "${LINUX_IMAGES_DIR}/${ARCH:-}/"
105+
106+
info "Creating root filesystem: ${SCRIPT_DIR}/mkfs.sh -> ${LINUX_IMAGES_DIR}/${ARCH:-}"
107+
build_rootfs
108+
fi
109+
else
110+
info "Building Linux: make -j$(nproc) ARCH=${linux_arch} CROSS_COMPILE=${cross_compile} clean"
111+
make -j"$(nproc)" ARCH="${linux_arch}" CROSS_COMPILE="${cross_compile}" "clean"
112+
info "Removing ${LINUX_IMAGES_DIR}/*"
113+
rm ${LINUX_IMAGES_DIR}/${ARCH:-}/* || true
107114
fi
108115
}
109116

@@ -162,6 +169,8 @@ build_arceos() {
162169
info "Copying build artifacts -> $ARCEOS_IMAGES_DIR/${ARCH:-}"
163170
mkdir -p "$ARCEOS_IMAGES_DIR/${ARCH:-}"
164171
cp "$ARCEOS_SRC_DIR/examples/helloworld-myplat/helloworld-myplat_$app_features.bin" "$ARCEOS_IMAGES_DIR/${ARCH:-}/arceos-${ARCH}-dyn-smp1.bin"
172+
else
173+
rm -rf $ARCEOS_IMAGES_DIR/${ARCH:-}/arceos-${ARCH}-dyn-smp1.bin || true
165174
fi
166175
}
167176

scripts/roc-rk3568-pc.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,22 @@ build_linux() {
5252
REMOTE_DIR="/runner/firefly_rk3568_sdk"
5353
REMOTE_IMAGES_DIR="output/RK3568-FIREFLY-ROC-PC-SE/latest/IMAGES"
5454

55-
info "Building remotely via SSH: ssh ${REMOTE_HOST} cd '${REMOTE_DIR}' && ./build.sh firefly_rk3568_roc-rk3568-pc_ubuntu_defconfig && ./build.sh $@"
56-
ssh "${REMOTE_HOST}" "cd '${REMOTE_DIR}' && ./build.sh firefly_rk3568_roc-rk3568-pc_ubuntu_defconfig && ./build.sh $@"
57-
5855
if [[ "$@" != *"clean"* ]]; then
56+
info "Building remotely via SSH: ssh ${REMOTE_HOST} cd '${REMOTE_DIR}' && ./build.sh firefly_rk3568_roc-rk3568-pc_ubuntu_defconfig && ./build.sh $@"
57+
ssh "${REMOTE_HOST}" "cd '${REMOTE_DIR}' && ./build.sh firefly_rk3568_roc-rk3568-pc_ubuntu_defconfig && ./build.sh $@"
58+
5959
info "Copying build artifacts: -> $LINUX_IMAGES_DIR"
6060
mkdir -p "${LINUX_IMAGES_DIR}"
6161
scp "${REMOTE_HOST}:${REMOTE_DIR}/${REMOTE_IMAGES_DIR}/boot.img" "${LINUX_IMAGES_DIR}/"
6262
scp "${REMOTE_HOST}:${REMOTE_DIR}/${REMOTE_IMAGES_DIR}/parameter.txt" "${LINUX_IMAGES_DIR}/"
6363
scp "${REMOTE_HOST}:${REMOTE_DIR}/${REMOTE_IMAGES_DIR}/MiniLoaderAll.bin" "${LINUX_IMAGES_DIR}/"
6464
scp "${REMOTE_HOST}:${REMOTE_DIR}/${REMOTE_IMAGES_DIR}/../kernel/rk3568-firefly-roc-pc-se.dtb" "${LINUX_IMAGES_DIR}/"
6565
scp "${REMOTE_HOST}:${REMOTE_DIR}/kernel/arch/arm64/boot/Image" "${LINUX_IMAGES_DIR}/"
66+
else
67+
info "Cleaning remotely via SSH: ssh ${REMOTE_HOST} cd '${REMOTE_DIR}' && ./build.sh cleanall"
68+
ssh "${REMOTE_HOST}" "cd '${REMOTE_DIR}' && ./build.sh cleanall"
69+
info "Removing ${LINUX_IMAGES_DIR}/*"
70+
rm ${LINUX_IMAGES_DIR}/* || true
6671
fi
6772
}
6873

@@ -85,6 +90,8 @@ build_arceos() {
8590
info "Copying build artifacts -> $ARCEOS_IMAGES_DIR"
8691
mkdir -p "$ARCEOS_IMAGES_DIR"
8792
cp "$ARCEOS_SRC_DIR/examples/helloworld-myplat/helloworld-myplat_aarch64-dyn.bin" "$ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin"
93+
else
94+
rm -rf $ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin || true
8895
fi
8996
}
9097

scripts/tac-e400-plc.sh

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,24 @@ usage() {
4848

4949
build_linux() {
5050
pushd "$LINUX_SRC_DIR/EDGE_KERNEL" >/dev/null
51+
if [[ "$@" != *"clean"* ]]; then
52+
info "Configuring kernel: cp "$LINUX_SRC_DIR/.config" .config"
53+
cp "$LINUX_SRC_DIR/.config" .config
5154

52-
info "Configuring kernel: cp "$LINUX_SRC_DIR/.config" .config"
53-
cp "$LINUX_SRC_DIR/.config" .config
54-
55-
info "Starting compilation: make -j$(nproc) $@"
56-
make -j$(nproc) $@ 2>&1
57-
58-
popd >/dev/null
55+
info "Starting compilation: make -j$(nproc) $@"
56+
make -j$(nproc) $@ 2>&1
5957

60-
if [[ "$@" != *"clean"* ]]; then
6158
info "Copying build artifacts -> $LINUX_IMAGES_DIR"
6259
mkdir -p "$LINUX_IMAGES_DIR"
6360
cp "$LINUX_SRC_DIR/EDGE_KERNEL/arch/arm64/boot/Image" "$LINUX_IMAGES_DIR/"
6461
cp "$LINUX_SRC_DIR/EDGE_KERNEL/arch/arm64/boot/dts/phytium/e2000q-hanwei-board.dtb" "$LINUX_IMAGES_DIR/"
62+
else
63+
info "Cleaning: make -j$(nproc) clean"
64+
make -j$(nproc) clean 2>&1
65+
info "Removing ${LINUX_IMAGES_DIR}/*"
66+
rm ${LINUX_IMAGES_DIR}/* || true
6567
fi
68+
popd >/dev/null
6669
}
6770

6871
linux() {
@@ -90,6 +93,8 @@ build_arceos() {
9093
info "Copying build artifacts -> $ARCEOS_IMAGES_DIR"
9194
mkdir -p "$ARCEOS_IMAGES_DIR"
9295
cp "$ARCEOS_SRC_DIR/examples/helloworld-myplat/helloworld-myplat_aarch64-dyn.bin" "$ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin"
96+
else
97+
rm -rf $ARCEOS_IMAGES_DIR/arceos-aarch64-dyn-smp1.bin || true
9398
fi
9499
}
95100

0 commit comments

Comments
 (0)