File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 159159
160160CONFIG_HASH=$( cat " ${CONFIG_FILES[@]} " | sha256sum | awk ' {print $1}' )
161161CONFIG_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
163165REGENERATE_CONFIG=1
164166if [[ -f " $CONFIG_SIGNATURE_FILE " ]]; then
@@ -195,9 +197,33 @@ else
195197 echo " -----------------------------------------------"
196198fi
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
203229KERNEL_PATH=build/out/$MODEL /Image
You can’t perform that action at this time.
0 commit comments