On 30/08/2019 20:51, Sam Moors wrote:
Dear Loris,
ConfigureMake does indeed not have [files_to_copy].
With this easyblock you can customize [install_cmd], which by default is
set to 'make install':
install_cmd = 'cd swig && cp BloomFilter.pm BloomFilter.so
%(installdir)s/lib/'
Does does work for you?
Sidenote: see the output of "eb --easyblock ConfigureMake -a" for the
full list of supported easyconfig parameters for the ConfigureMake
easyblock.
EasyBuild 4.x will print a warning if you're trying to use an easyconfig
parameter that is not supported for the easyblock you are using.
K.
Cheers,
Sam
On Thu, Aug 29, 2019 at 5:04 PM Loris Bennett
<[email protected] <mailto:[email protected]>> wrote:
Dear Sam,
I'm using ConfigureMake, but the makefile provided just sets up test
stuff and does not produce the Perl module and library.
Cheers,
Loris
Sam Moors <[email protected] <mailto:[email protected]>> writes:
> Dear Loris,
>
> files_to_copy is not defined for all easyblocks. Which easyblock
are you using?
>
> Cheers,
> Sam
>
> On Thu, Aug 29, 2019 at 4:10 PM Loris Bennett
<[email protected] <mailto:[email protected]>> wrote:
>
> Dear Sam,
>
> Thanks for the suggestion, however I still don't get a 'lib'
directory
> in the install dir. The log unfortunately doesn't give any
indication
> that anything went wrong with copying the files. It's just the
sanity
> check which fails.
>
> Could files_to_copy be being ignored because the Makefile should be
> handling that?
>
> Cheers,
>
> Loris
>
> Sam Moors <[email protected] <mailto:[email protected]>> writes:
>
> > 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
<[email protected] <mailto:[email protected]>> 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
[email protected] <mailto:[email protected]>
> >
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin Email
[email protected] <mailto:[email protected]>
>
--
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin Email
[email protected] <mailto:[email protected]>