]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add necessary Makefile.inc1 infrastructure for building on non-FreeBSD
authorarichardson <arichardson@FreeBSD.org>
Tue, 25 Aug 2020 13:29:57 +0000 (13:29 +0000)
committerarichardson <arichardson@FreeBSD.org>
Tue, 25 Aug 2020 13:29:57 +0000 (13:29 +0000)
commit432dc052fd187f8a439f9ab6c23d068d609e3e41
tree2edbf09bb6dcd61b441da105db6a371f2efc6071
parent3617a4059b2e85bf5f4ad116f71e3db237279e69
Add necessary Makefile.inc1 infrastructure for building on non-FreeBSD

The most awkward bit in this patch is the bootstrapping of m4:
We can't simply use the host version of m4 since that is not compatible
with the flags passed by lex (at least on macOS, possibly also on Linux).
Therefore we need to bootstrap m4, but lex needs m4 to build and m4 also
depends on lex (which needs m4 to generate any files). To work around this
cyclic dependency we can build a bootstrap version of m4 (with pre-generated
files) then use that to build the real m4.

This patch also changes the xz/unxz/dd tools to always use the host version
since the version in the source tree cannot easily be bootstrapped on macOS
or Linux.

Reviewed By: brooks, imp (earlier version)
Differential Revision: https://reviews.freebsd.org/D25992
Makefile.inc1
sys/conf/kern.post.mk
tools/build/Makefile
tools/build/bootstrap-m4/Makefile [new file with mode: 0644]
tools/build/bootstrap-m4/inittokenizer.c [new file with mode: 0644]
tools/build/cross-build/fake_chflags/Makefile [new file with mode: 0644]
tools/build/cross-build/fake_chflags/chflags [new file with mode: 0644]
usr.bin/m4/Makefile