I’ve been trying this already several times over the last three months, but always failed to build the latest Valgrind from sources on my Debian box. At last I had success.
The problem appears to be that for some unknown reasons GNU Make (or one of its callees, e.g. the shell?!) acts up on cd $$subdir
which is used in numerous places in the Makefile
s in the source tree. This is taken from the make files, so it will collapse to cd $subdir
before the shell gets to see it. $subdir
is in most cases a variable in a for loop, iterating over subdirectories of the “current” one. Strangely enough all seemed right, the include
subdirectory exists, it contains a Makefile
and so on. I even inserted some additional commands before the cd
in order to get some diagnostic output. The output of pwd
suggested that we were in the right folder, the value of $subdir
was correct and all side conditions seemed in order. But still, it wouldn’t build.
So I used the dirty trick (also archived in the valgrind-users mailing list) to modify the Makefile.in
files to replace all occurrences of cd $$subdir
with cd $(CURDIR)/$$subdir
and suddenly everything worked after running configure
again. Magic … 😉
Here’s the line I used:
find -name 'Makefile.in' -exec \ sed -i 's/cd \$\$subdir/cd \$(CURDIR)\/\$\$subdir/' {} \;
That took care of it for me. So I’m a happy Valgrind 3.5.0 user now, instead of using 3.3.1 as it comes with Debian 5.0.3.
// Oliver
PS: The reason why we replace it in Makefile.in
is that this way running configure
again will not undo our modifications, because those files are used to create the actual Makefile
s.
Pingback: Getting Valgrind to build on Debian 5.0.3 | Debian-News.net - Your one stop for news about Debian
strange, I’ve never had problems compiling it!
you should really use valkyrie too, unfortunately it only works with 3.4 for now, not 3.5.
See the next post “Not Valgrind, CDPATH” – it explains the cause.