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 [email protected]

Reply via email to