GCC defines the sub-makefile as Make-lang.in, and it contains:
tiny_OBJS = \
tiny/tiny1.o \
$(END)
When I add some component, I changed it to:
tiny_OBJS = \
tiny/tiny1.o \
tiny/tiny-token.o \
tiny/tiny-lexer.o \
$(END)
So all the rest is untouched, and I want make an incremental builds on those 2 new files and don't re-compiler anything else. The problem is that if I don't re-run the configure, it gives me some un-declaration problems, seems the new file had not been recognized.
I'm not sure whether I did something wrong or the autoconf is designed to re-run configure at this situation. If it is, can I have some hooks to avoid it? as re-compiler everything takes too long.
If you change a *.in file, you have to re-run something because the *.in file has to be converted into the real makefile.
First, any typical autotools makefile (such as generated by automake) has a rule in it for doing this automatically so you don't have to do anything by hand: if you run
makeand it sees that your.infile has been changed, it will automatically update it for you in the most efficient way possible then restart themake.If your makefiles don't have such a rule you'll have to do it by hand. You certainly do not need to re-run autoconf to generate a new
configure, and you don't even need to runconfigure. You can runconfig.statuswhich just rebuilds the output files using the existing configuration. See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/config_002estatus-Invocation.html