Document the m4 prebuilts

Test: view in gitiles
Change-Id: I2defdb433313fb6744b09685d289e16d094cffdc
This commit is contained in:
Dan Willemsen 2020-01-14 10:56:53 -08:00
parent 997661002a
commit 2bfffb9f48
1 changed files with 15 additions and 0 deletions

View File

@ -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