octave-maintainers
[Top][All Lists]
Advanced

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

Re: mkoctfile urgently needs attention before Octave 3.6.0


From: Lukas Reichlin
Subject: Re: mkoctfile urgently needs attention before Octave 3.6.0
Date: Thu, 29 Dec 2011 22:57:05 +0100

On 29.12.2011, at 22:07, Lukas Reichlin wrote:

> On 29.12.2011, at 21:57, c. wrote:
> 
>> 
>> On 29 Dec 2011, at 21:46, Lukas Reichlin wrote:
>> 
>>> Hmm, I'm not sure about this. Interestingly, it works if I use 
>>> 
>>>  "$(mkoctfile -p BLAS_LIBS)"
>>> 
>>> in my developer makefiles alone.
>> 
>> How exactly did you add that to your Makefile? If I use:
>> 
>> # balanced stochastic truncation model reduction
>> slab09hd.oct: slab09hd.cc
>>      mkoctfile $$(mkoctfile -p BLAS_LIBS) slab09hd.cc \
>>             AB09HD.f TB01ID.f AB04MD.f TB01KD.f AB09HY.f \
>>             AB09IX.f MB03UD.f SB02MD.f AB09DD.f TB01LD.f \
>>             SB03OU.f MA02AD.f MB03QX.f select.f SB03OT.f \
>>             SB02MR.f SB02MS.f MB03QD.f SB02MU.f SB02MV.f \
>>             SB02MW.f MB04ND.f MB04OD.f MB03QY.f SB03OR.f \
>>             SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f
>> 
>> I get the following error:
>> 
>> $ make slab09hd.oct
>> mkoctfile $(mkoctfile -p BLAS_LIBS) slab09hd.cc \
>>             AB09HD.f TB01ID.f AB04MD.f TB01KD.f AB09HY.f \
>>             AB09IX.f MB03UD.f SB02MD.f AB09DD.f TB01LD.f \
>>             SB03OU.f MA02AD.f MB03QX.f select.f SB03OT.f \
>>             SB02MR.f SB02MS.f MB03QD.f SB02MU.f SB02MV.f \
>>             SB02MW.f MB04ND.f MB04OD.f MB03QY.f SB03OR.f \
>>             SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f
>> mkoctfile: unrecognized argument -framework
>> make: *** [slab09hd.oct] Error 1
>> 
>> c.
> 
> That looks like a makefile from my upcoming order reduction functions 
> (currently located under extra/control-devel). I didn't test these. Below is 
> one from main/control, makefile_chol.m:
> 
> ==============================================================================
> ## Developer Makefile for OCT-files
> ## 
> ==============================================================================
> ## USAGE: * fetch control from Octave-Forge by svn
> ##        * add control/inst, control/src and control/devel to your Octave 
> path
> ##        * run makefile_*
> ## 
> ==============================================================================
> 
> homedir = pwd ();
> develdir = fileparts (which ("makefile_chol"));
> srcdir = [develdir, "/../src"];
> cd (srcdir);
> 
> mkoctfile slsb03od.cc \
>          SB03OD.f select.f SB03OU.f SB03OT.f MB04ND.f \
>          MB04OD.f SB03OR.f SB03OY.f SB04PX.f MB04NY.f \
>          MB04OY.f SB03OV.f \
>          "$(mkoctfile -p LAPACK_LIBS)" \
>          "$(mkoctfile -p BLAS_LIBS)"
> 
> 
> mkoctfile slsg03bd.cc \
>          SG03BD.f SG03BV.f SG03BU.f SG03BW.f SG03BX.f \
>          SG03BY.f MB02UU.f MB02UV.f \
>          "$(mkoctfile -p LAPACK_LIBS)" \
>          "$(mkoctfile -p BLAS_LIBS)"
> 
> system ("rm *.o");
> cd (homedir);
> 
> I compiled your modified Portfile without problems. The makefile pasted above 
> works as well which is a very good sign! I'll modify the other makefiles and 
> report back as soon as I'm finished.
> 
> Cheers,
> Lukas
> 


OK, I tested all developer makefiles with

         "$(mkoctfile -p LAPACK_LIBS)" \
         "$(mkoctfile -p BLAS_LIBS)"

and it worked for both the +accelerate and the +atlas option of the Portfile. 
They are in the all the "devel" folder [1].

Then I restored the package makefile [2] to Marco Atzeris original patch, which 
should do the same as my developer makefiles. But interestingly, both 
+accelerate and +atlas fail with the same error when I download the package 
from [3] and try to install it:


octave:1> pkg install control*
Undefined symbols for architecture x86_64:
  "_lsame_", referenced from:
      _ab08nd_ in AB08ND.o
      _tb01id_ in TB01ID.o
  "_ilaenv_", referenced from:
      _ab08nd_ in AB08ND.o
      _ab08nx_ in AB08NX.o
  "_dlacpy_", referenced from:
      _ab08nd_ in AB08ND.o
  "_dlamch_", referenced from:
      _ab08nd_ in AB08ND.o
      _tb01id_ in TB01ID.o
  "_dlange_", referenced from:
      _ab08nd_ in AB08ND.o
  "_dcopy_", referenced from:
      _ab08nd_ in AB08ND.o
      _mb03py_ in MB03PY.o
  "_dlaset_", referenced from:
      _ab08nd_ in AB08ND.o
      _ab08nx_ in AB08NX.o
  "_dtzrzf_", referenced from:
      _ab08nd_ in AB08ND.o
  "_dormrz_", referenced from:
      _ab08nd_ in AB08ND.o
  "_dlarfg_", referenced from:
      _ab08nx_ in AB08NX.o
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dlatzm_", referenced from:
      _ab08nx_ in AB08NX.o
  "_dormrq_", referenced from:
      _ab08nx_ in AB08NX.o
  "_dlapmt_", referenced from:
      _ab08nx_ in AB08NX.o
  "_dormqr_", referenced from:
      _ab08nx_ in AB08NX.o
  "_dasum_", referenced from:
      _tb01id_ in TB01ID.o
  "_idamax_", referenced from:
      _tb01id_ in TB01ID.o
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dscal_", referenced from:
      _tb01id_ in TB01ID.o
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dnrm2_", referenced from:
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dswap_", referenced from:
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dlaic1_", referenced from:
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dlarf_", referenced from:
      _mb03oy_ in MB03OY.o
      _mb03py_ in MB03PY.o
  "_dggev_", referenced from:
      Fslab08nd(octave_value_list const&, int) in slab08nd.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [slab08nd.oct] Error 1
'make' returned the following error: mkoctfile slab08nd.cc \
              AB08ND.f AB08NX.f TB01ID.f MB03OY.f MB03PY.f \
                
error: called from `pkg>configure_make' in file 
/opt/local/share/octave/3.5.91/m/pkg/pkg.m near line 1385, column 9
error: called from:
error:   /opt/local/share/octave/3.5.91/m/pkg/pkg.m at line 827, column 5
error:   /opt/local/share/octave/3.5.91/m/pkg/pkg.m at line 383, column 9
octave:1> 

As Marco reported earlier, his patch works on Windows and some Linux flavours. 
Mac is apparently a different story.

Lukas


[1]
http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/devel/

[2]
http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/src/Makefile?revision=9482&view=markup

[3]
http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/?view=tar

reply via email to

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