Sometimes 'make config' or 'make reconfig' don't work well.
Please consider the following situation:
1. Do 'hg clone' to get the latest source codes.
2. Do 'make config && make'.
3. A few days later, do 'hg pull -u' to get the updated codes
which include updated src/auto/configure. (To simulate this, just do
'touch src/auto/configure'.)
4. Do 'make config' again. Then the following error will be shown:
configure: loading cache auto/config.cache
configure: error: `CFLAGS' has changed since the previous run:
configure: former value: `-g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1'
configure: current value: `-g -O2 -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1'
configure: error: `LDFLAGS' has changed since the previous run:
configure: former value: `-L. -L/usr/local/lib -Wl,--as-needed'
configure: current value: `-L. -L. -L/usr/local/lib -Wl,--as-needed -Wl,--as-needed'
configure: error: in `/cygdrive/c/work/vim/src':
configure: error: changes in the environment can compromise the build
configure: error: run `make distclean' and/or `rm auto/config.cache' and start over
Makefile:1657: recipe for target `config' failed
make: *** [config] Error 1
When I run 'make distclean' as the message says, I get the same error again.
This is caused by dependency of 'auto/config.mk'. The 'Makefile' includes
'auto/config.mk' which depends on 'auto/configure'. So if 'auto/configure'
is updated, the 'make' command tries to update 'auto/config.mk' before doing
'make distclean' itself.
If I run 'rm auto/config.cache', 'make config' succeeds at that time.
But if src/auto/configure is updated again, the same error will be shown again.
Additionally, 'CFLAGS' and 'LDFLAGS' become longer and longer when I run
'rm auto/config.cache && make config' again and again.
I made a patch to fix this strange behavior.
'rm auto/config.cache' will be done automatically if needed.
'CFLAGS' and 'LDFLAGS' are also fixed properly.
Best regards,
Ken Takata
> Sometimes 'make config' or 'make reconfig' don't work well.
I would get this annoyance about CC, configure complaining that it had been changed to 'gcc'. Thank you!