Skip to content

Commit 1031482

Browse files
committed
Update build.sh
1 parent 21824d3 commit 1031482

1 file changed

Lines changed: 29 additions & 3 deletions

File tree

build.sh

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ fi
159159

160160
CONFIG_HASH=$(cat "${CONFIG_FILES[@]}" | sha256sum | awk '{print $1}')
161161
CONFIG_SIGNATURE=$(printf "model=%s\nksu=%s\nrecovery=%s\nhash=%s\n" "$MODEL" "${KSU_OPTION:-n}" "${RECOVERY_OPTION:-n}" "$CONFIG_HASH")
162+
BUILD_SIGNATURE_FILE="out/.build.signature"
163+
BUILD_SIGNATURE=$(printf "commit=%s\n%s" "$(git rev-parse HEAD 2>/dev/null)" "$CONFIG_SIGNATURE")
162164

163165
REGENERATE_CONFIG=1
164166
if [[ -f "$CONFIG_SIGNATURE_FILE" ]]; then
@@ -195,9 +197,33 @@ else
195197
echo "-----------------------------------------------"
196198
fi
197199

198-
echo "Building kernel..."
199-
echo "-----------------------------------------------"
200-
make "${MAKE_ARGS[@]}" -j$CORES || abort
200+
REQUIRED_ARTIFACTS=(
201+
out/arch/arm64/boot/Image
202+
out/vmlinux
203+
)
204+
205+
NEED_BUILD=1
206+
if [[ -f "$BUILD_SIGNATURE_FILE" ]]; then
207+
if [[ "$(cat "$BUILD_SIGNATURE_FILE")" == "$BUILD_SIGNATURE" ]]; then
208+
NEED_BUILD=0
209+
for artifact in "${REQUIRED_ARTIFACTS[@]}"; do
210+
if [[ ! -f "$artifact" ]]; then
211+
NEED_BUILD=1
212+
break
213+
fi
214+
done
215+
fi
216+
fi
217+
218+
if [[ $NEED_BUILD -eq 0 ]]; then
219+
echo "Build artifacts up to date; skipping kernel rebuild."
220+
echo "-----------------------------------------------"
221+
else
222+
echo "Building kernel..."
223+
echo "-----------------------------------------------"
224+
make "${MAKE_ARGS[@]}" -j$CORES || abort
225+
echo "$BUILD_SIGNATURE" > "$BUILD_SIGNATURE_FILE"
226+
fi
201227

202228
# Define constant variables
203229
KERNEL_PATH=build/out/$MODEL/Image

0 commit comments

Comments
 (0)