From 2bfffb9f48a78de12faf5da77424c0cecb70d6eb Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Tue, 14 Jan 2020 10:56:53 -0800 Subject: [PATCH] Document the m4 prebuilts Test: view in gitiles Change-Id: I2defdb433313fb6744b09685d289e16d094cffdc --- Changes.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Changes.md b/Changes.md index 04e0161181..70e338cee6 100644 --- a/Changes.md +++ b/Changes.md @@ -1,5 +1,20 @@ # Build System Changes for Android.mk Writers +## `m4` is not available on `$PATH` + +There is a prebuilt of it available in prebuilts/build-tools, and a make +variable `M4` that contains the path. + +Beyond the direct usage, whenever you use bison or flex directly, they call m4 +behind the scene, so you must set the M4 environment variable (and depend upon +it for incremental build correctness): + +``` +$(intermediates)/foo.c: .KATI_IMPLICIT_OUTPUTS := $(intermediates)/foo.h +$(intermediates)/foo.c: $(LOCAL_PATH)/foo.y $(M4) $(BISON) $(BISON_DATA) + M4=$(M4) $(BISON) ... +``` + ## Rules executed within limited environment With `ALLOW_NINJA_ENV=false` (soon to be the default), ninja, and all the