I suggest an additional Makefile rule for incremental make in shadow directories

18 views
Skip to first unread message

Tony Mechelynck

unread,
Jun 10, 2019, 4:30:39 PM6/10/19
to Bram Moolenaar, vim_dev
Whenever a new source file gets added, all my builds suddenly fail (I
don't use -j but I build different featuresets in parallel, each in
its own shadow directory). They fail of course with the message "No
rule to make" for the new file. (It happeneed recently for sound.c.)
The solution isn't hard, but it is a hassle; just link it from the
src/ directory one level higher.

It could be done automatically (at least on Unix-like systems),
therefore I suggest adding to the src/Makefile the following rule,
which IIUC would only be used if a needed file is missing in the
current (shadow) directory, but exists one level higher, in src/
(please check my reasoning, I rarely write Makefiles):

./% : ../%
ln -sv ../%

N.B. Rather than copy the src/Makefile into the shadow directory then
edit it, I soft-link it, and my configure arguments are set by
environment variables (set by sourcing an appropriate script) in one
shell per shadow directory. IMHO this procedure is more robust, and in
particular it "does the right thing" even if src/Makefile or
src/auto/configure have changed since the last compile. This way if my
new rule is accepted, make will pick it without my having to think
about it. :-)


Best regards,
Tony.
Reply all
Reply to author
Forward
0 new messages