help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ATLAS and octave


From: R Clint Whaley
Subject: Re: ATLAS and octave
Date: Sat, 5 Feb 2000 15:17:18 -0500

>  Clint> The most direct method is, with a previously installed ATLAS, build
>  Clint> octave's libcruft as normal, but you then ar into it the contents
>  Clint> of: ATLAS/lib/<arch>/liblapack.a (overwriting some LAPACK routines)
>  Clint> ATLAS/lib/<arch>/libatlas.a (ATLAS internals)
>  Clint> ATLAS/lib/<arch>/libf77blas.a (F77 BLAS interface -- overwrite BLAS)
>  Clint> ATLAS/lib/<arch>/libcblas.a (C BLAS interface)
>
>Could you send me your Makefile snippet? I'd *love* to try that on my Octave
>build process for the Debian package as we already have Atlas libraries.

The kludge I used (invented at 6AM, so elegant it's not) is:

Run octave's configure, but don't start build yet.  Replace
   libcruft/blas/Makefile
with the file I include below.  ar x the above mentioned ATLAS libs (looks
like in your case they have been combined into two libs, just x those two
libs) into the libcruft/blas directory.

Compile octave's specialized xerbla.f to overwrite ATLAS's.  Also, edit
   ATLAS/interfaces/lapack/F77/src/ilaenv.f

and comment out all mention of IEEECK, and compile this file over the top of
ilaenv.o.

Now continue with octave install.  I issued 
   make CFLAGS=-O CXXFLAGS=-O LDFLAGS=
twice.  The second time I hoped to overwrite lapack's API with ATLAS's (this
is necessary because I only hacked the libcruft/blas makefile, and used it
to put ATLAS's BLAS & LAPACK routines into the library).

As you can see, this was a rather brutal kludge; I just wanted to make sure
the libraries would play nicely.  Obviously, my hope is one of the octave
maintainers will find a formal and elegant way to make this a painless 
process; it is unlikely that I will have the time to become an octave expert
in order to make this smooth . . .

Cheers,
Clint

TOPDIR = ../..

srcdir = /home/rwhaley/dload/octave-2.0.16/libcruft/blas
top_srcdir = /home/rwhaley/dload/octave-2.0.16
VPATH = /home/rwhaley/dload/octave-2.0.16/libcruft/blas

EXTERNAL_DISTFILES = $(DISTFILES)

include $(TOPDIR)/Makeconf

SOURCES = xerbla.f

DISTFILES = $(SOURCES)

CRUFT_SRC = xerbla.f
CRUFT_BASE = xerbla
CRUFT_OBJ  = $(wildcard *.o)

CWD = $(shell pwd)
THISDIR = $(notdir $(CWD))

LIBCRUFT = ../libcruft.a

LIBCRUFT_OBJS = $(CRUFT_OBJ)

LIBCRUFT_DEPS =

all :
        ar r $(LIBCRUFT) *.o

.PHONY : all

.PRECIOUS: all
pic : all
install :: all
.PHONY: install

uninstall::
.PHONY: uninstall

clean::
        touch clean
.PHONY: clean


mostlyclean::
        touch mostlyclean
.PHONY: mostlyclean

distclean::
        touch distclean
.PHONY: distclean

maintainer-clean::
        touch maintainer-clean
.PHONY: maintainer-clean

#include ../Makerules



-----------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.che.wisc.edu/octave/octave.html
How to fund new projects:  http://www.che.wisc.edu/octave/funding.html
Subscription information:  http://www.che.wisc.edu/octave/archive.html
-----------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]