Merge "Document the m4 prebuilts"

am: 474de20a36

Change-Id: If16ce1087669b3768316489ff2d6dab3c5acd8ff
This commit is contained in:
Dan Willemsen
2020-01-15 11:41:07 -08:00
committed by android-build-merger

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