Use a dependency file to replace the list file.
instead of creating the list file whenever loading the Android.mk Change-Id: I78e4820754399dff3993a863eede8b75da9f6d29
This commit is contained in:
@@ -50,18 +50,19 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
|
||||
|
||||
inc := $(call intermediates-dir-for,PACKAGING,updater_extensions)/register.inc
|
||||
|
||||
# During the first pass of reading the makefiles, we dump the list of
|
||||
# extension libs to a temp file, then copy that to the ".list" file if
|
||||
# it is different than the existing .list (if any). The register.inc
|
||||
# file then uses the .list as a prerequisite, so it is only rebuilt
|
||||
# (and updater.o recompiled) when the list of extension libs changes.
|
||||
|
||||
junk := $(shell mkdir -p $(dir $(inc));\
|
||||
echo $(TARGET_RECOVERY_UPDATER_LIBS) > $(inc).temp;\
|
||||
diff -q $(inc).temp $(inc).list 2>/dev/null || cp -f $(inc).temp $(inc).list)
|
||||
# Encode the value of TARGET_RECOVERY_UPDATER_LIBS into the filename of the dependency.
|
||||
# So if TARGET_RECOVERY_UPDATER_LIBS is changed, a new dependency file will be generated.
|
||||
# Note that we have to remove any existing depency files before creating new one,
|
||||
# so no obsolete dependecy file gets used if you switch back to an old value.
|
||||
inc_dep_file := $(inc).dep.$(subst $(space),-,$(sort $(TARGET_RECOVERY_UPDATER_LIBS)))
|
||||
$(inc_dep_file): stem := $(inc).dep
|
||||
$(inc_dep_file) :
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) rm -f $(stem).*
|
||||
$(hide) touch $@
|
||||
|
||||
$(inc) : libs := $(TARGET_RECOVERY_UPDATER_LIBS)
|
||||
$(inc) : $(inc).list
|
||||
$(inc) : $(inc_dep_file)
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) echo "" > $@
|
||||
$(hide) $(foreach lib,$(libs),echo "extern void Register_$(lib)(void);" >> $@;)
|
||||
@@ -72,6 +73,9 @@ $(inc) : $(inc).list
|
||||
$(call intermediates-dir-for,EXECUTABLES,updater)/updater.o : $(inc)
|
||||
LOCAL_C_INCLUDES += $(dir $(inc))
|
||||
|
||||
inc :=
|
||||
inc_dep_file :=
|
||||
|
||||
LOCAL_MODULE := updater
|
||||
|
||||
LOCAL_FORCE_STATIC_EXECUTABLE := true
|
||||
|
||||
Reference in New Issue
Block a user