Dear all,
I am trying to install BLAT. As specified in the README file that accompanies the package I created the folder ~/bin/$MACHTYPE.
My MACHTYPE variable is
x86_64-pc-linux-gnu
which matches with the directory blatSrc/lib/x86_64 contained in BLAT. I added ~/bin/x86_64-pc-linux-gnu to the PATH. The BLAT directory (blatSrc) is in /usr/local/lib/ but when i ran the make
command i got:
/usr/local/lib/blatSrc $ sudo make
cd lib && make
make[1]: Entering directory '/usr/local/lib/blatSrc/lib'
make[1]: '/jkweb.a' is up to date.
make[1]: Leaving directory '/usr/local/lib/blatSrc/lib'
cd jkOwnLib && make
make[1]: Entering directory '/usr/local/lib/blatSrc/jkOwnLib'
make[1]: '../lib//jkOwnLib.a' is up to date.
make[1]: Leaving directory '/usr/local/lib/blatSrc/jkOwnLib'
cd blat && make
make[1]: Entering directory '/usr/local/lib/blatSrc/blat'
make[1]: *** No rule to make target '../lib//jkweb.a', needed by 'blat'. Stop.
make[1]: Leaving directory '/usr/local/lib/blatSrc/blat'
makefile:2: recipe for target 'all' failed
make: *** [all] Error 2
I found that MACHTYPE should not have dashes so I changed the folder to ~/bin/x86_64 (again in the PATH) and I ran:
MACHTYPE=x86_64
export $MACHTYPE
but I got the following:
/usr/local/lib/blatSrc $ sudo make
cd lib && make
make[1]: Entering directory '/usr/local/lib/blatSrc/lib'
make[1]: '/jkweb.a' is up to date.
make[1]: Leaving directory '/usr/local/lib/blatSrc/lib'
cd jkOwnLib && make
make[1]: Entering directory '/usr/local/lib/blatSrc/jkOwnLib'
make[1]: '../lib//jkOwnLib.a' is up to date.
make[1]: Leaving directory '/usr/local/lib/blatSrc/jkOwnLib'
cd blat && make
make[1]: Entering directory '/usr/local/lib/blatSrc/blat'
make[1]: *** No rule to make target '../lib//jkweb.a', needed by 'blat'. Stop.
make[1]: Leaving directory '/usr/local/lib/blatSrc/blat'
makefile:2: recipe for target 'all' failed
make: *** [all] Error 2
Same thing if i do export MACTYPE
. I also tried with make MACHTYPE=$MACHTYPE
as reported, but same error.
Could you tell me what I am getting wrong?
Thank you
Does BLAT
make
call for asudo
? It is very uncommon for software to needsudo
tomake
anything.I use
sudo
because of the privileged location /usr/... when building without privileges I sometimes got problems with writing permissions. anyhow even withmake
only I got the same error.You should never sudo make. If you have exported variables, they are not passed on through make because a new shell is opened for make targets. If you need to pass on variables through sudo, which might be the case for building and installing cpan modules globally, e.g. those that link against the kent-source tree containing jkweb.a, you can and have to do it like so:
but this is only for commands where you can't separate the build from the install process.
If I don't sudo it, it won't even start; I would simply get the error:
gcc is launched only with sudo
Did you get it running in the meantime? The reason for the error is that you ran make via sudo the first time you invoked it and all paths are now owned by 'root'.
This belongs in a comment, not as an answer. I'll move it to a comment now, but please be more cautious in the future and use the
Add Comment
orAdd Reply
(which you've used above) facilities.