Closed ltalirz closed 5 years ago
Indeed it is an open issue. It is also marked among the issues in the devel repo. https://github.com/yambo-code/yambo-devel/issues/33 (not accessible to everyone)
As an alternative if you have the source code say in "PATH_SRC" and you want to have it compiled in "PATH_PREFIX":
cd PATH_PREFIX
and from there run
PATH_SRC/configure "+options"
Here "+options" means that you can add the usual options.
Everything will be "installed" inside the PATH_PREFIX folder.cp -r bin PATH_PREFIX/
I also suggest to run the configure with the option
--with-extlibs-path="PATH_YLIBS"
where "PATH_YLIBS" can be any destination you like.
yambo will install all the auto-compiled libraries in "PATH_YLIBS"
After cleaning the source, the libraries will remain in "PATH_YLIBS" and re-running the configure with the same extlibs-path, the existing libs will be detected
thanks @sangallidavide , I'll give this a try
@sangallidavide I've followed your instructions as suggested and I still run into some issues - e.g.
/tmp $ mkdir yambo; cd yambo
/tmp/yambo $ ./configure --with-extlibs-path=/tmp/yambo
/tmp/yambo $ make yambo
...
chmod u+x /tmp/yambo2/gfortran/mpifort/lib/*xc*.a
chmod: cannot access '/tmp/yambo2/gfortran/mpifort/lib/*xc*.a': No such file or directory
Makefile:51: recipe for target '/tmp/yambo2/gfortran/mpifort/lib/libxc.a' failed
...
I then had to copy the libxc2.2.3 folder over (cp -r ~/codes/yambo-4.3.2/lib/libxc/libxc-2.2.3/ lib/libxc/
), make yambo
, then copy the built library at the right place (cp lib/libxc/libxc-2.2.3/src/.libs/libxc.a gfortran/mpifort/lib/
) and make yambo
again.
Most importantly, however, this produces lots of files in the "prefix" directory that I don't think would usually go there (a usual "prefix" being, e.g., /usr/local
):
/tmp/yambo$ ls
bin config.status include Makefile ypp
config driver interfaces sbin
config.log gfortran lib src
So, in order not to overcomplicate things, I think it's easier for the moment if I build yambo in the source directory and then copy only the files that are needed for running yambo to the prefix directory. Could you please let me know which files I would need to copy besides the binaries - if any (e.g. dynamically loaded libraries, ...)?
You write
/tmp/yambo $ ./configure --with-extlibs-path=/tmp/yambo
but I do not see the configure inside /tmp/yambo
.
Also from the error message it seems you run something like
/tmp/yambo $ ~/codes/yambo-4.3.2/configure --with-extlibs-path=/tmp/yambo2
and that the configure does not have permission to create the folder /tmp/yambo2
Is it so ?
Otherwise I do not understand where the 2
is coming from.
I tried to reproduce the error and I was not able.
Can you attach your config/report
file ?
Also the --with-extlibs-path is meant to be different from the path where you install yambo.
I'd use something like "/tmp/yambo-libs"
Otherwise the default is to have the libs inside /tmp/yambo
In any case, yes, it does not put just what usually goes under prefix, but much more. Basically everything besides the original source. Instead, you just need to copy the binaries. Nothing else.
D.
You write /tmp/yambo $ ./configure --with-extlibs-path=/tmp/yambo but I do not see the configure inside /tmp/yambo.
Sorry, I mixed some (incorrectly) hand-written things together with actual error messages from different tries, this also explains the other inconsistencies you mention.
Also the --with-extlibs-path is meant to be different from the path where you install yambo. I'd use something like "/tmp/yambo-libs"
I see, thanks.
In any case, yes, it does not put just what usually goes under prefix, but much more. Basically everything besides the original source. Instead, you just need to copy the binaries. Nothing else.
Ok, cool, this is by far the easiest solution for the time being.
Happy to test make; make install
once it's available
This is using yambo 4.3.2
I'm trying to use the
--prefix
flag of theconfigure
script to configure installation in a different folder than where the object files are built but I'm running into issues:There are actually two issues I encountered:
make
already tries to access/usr/local
(contrary to the usual convention thatmake
will build the executables in the folder where it is situated)make install
command despite./configure --help
actually promises one:So, my questions would be:
make
does not touch any folder in theprefix
?make install
command that copies the relevant files?