no single line about creating anything called bin/vc
My point: neither does that example Makefile. Unless you count the generic recipe. It could get created from some obscure recipe, and only in some specific situations. I wanted to show a typical pattern to look for.
I believed it was an external program that he wanted to put in a local bin/ folder checking for its existence.
That makes absolutely no sense. I've never seen a Makefile that does that, and I've looked at thousands of them, both open source and cobbled together by scientists. If you look at environments where there are alternate sets of tools one might have to choose at build time, they are almost always controlled via environment variables; usually via
PATH et al.
it's really a mess, in fact, there are also a lot of problems at detecting the endianness and the data size of types
Did it ever compile on any system, to your knowledge? That would have been my first step, rather than making outrageous guesses about it being a Linux issue.
(By "outrageous", I mean as in provocative; with no logical connection to observations. There is probably a better word for it, but me fail English.)
unless vc is actually used
I do use a roughly similar pattern when building a project requires additional compile-time tools, although I tend to use bash and/or awk for those. In my case, I do use a variable to name it, rather than hardcode it, because the variable is easier to track in the Makefile.
The important questions are
- Is vc or bin/vc used in the recipes?
- Are there other makefiles (often named *.mk) included or executed in a subdirectory, that could generate vc or bin/vc ?
Sub-makefiles are usually executed using
$(MAKE) -C directory -f filename , and makefile fragments included using the
include directive.
Some projects do require a specific command, for example
make -f linux.mk tools, to generate build-time tool symlinks and/or scripts, prior to a proper build.