Dear Loris,

Try this?

files_to_copy = [(['swig/BloomFilter.pm', 'swig/BloomFilter.so'], 'lib')]

Cheers,
Sam

On Thu, Aug 29, 2019 at 3:36 PM Loris Bennett <loris.benn...@fu-berlin.de>
wrote:

> Hi,
>
> I'm looking at the following project:
>
>   https://github.com/bcgsc/btl_bloomfilter
>
> which comprises a shared library and a corresponding Perl XS module.
>
> There is a Makefile, but it doesn't create the shared library or the
> Perl module.  Instead here
>
>   https://github.com/bcgsc/btl_bloomfilter/tree/master/swig
>
> the following instructions are to be run in the 'swig' subdirectory:
>
>   preinst-swig -Wall -c++ -perl5 BloomFilter.i
>   g++ -std=c++11 -c BloomFilter_wrap.cxx
> -I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -fPIC
>   g++ -std=c++11 -Wall -shared BloomFilter_wrap.o -o BloomFilter.so
>
> In my easyconfig I have
>
>   build_cmd = "cd swig;  swig -Wall -c++ -perl5 BloomFilter.i; "
>   build_cmd += "g++ -std=c++11 -c BloomFilter_wrap.cxx
> -I$EBROOTPERL/lib/perl5/$EBVERSIONPERL/x86_64-linux-thread-multi/CORE/-fPIC;
> "
>   build_cmd += "g++ -std=c++11 -Wall -shared BloomFilter_wrap.o -o
> BloomFilter.so"
>   build_cmd += "cd ..; make"
>
>   files_to_copy = [('swig/BloomFilter.pm', 'swig/BloomFilter.so'), 'lib']
>
>   sanity_check_paths = {
>       'files': ['lib/BloomFilter.pm'],
>       'dirs': [],
>   }
>
> but this fails with
>
>   ERROR: Build of
> /trinity/home/build/easyconfigs/BTL_BloomFilter-1.2.1-foss-2018b.eb failed
> (err: "build failed (first 300 chars): Sanity check failed: no file found
> at 'lib/BloomFilter.pm' in
> /trinity/shared/easybuild/software/BTL_BloomFilter/1.2.1-foss-2018b")
>
> I think I don't understand how files_to_copy works.  How should I create
> the target directory (buildopts?) and how should I copy the files (I am
> not really sure where the .so file should go relative to the .pm file)?
>
> Cheers,
>
> Loris
>
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin         Email loris.benn...@fu-berlin.de
>

Reply via email to