No, is not. The original target doesn't work because the `verstr.h` is only rebuilt IFF `../VERSION` version changes. And this is not true any more, we need to change it if the output of `git status` changes. For that, we need to unconditionally execute the command, and I had the feeling the only way to do that was by using a dummy variable assignment, but is not, you can call the shell function at the toplevel and it will be executed at parse time, so I updated that to remove the dummy variable (I still have the feeling that there was some problem with not doing it through a dummy variable but I can't find any sources to confirm that now).

Another option would be to make the `verstr.h` file depends on **all** the sources, but then there will be some situations where `verstr.h` will not get rebuilt, like if you changed a test file, or a sample, or the man page. OK, in those cases the binary will be exactly the same between both version, but having a wrong (outdated) hash in the version string will be a least misleading.

Really, the safest and easiest bet is just to unconditionally generate the `verstr.h` file (well, unconditionally test if it should be regenerated so files depending on `verstr.h` don't get rebuilt even when its contents is the same).