mkoctfile on windows

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

mkoctfile on windows

JuanPi
Hi all,

I noticed that compiling in GNU Octave 5.1.0 for windows seems to be possible.

## F77
First I found the problem that the environmental variable F77 (used in
some makefiles) is defined to f77 even if f77 doesn't exist, while
gfortran does exist, that is the lines

F77 ?= gfortran

would always have f77 even if f77 is not in the system. Forcing the
re-definition of F77 got some of my files compiled in windows

Is this a bug?

## mkoctfile failure
Most fo the files compile, but some of them (that compile in linux), I
get errors like th eones in the attached file.

any idea what is causing this?

Thanks
--
JuanPi Carbajal
https://goo.gl/ayiJzi

-----
“An article about computational result is advertising, not
scholarship. The actual scholarship is the full software environment,
code and data, that produced  the  result.”
- Buckheit and Donoho



log.txt (126K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: mkoctfile on windows

JuanPi
Dear all,

I have solved the problem.

1. use mkoctfile instead of any specific compiler
2. when linking a mex file to objects generated from fortran source
code, use -lgfortran when
3. There ws a header file "matrix.h" included whic was causing all the
troubles, I removed this include.

If you are using Octave on windows you can double chec and let me know
if this package installs well from its repository. Run

pkg install https://gitlab.com/hnickisch/gpml-matlab/uploads/e8bafa6308e81a1e61b8da51fef1a95a/gpml-4.2.0.tar.gz

there will be some warnings regarding missing docstrings but the
package should be installed without issues. I tested on Windows 10
using the installer (admin rights) and also using the zip file (after
running post-install.bat and octave-firsttime.vbs).

Regards,

Thanks

On Fri, Dec 27, 2019 at 2:41 PM JuanPi <[hidden email]> wrote:

>
> Hi all,
>
> I noticed that compiling in GNU Octave 5.1.0 for windows seems to be possible.
>
> ## F77
> First I found the problem that the environmental variable F77 (used in
> some makefiles) is defined to f77 even if f77 doesn't exist, while
> gfortran does exist, that is the lines
>
> F77 ?= gfortran
>
> would always have f77 even if f77 is not in the system. Forcing the
> re-definition of F77 got some of my files compiled in windows
>
> Is this a bug?
>
> ## mkoctfile failure
> Most fo the files compile, but some of them (that compile in linux), I
> get errors like th eones in the attached file.
>
> any idea what is causing this?
>
> Thanks
> --
> JuanPi Carbajal
> https://goo.gl/ayiJzi
>
> -----
> “An article about computational result is advertising, not
> scholarship. The actual scholarship is the full software environment,
> code and data, that produced  the  result.”
> - Buckheit and Donoho



--
JuanPi Carbajal
https://goo.gl/ayiJzi

-----
“An article about computational result is advertising, not
scholarship. The actual scholarship is the full software environment,
code and data, that produced  the  result.”
- Buckheit and Donoho


Reply | Threaded
Open this post in threaded view
|

Re: mkoctfile on windows

nrjank
If you are using Octave on windows you can double chec and let me know
if this package installs well from its repository. Run

pkg install https://gitlab.com/hnickisch/gpml-matlab/uploads/e8bafa6308e81a1e61b8da51fef1a95a/gpml-4.2.0.tar.gz



Will try later but just to confirm, this is fully self-contained and should work on a vanilla Windows install regardless of what else is present on the system?

nickj


Reply | Threaded
Open this post in threaded view
|

Re: mkoctfile on windows

siko1056
In reply to this post by JuanPi
On 12/28/19 1:03 AM, JuanPi wrote:

> On Fri, Dec 27, 2019 at 2:41 PM JuanPi <[hidden email]> wrote:
>>
>> Hi all,
>>
>> I noticed that compiling in GNU Octave 5.1.0 for windows seems to be possible.
>>
>> ## F77
>> First I found the problem that the environmental variable F77 (used in
>> some makefiles) is defined to f77 even if f77 doesn't exist, while
>> gfortran does exist, that is the lines
>>
>> F77 ?= gfortran
>>
>> would always have f77 even if f77 is not in the system. Forcing the
>> re-definition of F77 got some of my files compiled in windows
>>
>> Is this a bug?


In the autoconf manual [1] "F77" is regarded as "legacy Fortran 77
macros (F77), and modern Fortran macros (FC)".  In both my Linux
(openSUSE 15.1) and Win 10 VirtualBox (running Octave's cmdshell.bat to
get "make") the implicit variables "F77" and "FC" [2] contain the
default value "f77" even if it does not exist.  Thus not a bug I guess.


>>
>> ## mkoctfile failure
>> Most fo the files compile, but some of them (that compile in linux), I
>> get errors like th eones in the attached file.
>>


Your list is very long and several bug reports might come out, I guess.
 Is the use case of including "matrix.h" (described by you later) a
realistic scenario and worth the effort?


>> any idea what is causing this?
>>
>> Thanks
>> --
>> JuanPi Carbajal
>> https://goo.gl/ayiJzi
>>
>> -----
>> “An article about computational result is advertising, not
>> scholarship. The actual scholarship is the full software environment,
>> code and data, that produced  the  result.”
>> - Buckheit and Donoho
>
>
> Dear all,
>
> I have solved the problem.
>
> 1. use mkoctfile instead of any specific compiler
> 2. when linking a mex file to objects generated from fortran source
> code, use -lgfortran when


This I think is a regression [3], as the Octave Fortran examples do not
compile either cleanly, as described in the manual [4] for 5.1.0 on Win
10 VirtualBox.  On Linux this does not seem to be required.


> 3. There ws a header file "matrix.h" included whic was causing all the
> troubles, I removed this include.
>
> If you are using Octave on windows you can double chec and let me know
> if this package installs well from its repository. Run
>
> pkg install https://gitlab.com/hnickisch/gpml-matlab/uploads/e8bafa6308e81a1e61b8da51fef1a95a/gpml-4.2.0.tar.gz
>
> there will be some warnings regarding missing docstrings but the
> package should be installed without issues. I tested on Windows 10
> using the installer (admin rights) and also using the zip file (after
> running post-install.bat and octave-firsttime.vbs).
>


Installs cleanly on a Win 10 VirtualBox

>> pkg install
https://gitlab.com/hnickisch/gpml-matlab/uploads/e8bafa6308e81a1e61b8da51fef1a95a/gpml-4.2.0.tar.gz
warning: doc_cache_create: unusable help text found in file
'gpml_demoRegression'
warning: doc_cache_create: unusable help text found in file 'isLegal'
warning: doc_cache_create: unusable help text found in file 'precondDiag'
warning: doc_cache_create: unusable help text found in file 'precondTriu'
warning: doc_cache_create: unusable help text found in file
'precondTriuDiag'
For information about changes from previous versions of the gpml
package, run 'news gpml'.


> Regards,
>
> Thanks
>
>



[1]
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/autoconf.html#Fortran-Compiler
[2]
https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
[3] https://savannah.gnu.org/bugs/?49548
[4]
https://octave.org/doc/v5.1.0/Calling-External-Code-from-Oct_002dFiles.html


Reply | Threaded
Open this post in threaded view
|

Re: mkoctfile on windows

JuanPi
Awesome, thanks!

On Sat, Dec 28, 2019 at 6:36 AM Kai Torben Ohlhus <[hidden email]> wrote:

>
> On 12/28/19 1:03 AM, JuanPi wrote:
> > On Fri, Dec 27, 2019 at 2:41 PM JuanPi <[hidden email]> wrote:
> >>
> >> Hi all,
> >>
> >> I noticed that compiling in GNU Octave 5.1.0 for windows seems to be possible.
> >>
> >> ## F77
> >> First I found the problem that the environmental variable F77 (used in
> >> some makefiles) is defined to f77 even if f77 doesn't exist, while
> >> gfortran does exist, that is the lines
> >>
> >> F77 ?= gfortran
> >>
> >> would always have f77 even if f77 is not in the system. Forcing the
> >> re-definition of F77 got some of my files compiled in windows
> >>
> >> Is this a bug?
>
>
> In the autoconf manual [1] "F77" is regarded as "legacy Fortran 77
> macros (F77), and modern Fortran macros (FC)".  In both my Linux
> (openSUSE 15.1) and Win 10 VirtualBox (running Octave's cmdshell.bat to
> get "make") the implicit variables "F77" and "FC" [2] contain the
> default value "f77" even if it does not exist.  Thus not a bug I guess.
>
>
> >>
> >> ## mkoctfile failure
> >> Most fo the files compile, but some of them (that compile in linux), I
> >> get errors like th eones in the attached file.
> >>
>
>
> Your list is very long and several bug reports might come out, I guess.
>  Is the use case of including "matrix.h" (described by you later) a
> realistic scenario and worth the effort?
>
>
> >> any idea what is causing this?
> >>
> >> Thanks
> >> --
> >> JuanPi Carbajal
> >> https://goo.gl/ayiJzi
> >>
> >> -----
> >> “An article about computational result is advertising, not
> >> scholarship. The actual scholarship is the full software environment,
> >> code and data, that produced  the  result.”
> >> - Buckheit and Donoho
> >
> >
> > Dear all,
> >
> > I have solved the problem.
> >
> > 1. use mkoctfile instead of any specific compiler
> > 2. when linking a mex file to objects generated from fortran source
> > code, use -lgfortran when
>
>
> This I think is a regression [3], as the Octave Fortran examples do not
> compile either cleanly, as described in the manual [4] for 5.1.0 on Win
> 10 VirtualBox.  On Linux this does not seem to be required.
>
>
> > 3. There ws a header file "matrix.h" included whic was causing all the
> > troubles, I removed this include.
> >
> > If you are using Octave on windows you can double chec and let me know
> > if this package installs well from its repository. Run
> >
> > pkg install https://gitlab.com/hnickisch/gpml-matlab/uploads/e8bafa6308e81a1e61b8da51fef1a95a/gpml-4.2.0.tar.gz
> >
> > there will be some warnings regarding missing docstrings but the
> > package should be installed without issues. I tested on Windows 10
> > using the installer (admin rights) and also using the zip file (after
> > running post-install.bat and octave-firsttime.vbs).
> >
>
>
> Installs cleanly on a Win 10 VirtualBox
>
> >> pkg install
> https://gitlab.com/hnickisch/gpml-matlab/uploads/e8bafa6308e81a1e61b8da51fef1a95a/gpml-4.2.0.tar.gz
> warning: doc_cache_create: unusable help text found in file
> 'gpml_demoRegression'
> warning: doc_cache_create: unusable help text found in file 'isLegal'
> warning: doc_cache_create: unusable help text found in file 'precondDiag'
> warning: doc_cache_create: unusable help text found in file 'precondTriu'
> warning: doc_cache_create: unusable help text found in file
> 'precondTriuDiag'
> For information about changes from previous versions of the gpml
> package, run 'news gpml'.
>
>
> > Regards,
> >
> > Thanks
> >
> >
>
>
>
> [1]
> https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/autoconf.html#Fortran-Compiler
> [2]
> https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
> [3] https://savannah.gnu.org/bugs/?49548
> [4]
> https://octave.org/doc/v5.1.0/Calling-External-Code-from-Oct_002dFiles.html



--
JuanPi Carbajal
https://goo.gl/ayiJzi

-----
“An article about computational result is advertising, not
scholarship. The actual scholarship is the full software environment,
code and data, that produced  the  result.”
- Buckheit and Donoho