]> git.proxmox.com Git - mirror_frr.git/commit - configure.ac
build: pre-generate built headers in configure
authorDavid Lamparter <equinox@opensourcerouting.org>
Fri, 4 Aug 2017 07:59:00 +0000 (09:59 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Fri, 4 Aug 2017 09:09:50 +0000 (11:09 +0200)
commit306ed6816a685aabe3e0d0e93b83f3c8305cdc0f
tree64dcda827cb221d8dac1d3d2257d919e8a8464d6
parentcde8cd9d6583a2e34a5d78d1358f9c2393317dbd
build: pre-generate built headers in configure

zebra.h includes route_types.h, which means almost all of our Makefile
targets have a dependency on route_types.h.  While BUILT_SOURCES ensures
that this dependency is fulfilled on a "make all", this doesn't work
when building specific targets (e.g. "make lib/libfrr.la").

There seems to be no good way to add a dependency on everything, so the
best fix for this is to just generate the file during ./configure.

(The Makefile rule is still there, so if route_types.txt is changed,
route_types.h will be rebuilt.)

This only affects "initial" builds from a clean directory and/or builds
with --disable-dependency-tracking;  other than that gcc will output
Makefile dependencies during compilation so that route_types.h will
become a dependency for all output files.

gitversion.h has the same problem on a smaller scope.

command_lex.h & command_parse.h *don't* have the problem because they're
only used in specific files, and these files have the dependency
explicitly listed in the Makefile.  Hence, they can also be removed from
BUILT_SOURCES.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
configure.ac