Generate .d files for generated .c files
so ninja can regenerate these files when included header files
are updated.
Bug: 27954979
Change-Id: I7be71330a84be63a0717df4557c089a7b9dfc27c
diff --git a/Android.mk b/Android.mk
index dd2db53..3351048 100644
--- a/Android.mk
+++ b/Android.mk
@@ -53,6 +53,7 @@
$(my_gen): PRIVATE_CUSTOM_TOOL = $< $(PRIVATE_CC) $@
$(my_gen): $(LOCAL_PATH)/gen_syscalls.sh
$(transform-generated-source)
+$(call include-depfile,$(my_gen).d,$(my_gen))
LOCAL_GENERATED_SOURCES_$(TARGET_ARCH) += $(my_gen)
my_gen := $(generated_sources_dir)/$(TARGET_ARCH)/libconstants.c
@@ -60,6 +61,7 @@
$(my_gen): PRIVATE_CUSTOM_TOOL = $< $(PRIVATE_CC) $@
$(my_gen): $(LOCAL_PATH)/gen_constants.sh
$(transform-generated-source)
+$(call include-depfile,$(my_gen).d,$(my_gen))
LOCAL_GENERATED_SOURCES_$(TARGET_ARCH) += $(my_gen)
# For processes running in 32-bit compat mode on 64-bit processors.
diff --git a/gen_constants.sh b/gen_constants.sh
index 9f217ee..2ec3971 100755
--- a/gen_constants.sh
+++ b/gen_constants.sh
@@ -33,6 +33,13 @@
#include <sys/stat.h>
#include <sys/types.h>'
+# Generate a dependency file which helps the build tool to see when it
+# should regenerate ${OUTFILE}.
+echo "${INCLUDES}" | ${CC} - -E -M -MF ${OUTFILE}.d.tmp
+# Correct the output filename.
+(echo "${OUTFILE}: \\" ; sed 's/^-\.o://' ${OUTFILE}.d.tmp) > ${OUTFILE}.d
+rm ${OUTFILE}.d.tmp
+
# sed expression which extracts constants and converts them from:
# #define AT_FDWCD foo
# to:
diff --git a/gen_syscalls.sh b/gen_syscalls.sh
index 579f8bc..51b5838 100755
--- a/gen_syscalls.sh
+++ b/gen_syscalls.sh
@@ -24,6 +24,13 @@
fi
OUTFILE="$1"
+# Generate a dependency file which helps the build tool to see when it
+# should regenerate ${OUTFILE}.
+echo '#include <asm/unistd.h>' | ${CC} - -E -M -MF ${OUTFILE}.d.tmp
+# Correct the output filename.
+(echo "${OUTFILE}: \\" ; sed 's/^-\.o://' ${OUTFILE}.d.tmp) > ${OUTFILE}.d
+rm ${OUTFILE}.d.tmp
+
# sed expression which extracts system calls that are
# defined via asm/unistd.h. It converts them from:
# #define __NR_read foo