Merge "Document the m4 prebuilts" am: 474de20a36 am: 3abf2ee080 am: 08a76dd7c0

Change-Id: Ib725b317b169c7a4ef547b412c618e16088d15ad
This commit is contained in:
Automerger Merge Worker 2020-01-15 20:10:51 +00:00
commit c5ed67077f

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