I want to use a software that needs lapack to compile properly. But I'm not able to make lapack work on Mac.
I'm trying to install lapack-3.7.1
I type make
and this message arrive:
make: *** No rule to make target `lsame.o', needed by `testlsame'. Stop.
I've attempted to modify the make.inc but it seems that some instructions that I've seen on internet are not updated. I saw that we have to change the PLAT to PLAT = _DARWIN.
http://www.commonmediainc.com/2008/03/24/building-lapack-and-rubys-linalg-on-mac-os-x/
I can't see it in my make.inc file.
Are there some step by step instruction to install lapack?
make.inc file:
####################################################################
# LAPACK make include file. #
# LAPACK, Version 3.7.0 #
# December 2016 #
####################################################################
SHELL = /bin/sh
# CC is the C compiler, normally invoked with options CFLAGS.
#
CC = gcc
CFLAGS = -O3
# Modify the FORTRAN and OPTS definitions to refer to the compiler
# and desired compiler options for your machine. NOOPT refers to
# the compiler options desired when NO OPTIMIZATION is selected.
#
# Note: During a regular execution, LAPACK might create NaN and Inf
# and handle these quantities appropriately. As a consequence, one
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
#
FORTRAN = gfortran
OPTS = -O2 -frecursive
DRVOPTS = $(OPTS)
NOOPT = -O0 -frecursive
# Define LOADER and LOADOPTS to refer to the loader and desired
# load options for your machine.
#
LOADER = gfortran
LOADOPTS =
# The archiver and the flag(s) to use when building an archive
# (library). If your system has no ranlib, set RANLIB = echo.
#
ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib
# Timer for the SECOND and DSECND routines
#
# Default: SECOND and DSECND will use a call to the
# EXTERNAL FUNCTION ETIME
#TIMER = EXT_ETIME
# For RS6K: SECOND and DSECND will use a call to the
# EXTERNAL FUNCTION ETIME_
#TIMER = EXT_ETIME_
# For gfortran compiler: SECOND and DSECND will use a call to the
# INTERNAL FUNCTION ETIME
TIMER = INT_ETIME
# If your Fortran compiler does not provide etime (like Nag Fortran
# Compiler, etc...) SECOND and DSECND will use a call to the
# INTERNAL FUNCTION CPU_TIME
#TIMER = INT_CPU_TIME
# If none of these work, you can use the NONE value.
# In that case, SECOND and DSECND will always return 0.
#TIMER = NONE
# Uncomment the following line to include deprecated routines in
# the LAPACK library.
#
#BUILD_DEPRECATED = Yes
# LAPACKE has the interface to some routines from tmglib.
# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
#LAPACKE_WITH_TMG = Yes
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
# relevant routines will be compiled and XBLAS will be linked only
# if USEXBLAS is defined.
#
#USEXBLAS = Yes
#XBLASLIB = -lxblas
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
BLASLIB = ../../librefblas.a
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a
Makefile:
include ./make.inc
all: testlsame testslamch testdlamch testsecond testdsecnd testieee testversion
testlsame: lsame.o lsametst.o
$(LOADER) $(LOADOPTS) -o $@ $^
testslamch: slamch.o lsame.o slamchtst.o
$(LOADER) $(LOADOPTS) -o $@ $^
testdlamch: dlamch.o lsame.o dlamchtst.o
$(LOADER) $(LOADOPTS) -o $@ $^
testsecond: second_$(TIMER).o secondtst.o
@echo "[INFO] : TIMER value: $(TIMER) (given by make.inc)"
$(LOADER) $(LOADOPTS) -o $@ $^
testdsecnd: dsecnd_$(TIMER).o dsecndtst.o
@echo "[INFO] : TIMER value: $(TIMER) (given by make.inc)"
$(LOADER) $(LOADOPTS) -o $@ $^
testieee: tstiee.o
$(LOADER) $(LOADOPTS) -o $@ $^
testversion: ilaver.o LAPACK_version.o
$(LOADER) $(LOADOPTS) -o $@ $^
run: all
./testlsame
./testslamch
./testdlamch
./testsecond
./testdsecnd
./testieee
./testversion
clean: cleanobj cleanexe cleantest
cleanobj:
rm -f *.o
cleanexe:
rm -f test*
cleantest:
rm -f core
.SUFFIXES: .o .f
.f.o:
$(FORTRAN) $(OPTS) -c -o $@ $<
slamch.o: slamch.f ; $(FORTRAN) $(NOOPT) -c -o $@ $<
dlamch.o: dlamch.f ; $(FORTRAN) $(NOOPT) -c -o $@ $<
I've tried Homebrew, but it's not working:
brew install lapack
Error: No available formula with the name "lapack"
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
This formula was found in a tap:
homebrew/science/lapack-manpages
To install it, run:
brew install homebrew/science/lapack-manpages
But even brew install homebrew/science/lapack-manpages
is not working...
Homebrew 0.9.9 (git revision 1158; last commit 2016-07-20)
Homebrew/homebrew-core (git revision f7372; last commit 2016-07-20)