GNAT and LAPACK

2010-01-03 Thread freebsd-ports
Whilst attempting to compile a program I wrote, it suddenly occurred to
me that using anything in the Ada.Numerics package causes the compiler
to emit code that depends on the math/lapack port (the stuff in the GNAT
runtime is basically just a binding to lapack).

This creates a further problem as installing the math/lapack port requires
a Fortran compiler and that means one of the other GCC ports will be compiled
as a dependency...

To clarify this confusing situation: The lang/gnat-gcc44 port needs to
be able to compile one of it's own (sometimes) runtime dependencies.

I'm happy to enable the C++ and gfortran backends in the lang/gnat-gcc44
port but I suspect it'll be necessary to update either math/lapack
or bsd.gcc.mk in order to allow the lang/gnat-gcc44 port to compile
math/lapack. I do regular builds on 7.2 i386/amd64 and 8.0 i386/amd64
with "ada,c,c++,fortran" so I'm confident there won't be any serious
problems with the port itself.

Perhaps somebody with a clue could tell me what the right way to handle
this mess is.

M
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


GNAT and LAPACK

2010-01-07 Thread Gerald Pfeifer
> This creates a further problem as installing the math/lapack port 
> requires a Fortran compiler and that means one of the other GCC ports 
> will be compiled as a dependency...
>
> To clarify this confusing situation: The lang/gnat-gcc44 port needs to 
> be able to compile one of it's own (sometimes) runtime dependencies.
>
> I'm happy to enable the C++ and gfortran backends in the lang/gnat-gcc44
> port but I suspect it'll be necessary to update either math/lapack
> or bsd.gcc.mk in order to allow the lang/gnat-gcc44 port to compile
> math/lapack. I do regular builds on 7.2 i386/amd64 and 8.0 i386/amd64
> with "ada,c,c++,fortran" so I'm confident there won't be any serious
> problems with the port itself.
>
> Perhaps somebody with a clue could tell me what the right way to handle 
> this mess is.

I looked into the situation and think the following should work nicely 
given the constraints of the FreeBSD Ports Collection in handling 
dependencies and creating several packages from one build:

 1. Make gnat-gcc44 dependent on gcc44 itself by means of USE_GCC=4.4.
 2. Have math/lapack as another dependency to gnat-gcc44.
 3. Build the minimum necessary as part of gnat-gcc44.  Do not install
using `make install`, but copy the relevant files to $PREFIX/bin,
$PREFIX/lib,... manually.

That way the Ports Collection as such will use gcc44 and you will add
the GNAT support from gnat-gcc44 (and only that) on top.

Gerald @FreeBSD.org
-- 
Gerald (Jerry) Pfeifer   ger...@pfeifer.com   http://www.pfeifer.com/gerald/
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: GNAT and LAPACK

2010-01-08 Thread freebsd-ports
On 2010-01-08 00:09:57, Gerald Pfeifer wrote:
> 
> I looked into the situation and think the following should work nicely 
> given the constraints of the FreeBSD Ports Collection in handling 
> dependencies and creating several packages from one build:
> 
>  1. Make gnat-gcc44 dependent on gcc44 itself by means of USE_GCC=4.4.
>  2. Have math/lapack as another dependency to gnat-gcc44.
>  3. Build the minimum necessary as part of gnat-gcc44.  Do not install
> using `make install`, but copy the relevant files to $PREFIX/bin,
> $PREFIX/lib,... manually.
> 
> That way the Ports Collection as such will use gcc44 and you will add
> the GNAT support from gnat-gcc44 (and only that) on top.

I agree, this sounds much better. It's not clear to me, however, how to
determine which parts of a given GNAT build are specific to GNAT so
that I only install those.

Any ideas?

I'm currently looking at the output of pkg_info -Lx to try to make
an educated guess...

M
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: GNAT and LAPACK

2010-01-08 Thread freebsd-ports
This appears to be the correct list of files that only apply to GNAT:

http://coreland.ath.cx/tmp/gnat-dist.txt

M
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: GNAT and LAPACK

2010-01-08 Thread Gerald Pfeifer
On Fri, 8 Jan 2010, freebsd-po...@coreland.ath.cx wrote:
> This appears to be the correct list of files that only apply to GNAT:
> 
> http://coreland.ath.cx/tmp/gnat-dist.txt

Note that if you want to combine this with lang/gcc44 as I had
suggested you'll need something like

  TARGLIB=${PREFIX}/lib/gcc${SUFFIX}
  LIBEXEC=${PREFIX}/libexec/gcc${SUFFIX}
  CONFIGURE_ARGS+= --libdir=${TARGLIB} \
   --libexecdir=${LIBEXEC}

in your port.

Glimpsing at the list your created, it does look good to me.

Gerald
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"