[Ipopt] Matlab Build with -framework Accelerate
Tony Kelman
kelman at berkeley.edu
Tue Jan 13 15:08:32 EST 2015
There is some code that’s specific to the Matlab interface that deals with -framework vecLib, since the mex compiler wrapper doesn’t understand that flag. I would actually recommend just doing -lblas and -llapack because I believe the end result should be the same.
From: Ted Ralphs
Sent: Tuesday, January 13, 2015 9:13 AM
To: Marco Rozgic
Cc: ipopt at list.coin-or.org
Subject: Re: [Ipopt] Matlab Build with -framework Accelerate
I made a new BuildTools release just a few days ago that should address this issue. Here is the changeset:
https://projects.coin-or.org/BuildTools/changeset/3273/
For this change to propagate, though, we would need to make new releases of all the dependent projects. I would guess that re-running autoconf on all dependencies to produce new configure scripts would fix the issue. We'll try to do this as quickly as possible. I believe a new stable version of Ipopt is also in the works and that should be available within about 2 weeks, but Stefan can confirm this.
If you need this to be fixed quickly, I can tell you what to try yourself in more detail.
Cheers,
Ted
On Tue, Jan 13, 2015 at 8:14 AM, Marco Rozgic <marco.rozgic at hsu-hh.de> wrote:
Hi everybody,
I am currently building Ipopt 3.11.9 on MacOS 10.10 with Matlab2014b. I managed to get a working mex file with some effort that I am willing to share. However, afterwards I was trying to build a mex file that incorporates the MacOS blas and lapack, wich are now given by the framework Accelerate and not anymore by the vecLib framework. I used the configure site script and added the following to the configure command:
../configure --enable-matlab-ma57 --with-blas='-framework Accelerate' --with-lapack='-framework Accelerate‘
Afterwards I run
make
make test
make install
All good up to now. I create a mexopt.sh file, edit the SDKs to the newest versions and modify the makefile for the Matlab interface. Now make gives the following error:
Undefined symbols for architecture x86_64:
Followed by some lapack and blas routines that are not found, e.g.,
"_dgemm_", referenced from:
Ipopt::IpBlasDgemm(bool, bool, int, int, int, double, double const*, int, double const*, int, double, double*, int) in libipopt.a(IpBlas.o)
_ma57td_ in libcoinhsl.a(ma57d.o)
_ma57rd_ in libcoinhsl.a(ma57d.o)
_ma57qd_ in libcoinhsl.a(ma57d.o)
_ma57od_ in libcoinhsl.a(ma57d.o)
So I figure that the Acceleration framework is not passed correctly or included correctly.
Does anybody have an idea how to work around that issue or resolve the problem?
Best,
Marco
--
Dipl.-Math. Marco Rozgic
Department of the Theory of Electrical Engineering at the
Helmut Schmidt University
University of the Federal Armed Forces Hamburg
Tel: +49 (0) 40 6541 3647
Location: Holstenhofweg 85, 22043 Hamburg Building H3 Room 007
_______________________________________________
Ipopt mailing list
Ipopt at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/ipopt
--
Dr. Ted Ralphs
Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted
--------------------------------------------------------------------------------
_______________________________________________
Ipopt mailing list
Ipopt at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/ipopt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20150113/9e8c4231/attachment.html>
More information about the Ipopt
mailing list