[GenABEL-dev] m4_ax_prog_cxx_mpi.m4
L.C. Karssen
lennart at karssen.org
Thu Oct 30 20:46:21 CET 2014
Hi Alvaro,
On 30-10-14 15:31, Frank, Alvaro Jesus wrote:
> I am really not an autoconf user, but I am failing to do the make distcheck. I do have openblas.
> I am struggling as I am not the sysadmin. The end user IS the sysadmin.
Not always. From my experience with ProbABEL I know many aren't. That's
another reason to be happy with Autotools, it allows people not only to
specify where to find libraries, but also where to install:
./configure --prefix=$HOME/myprograms/AOnoMM/
or, with even more detail:
./configure --prefix=/my/install/path --sysconfdir=/my/install/path/ \
--datarootdir=/my/install/path --docdir=/my/install/path/doc
>
> I am having trouble grasping this:
> They will choose the openblas,boost ,gcc,mpi,etc, path right?
The don't have to, but they can, see my other e-mail.
>
> So cant they just checkout the src and compile and obtain the binary normally?
Experienced people can do that too. There shouldn't be much difference.
However, I wouldn't call that 'normally'. I'd say that this is the way
people install software on their Linux system, most commonly used first:
1) via distro package manager from default repositories
2) via distro package manager from alternative repositories
3) by downloading the released source.tar.gz file and running
./configure && make && sudo make install (actually, this is what is
listed in the INSTALL file)
4) using 3, but with their own ./configure options
5) checkout from a VCS (either the latest/trunk or a tagged release)
>
> My error:
>
> make distcheck
> { test ! -d "omicabelnomm-0.1.0" || { find "omicabelnomm-0.1.0" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr "omicabelnomm-0.1.0"; }; }
> test -d "omicabelnomm-0.1.0" || mkdir "omicabelnomm-0.1.0"
> test -n "" \
> || find "omicabelnomm-0.1.0" -type d ! -perm -755 \
> -exec chmod u+rwx,go+rx {} \; -o \
> ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
> ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
> ! -type d ! -perm -444 -exec /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/install-sh -c -m a+r {} {} \; \
> || chmod -R a+r "omicabelnomm-0.1.0"
> tardir=omicabelnomm-0.1.0 && /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/missing --run tar chof - "$tardir" | GZIP=--best gzip -c >omicabelnomm-0.1.0.tar.gz
> { test ! -d "omicabelnomm-0.1.0" || { find "omicabelnomm-0.1.0" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr "omicabelnomm-0.1.0"; }; }
> case 'omicabelnomm-0.1.0.tar.gz' in \
> *.tar.gz*) \
> GZIP=--best gzip -dc omicabelnomm-0.1.0.tar.gz | /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/missing --run tar xf - ;;\
> *.tar.bz2*) \
> bzip2 -dc omicabelnomm-0.1.0.tar.bz2 | /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/missing --run tar xf - ;;\
> *.tar.lzma*) \
> lzma -dc omicabelnomm-0.1.0.tar.lzma | /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/missing --run tar xf - ;;\
> *.tar.xz*) \
> xz -dc omicabelnomm-0.1.0.tar.xz | /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/missing --run tar xf - ;;\
> *.tar.Z*) \
> uncompress -c omicabelnomm-0.1.0.tar.Z | /bin/sh /home/alvaro.frank/omicabelnomm/OmicABELnoMM/missing --run tar xf - ;;\
> *.shar.gz*) \
> GZIP=--best gzip -dc omicabelnomm-0.1.0.shar.gz | unshar ;;\
> *.zip*) \
> unzip omicabelnomm-0.1.0.zip ;;\
> esac
> chmod -R a-w omicabelnomm-0.1.0; chmod a+w omicabelnomm-0.1.0
> mkdir omicabelnomm-0.1.0/_build
> mkdir omicabelnomm-0.1.0/_inst
> chmod a-w omicabelnomm-0.1.0
> test -d omicabelnomm-0.1.0/_build || exit 0; \
> dc_install_base=`CDPATH="${ZSH_VERSION+.}:" && cd omicabelnomm-0.1.0/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
> && dc_destdir="${TMPDIR-/tmp}/am-dc-$$/" \
> && am__cwd=`pwd` \
> && CDPATH="${ZSH_VERSION+.}:" && cd omicabelnomm-0.1.0/_build \
> && ../configure --srcdir=.. --prefix="$dc_install_base" \
> \
> && make \
> && make dvi \
> && make check \
> && make install \
> && make installcheck \
> && make uninstall \
> && make distuninstallcheck_dir="$dc_install_base" \
> distuninstallcheck \
> && chmod -R a-w "$dc_install_base" \
> && ({ \
> (cd ../.. && umask 077 && mkdir "$dc_destdir") \
> && make DESTDIR="$dc_destdir" install \
> && make DESTDIR="$dc_destdir" uninstall \
> && make DESTDIR="$dc_destdir" \
> distuninstallcheck_dir="$dc_destdir" distuninstallcheck; \
> } || { rm -rf "$dc_destdir"; exit 1; }) \
> && rm -rf "$dc_destdir" \
> && make dist \
> && rm -rf omicabelnomm-0.1.0.tar.gz \
> && make distcleancheck \
> && cd "$am__cwd" \
> || exit 1
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking whether to disable maintainer-specific portions of Makefiles... yes
> checking for mpic++... mpic++
> checking whether the C++ compiler works... yes
> checking for C++ compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C++ compiler... yes
> checking whether mpic++ accepts -g... yes
> checking for style of include used by make... GNU
> checking dependency style of mpic++... gcc3
> checking dependency style of mpic++... (cached) gcc3
> checking for gcc... gcc
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking dependency style of gcc... gcc3
> checking dependency style of gcc... (cached) gcc3
> checking for gcc option to support OpenMP... -fopenmp
> checking for library containing pthread_mutex_init... none required
> checking for library containing __iso_c_binding_c_f_pointer_l4... -lgfortran
> checking for library containing cblas_sgemm... no
> configure: error: OpenBLAS library NOT found
> make: *** [distcheck] Error 1
>
I assume you have your own BLAS compiled somewhere. Now the thing is
that you somehow have to influence how './configure' is run by 'make
distcheck'. This can be done as follows:
DISTCHECK_CONFIGURE_FLAGS="--disable-latex-doc --disable-silent-rules"
make -j4 distcheck
So, once we've set up a proper way to add the location of a BLAS library
(see my previous e-mail: via the Autoconf Archive macros), it should be
a matter of specifying the right configure option.
For now you I think (but didn't test) you should specify all CPPFLAGS,
something like this:
DISTCHECK_CONFIGURE_FLAGS="CPPFLAGS='-O3 -std=c++11 -march=native
-mfpmath=sse -flto -funroll-loops -I/path/to/your/BLAS'" make -j4 distcheck
Best,
Lennart.
> ________________________________________
> From: L.C. Karssen [lennart at karssen.org]
> Sent: Thursday, October 30, 2014 3:23 PM
> To: Frank, Alvaro Jesus; genabel-devel at lists.r-forge.r-project.org
> Subject: Re: m4_ax_prog_cxx_mpi.m4
>
> Hi Alvaro,
>
> On 30-10-14 15:16, Frank, Alvaro Jesus wrote:
>> Hi Lennart,
>>
>> Can we include m4_ax_prog_cxx_mpi.m4 on the root directory with our svn?
>
> We can. I'm not too much a fan of including code that is maintained
> elsewhere and packaged properly by Linux distributions, but if you think
> it might otherwise deter people from contributing, be my guest.
>
> But keep in mind that a user shouldn't need to have that file (because
> autoreconf will include it in the ./configure script, which is packaged
> in the tar.gz file). Only a developer/someone who checks out from SVN/a
> user who runs autoreconf after unpacking the source tar.gz file needs
> that file.
>
> As to the location: what do you mean with root directory? If you mean
> the root of the OAnoMM package (pkg/OmicABELnoMM/) than it's fine with me.
>
>
> Lennart.
>
>>
>> Best,
>>
>> -Alvaro
>
> --
> *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
> L.C. Karssen
> Utrecht
> The Netherlands
>
> lennart at karssen.org
> http://blog.karssen.org
> GPG key ID: A88F554A
> -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>
--
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
L.C. Karssen
Utrecht
The Netherlands
lennart at karssen.org
http://blog.karssen.org
GPG key ID: A88F554A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 213 bytes
Desc: OpenPGP digital signature
URL: <http://lists.r-forge.r-project.org/pipermail/genabel-devel/attachments/20141030/c304e7f7/attachment.sig>
More information about the genabel-devel
mailing list