-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
I tried building MUMPS.jl against the shared MUMPS library built via Homebrew. An advantage is that we can call brew to discover the location of the library, so there's no need to package the MUMPS source code. Here's a sample Makefile:
prefix = $(shell brew --prefix mumps)
libdir = $(prefix)/lib
incdir = $(prefix)/include
SRC = mumps_cmplx_p.f90 mumps_p.f90 call_mumps_cmplx_p.f90 call_mumps_p.f90
LIB = -L$(libdir) -ldmumps -lzmumps -lmumps_common -lpord
%.o: %.f90
gfortran -I$(incdir) -fPIC -fcray-pointer -c $<
all: ${SRC:.f90=.o}
libtool -dynamic -undefined dynamic_lookup ${SRC:.f90=.o} -o ../lib/MUMPS $(LIB)
clean:
rm ../lib/MUMPS
This Makefile assumes that the parallel MUMPS library was built. If the sequential library was built (with brew install mumps --without-mpi), incdir becomes $(prefix)/libexec/include and we must add -lmpiseq to LIB.
This compiles but it seems something needs to be updated in the interface:
$ julia ../tests/testTwoSystem.jl
Factorize complex matrix
WARNING: convert{T}(p::Type{Ptr{T}},a::Array) is deprecated, use convert(p,pointer(a)) instead.
(sorry I'm too new to Julia to know what that message means). I'm also getting a bunch of messages of the form:
** On entry to ZGEMM parameter number 4 had an illegal value
Metadata
Metadata
Assignees
Labels
No labels