Hi Andreas,<div><br></div><div>Thanks for your reply!  got me past the configure stage, but my make still fails.</div><div><br></div><div>1) I modified my configure statement to read as follows: (the options -lblas and -llapack seemed to pick up the BLAS and Lapack in ThirdParty/, not the ATLAS libraries)</div>
<div><div><br></div><div>./configure --with-blas=&quot;/usr/lib/atlas-base/atlas/libblas.so.3gf&quot; \</div>
<div><span style="white-space:pre-wrap">                        </span>--with-lapack=&quot;/usr/lib/atlas-base/atlas/liblapack.so.3gf&quot;</div></div><div><div><br></div></div><div>The configure worked fine:</div><div>========================================================================</div>
<div>&lt;snipped&gt;</div><div><div><div>checking whether user supplied BLASLIB=&quot;/usr/lib/atlas-base/atlas/libblas.so.3gf.0&quot; works... yes: /usr/lib/atlas-base/atlas/libblas.so.3gf.0</div><div>checking whether user supplied LAPACKLIB=&quot;/usr/lib/atlas-base/atlas/liblapack.so.3gf.0&quot; works... yes: /usr/lib/atlas-base/atlas/liblapack.so.3gf.0 /usr/lib/atlas-base/atlas/libblas.so.3gf.0</div>
</div></div><div>&lt;snipped&gt;</div><div>========================================================================</div><div><br></div><div><br></div><div>2) However, the &quot;make&quot; process still fails.</div>
<div>========================================================================</div><div>&lt;snipped&gt;</div><div><div>../../Interfaces/.libs/libipopt.a(IpLapack.o): In function `Ipopt::IpLapackDpotrs(int, int, double const*, int, double*, int)&#39;:</div>
<div>IpLapack.cpp:(.text+0x50): undefined reference to `dpotrs_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpLapack.o): In function `Ipopt::IpLapackDpotrf(int, double*, int, int&amp;)&#39;:</div><div>IpLapack.cpp:(.text+0x90): undefined reference to `dpotrf_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpLapack.o): In function `Ipopt::IpLapackDsyev(bool, int, double*, int, double*, int&amp;)&#39;:</div><div>IpLapack.cpp:(.text+0x124): undefined reference to `dsyev_&#39;</div><div>IpLapack.cpp:(.text+0x27c): undefined reference to `dsyev_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpLapack.o): In function `Ipopt::IpLapackDgetrf(int, double*, int*, int, int&amp;)&#39;:</div><div>IpLapack.cpp:(.text+0x2dc): undefined reference to `dgetrf_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpLapack.o): In function `Ipopt::IpLapackDgetrs(int, int, double const*, int, int*, double*, int)&#39;:</div>
<div>IpLapack.cpp:(.text+0x348): undefined reference to `dgetrs_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDdot(int, double const*, int, double const*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x21): undefined reference to `ddot_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDnrm2(int, double const*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x47): undefined reference to `dnrm2_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDasum(int, double const*, int)&#39;:</div>
<div>IpBlas.cpp:(.text+0x67): undefined reference to `dasum_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasIdamax(int, double const*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x87): undefined reference to `idamax_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDcopy(int, double const*, int, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0xb1): undefined reference to `dcopy_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDaxpy(int, double, double const*, int, double*, int)&#39;:</div>
<div>IpBlas.cpp:(.text+0xf2): undefined reference to `daxpy_&#39;</div><div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDscal(int, double, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x125): undefined reference to `dscal_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDgemv(bool, int, int, double, double const*, int, double const*, int, double, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x1d6): undefined reference to `dgemv_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDsymv(int, double, double const*, int, double const*, int, double, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x25f): undefined reference to `dsymv_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDgemm(bool, bool, int, int, int, double, double const*, int, double const*, int, double, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x36a): undefined reference to `dgemm_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDsyrk(bool, int, int, double, double const*, int, double, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x41b): undefined reference to `dsyrk_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpBlas.o): In function `Ipopt::IpBlasDtrsm(bool, int, int, double, double const*, int, double*, int)&#39;:</div><div>IpBlas.cpp:(.text+0x4fe): undefined reference to `dtrsm_&#39;</div>
<div>../../Interfaces/.libs/libipopt.a(IpMa28Partition.o): In function `ma28part_&#39;:</div><div>IpMa28Partition.F:(.text+0x156): undefined reference to `dcopy_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `mc71ad_&#39;:</div>
<div>ma57ad.f:(.text+0xb0a8): undefined reference to `idamax_&#39;</div><div>ma57ad.f:(.text+0xb2e3): undefined reference to `idamax_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `ma57td_&#39;:</div>
<div>ma57ad.f:(.text+0xc9e2): undefined reference to `dgemm_&#39;</div><div>ma57ad.f:(.text+0xca97): undefined reference to `dtpsv_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `ma57rd_&#39;:</div>
<div>ma57ad.f:(.text+0xd6d6): undefined reference to `dgemm_&#39;</div><div>ma57ad.f:(.text+0xd765): undefined reference to `dtpsv_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `ma57yd_&#39;:</div>
<div>ma57ad.f:(.text+0xe06e): undefined reference to `dgemv_&#39;</div><div>ma57ad.f:(.text+0xe0b8): undefined reference to `dtpsv_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `ma57qd_&#39;:</div>
<div>ma57ad.f:(.text+0xe7ae): undefined reference to `dtpsv_&#39;</div><div>ma57ad.f:(.text+0xec86): undefined reference to `dgemm_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `ma57xd_&#39;:</div>
<div>ma57ad.f:(.text+0xedfa): undefined reference to `dtpsv_&#39;</div><div>ma57ad.f:(.text+0xf1f9): undefined reference to `dgemv_&#39;</div><div>/home/usual/INSTALLDIRS/Ipopt310/ThirdParty/HSL/.libs/libcoinhsl.a(ma57ad.o): In function `ma57od_&#39;:</div>
<div>ma57ad.f:(.text+0x1517c): undefined reference to `dgemm_&#39;</div><div>ma57ad.f:(.text+0x163a2): undefined reference to `dgemm_&#39;</div><div>ma57ad.f:(.text+0x16478): undefined reference to `dgemm_&#39;</div><div>
collect2: ld returned 1 exit status</div><div>make[3]: *** [ipopt] Error 1</div><div>make[3]: Leaving directory `/home/usual/INSTALLDIRS/Ipopt310/Ipopt/src/Apps/AmplSolver&#39;</div><div>make[2]: *** [all-recursive] Error 1</div>
<div>make[2]: Leaving directory `/home/usual/INSTALLDIRS/Ipopt310/Ipopt/src/Apps&#39;</div><div>make[1]: *** [all-recursive] Error 1</div><div>make[1]: Leaving directory `/home/usual/INSTALLDIRS/Ipopt310/Ipopt&#39;</div></div>
<div><div>========================================================================</div><div></div></div><div><br></div><div>If one were to do an &#39;nm&#39; on the static library, one notices for instance that the dgemm symbol clearly exists.</div>
<div><div><div>========================================================================</div><div></div></div></div><div>% nm /usr/lib/atlas-base/atlas/libblas.a | grep dgemm</div><div><div>0000000000000000 T atl_f77wrap_dgemm_</div>
<div>ATL_dgemm.o:</div><div>0000000000000000 T ATL_dgemm</div><div>dgemm.o:</div><div>                 U atl_f77wrap_dgemm_</div></div><div><div><div>========================================================================</div>
<div></div></div></div><div><br></div><div>I&#39;m baffled!</div><div><br></div><div>David</div><div><br></div><div><br></div><div><div class="gmail_quote">On Wed, Feb 15, 2012 at 10:12 PM, Andreas Waechter <span dir="ltr">&lt;<a href="mailto:awaechter.iems@gmail.com" target="_blank">awaechter.iems@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi David,<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I was wondering if anyone here running Ubuntu has managed to successfully compile IPOPT 3.10 with the system-packaged ATLAS?<br>
<br>
I&#39;m running Ubuntu 11.10 64-bit.<br>
</blockquote>
<br></div>
I&#39;m running the same OS.<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
In previous versions of Ubuntu, all I had to do was to link against libblas.so.3 and liblapack.so.3 provided by the package libatlas-dev-sse2. However, this package has been removed and replaced with a new package called libatlas-base-dev (ATLAS 3.8.4), which provides two new libraries named libf77blas.so and liblapack_atlas.so.<br>


<br>
IPOPT&#39;s configure script accepts libf77blas.so but fails for liblapack_atlas.so.<br>
<br>
1) Could it be that the new liblapack_atlas.so does not have the LAPACK routines that IPOPT needs?<br>
2) Are there any workarounds or do I have to compile my own ATLAS from scratch?<br>
</blockquote>
<br></div>
I have the same package installed (libatlas-base-dev).  If I understand correctly, all you have to do is to link with -lblas and -llapack.  Your &quot;alternatives configurator&quot; should be set up automatically to pick up<br>


<br>
/usr/lib/atlas-base/atlas/<u></u>libblas.so.3gf and<br>
/usr/lib/atlas-base/atlas/<u></u>liblapack.so.3gf<br>
<br>
If you look at the symbols in the static versions of those libraries (e.g., nm /usr/lib/atlas-base/atlas/<u></u>libblas.a) you will see the atlas symbols ATL_...  I guess this setup is meant to be a very convenient way to link with Atlas by just using -lblas and -llapack.<br>


<br>
Hope this is correct, and hopeful,<br>
<br>
Andreas<br>
<br>
</blockquote></div><br></div>