Interesting, the LibraryStyleGuide [1] suggests a plain `=` and the AppStyleGuide [2] suggests `:=`. (The difference of course is that `=` does delayed evaluation meaning the command is run once for every time the variable is needed, and `:=` does immediate evaluation meaning the command is run only once when the variable is set.
Naively I would have always reached for `:=`, but I think you are correct that `=` would be slightly cheaper in that the variable is not used every time it is processed by make. [1]: http://wiki.debian.org/Python/LibraryStyleGuide [2]: http://wiki.debian.org/Python/AppStyleGuide Two comments: > > PYVERS := $(shell pyversions -r) >> PY3VERS := $(shell py3versions -r) >> > > Using simple "=" instead of ":=" should be cheaper. >