In `Makefile`, `foobar.tab.c` is made from the following rules: ``` foobar.tab.h: foobar.y bison -o foobar.tab.c -d foobar.y ---- Rule X foobar.tab.c: foobar.y foobar.tab.h bison -o $@ foobar.y --- Rule Y ``` Normally, `Rule X` is used. In parallel makes, if `foobar.tab.c` is considered while updating `foobar.tab.h` by `Rule X`, `Rule Y` is used. So, if we compare build directories, there might be a difference in that `foobar.tab.c` may or may not contain `#include "foobar.tab.h"`.
To avoid the above situation, this patch introduces [Grouped Targets](https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html#ind...) which is new in GNU Make 4.3.
The previous rules still apply to prevent build failures on older systems, such as Ubuntu 20.04 LTS.