Building Octave w MXE-built dependencies (2)

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

Building Octave w MXE-built dependencies (2)

PhilipNienhuis
> John D, did I read you correctly that:
>> Also, just for info, I created a script in tools/set_mxe_env.sh you can
> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config paths
> that may help.
>> I created it for compiling the octave_hg versions of code in mingw after
>> having a working mxe-octave.
>> It isn't much use for anything except for native mingw builds.
> ... that script is meant to aid exactly that purpose?
>
> Yes the script is for that - I have successfully built octave checked out
> from octave hg a few times now.
> All you need to do is check out the sources, source the set_mxe_env.sh
> script, and then run run bootstrap, configure, make like you normally would
> have to on a unix system.
>
> It will build octave, but fail at generating all the documentation, but the
> ./run-octave script in the build directory will run the latest and greatest
> from the octave hg repo!

Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while building
the parser:

:
/bin/sh ../../octave/build-aux/ylwrap
../../octave/libinterp/parse-tree/lex.ll lex.octave_.c parse-tree/lex.cc
-- flex -I -I
gperf -t -C -D -G -L C++ -Z octave_kw_hash
../../octave/libinterp/parse-tree/octave.gperf > parse-tree/oct-gperf.h-t1
/bin/sed 's,lookup\[,gperf_lookup[,' < parse-tree/oct-gperf.h-t1 >
parse-tree/oct-gperf.h-t
mv parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h
rm -f parse-tree/oct-gperf.h-t1
case "" in \
           *quote*) quote='"' ;; \
           *) quote="" ;; \
         esac; \
         case "" in \
           *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;; \
           *underscore*) decl="%define api.push_pull
${quote}both${quote}"; ;; \
         esac; \
         /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
../../octave/libinterp/parse-tree/oct-parse.in.yy >
parse-tree/oct-parse.yy-t
mv parse-tree/oct-parse.yy-t parse-tree/oct-parse.yy
/bin/sh ../../octave/build-aux/ylwrap parse-tree/oct-parse.yy y.tab.c
parse-tree/oct-parse.cc y.tab.
h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
../../octave/build-aux/ylwrap: line 108: -dv: command not found
make[2]: *** [parse-tree/oct-parse.cc] Error 1


I've experimented a bit but I couldn't spot where the offending "-dv"
came from.
The isolated "--" comes from libinterp/Makefile (L. 9053).

Any suggestions?

Philip
Reply | Threaded
Open this post in threaded view
|

RE: Building Octave w MXE-built dependencies (2)

John Donoghue-3


-----Original Message-----
From: Philip Nienhuis [mailto:[hidden email]]
Sent: Friday, June 21, 2013 8:49 AM
To: John D
Cc: John W. Eaton; Octave Maintainers List
Subject: Building Octave w MXE-built dependencies (2)

> John D, did I read you correctly that:
>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>> can
> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
> paths that may help.
>> I created it for compiling the octave_hg versions of code in mingw
>> after having a working mxe-octave.
>> It isn't much use for anything except for native mingw builds.
> ... that script is meant to aid exactly that purpose?
>
> Yes the script is for that - I have successfully built octave checked
> out from octave hg a few times now.
> All you need to do is check out the sources, source the set_mxe_env.sh
> script, and then run run bootstrap, configure, make like you normally
> would have to on a unix system.
>
> It will build octave, but fail at generating all the documentation,
> but the ./run-octave script in the build directory will run the latest
> and greatest from the octave hg repo!

Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while building the
parser:

:
/bin/sh ../../octave/build-aux/ylwrap
../../octave/libinterp/parse-tree/lex.ll lex.octave_.c parse-tree/lex.cc
-- flex -I -I
gperf -t -C -D -G -L C++ -Z octave_kw_hash
../../octave/libinterp/parse-tree/octave.gperf > parse-tree/oct-gperf.h-t1
/bin/sed 's,lookup\[,gperf_lookup[,' < parse-tree/oct-gperf.h-t1 >
parse-tree/oct-gperf.h-t mv parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h
rm -f parse-tree/oct-gperf.h-t1 case "" in \
           *quote*) quote='"' ;; \
           *) quote="" ;; \
         esac; \
         case "" in \
           *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;; \
           *underscore*) decl="%define api.push_pull ${quote}both${quote}";
;; \
         esac; \
         /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
../../octave/libinterp/parse-tree/oct-parse.in.yy >
parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
../../octave/build-aux/ylwrap: line 108: -dv: command not found
make[2]: *** [parse-tree/oct-parse.cc] Error 1


I've experimented a bit but I couldn't spot where the offending "-dv"
came from.
The isolated "--" comes from libinterp/Makefile (L. 9053).

Any suggestions?

Philip

-------------

Not sure if it has anything to do with it, but when running each of the
following, what versions are they?
bison --version
flex --version
gperf --version

Reply | Threaded
Open this post in threaded view
|

Re: Building Octave w MXE-built dependencies (2)

PhilipNienhuis
John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 8:49 AM
> To: John D
> Cc: John W. Eaton; Octave Maintainers List
> Subject: Building Octave w MXE-built dependencies (2)
>
>> John D, did I read you correctly that:
>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>> can
>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>> paths that may help.
>>> I created it for compiling the octave_hg versions of code in mingw
>>> after having a working mxe-octave.
>>> It isn't much use for anything except for native mingw builds.
>> ... that script is meant to aid exactly that purpose?
>>
>> Yes the script is for that - I have successfully built octave checked
>> out from octave hg a few times now.
>> All you need to do is check out the sources, source the set_mxe_env.sh
>> script, and then run run bootstrap, configure, make like you normally
>> would have to on a unix system.
>>
>> It will build octave, but fail at generating all the documentation,
>> but the ./run-octave script in the build directory will run the latest
>> and greatest from the octave hg repo!
>
> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while building the
> parser:
>
> :
> /bin/sh ../../octave/build-aux/ylwrap
> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c parse-tree/lex.cc
> -- flex -I -I
> gperf -t -C -D -G -L C++ -Z octave_kw_hash
> ../../octave/libinterp/parse-tree/octave.gperf>  parse-tree/oct-gperf.h-t1
> /bin/sed 's,lookup\[,gperf_lookup[,'<  parse-tree/oct-gperf.h-t1>
> parse-tree/oct-gperf.h-t mv parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h
> rm -f parse-tree/oct-gperf.h-t1 case "" in \
>             *quote*) quote='"' ;; \
>             *) quote="" ;; \
>           esac; \
>           case "" in \
>             *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;; \
>             *underscore*) decl="%define api.push_pull ${quote}both${quote}";
> ;; \
>           esac; \
>           /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>
>
> I've experimented a bit but I couldn't spot where the offending "-dv"
> came from.
> The isolated "--" comes from libinterp/Makefile (L. 9053).
>
> Any suggestions?
>
> Philip
>
> -------------
>
> Not sure if it has anything to do with it, but when running each of the
> following, what versions are they?
> bison --version
> flex --version
> gperf --version

FYI, flex comes from mingw-get (after updating & upgrading so I suppose
it should be up-to-date).
bison and gperf have been built using mxe as build-bison and build-gperf


Philip@DeskPRN ~/octave
$ bison --version
bison (GNU Bison) 2.7.12-4996
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

Philip@DeskPRN ~/octave
$ flex --version
flex 2.5.35

Philip@DeskPRN ~/octave
$ gperf --version
GNU gperf 3.0.4
Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Douglas C. Schmidt and Bruno Haible.


Thanks,

Philip
Reply | Threaded
Open this post in threaded view
|

RE: Building Octave w MXE-built dependencies (2)

John Donoghue-3


-----Original Message-----
From: Philip Nienhuis [mailto:[hidden email]]
Sent: Friday, June 21, 2013 9:14 AM
To: John D
Cc: 'John W. Eaton'; 'Octave Maintainers List'
Subject: Re: Building Octave w MXE-built dependencies (2)

John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 8:49 AM
> To: John D
> Cc: John W. Eaton; Octave Maintainers List
> Subject: Building Octave w MXE-built dependencies (2)
>
>> John D, did I read you correctly that:
>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>> can
>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>> paths that may help.
>>> I created it for compiling the octave_hg versions of code in mingw
>>> after having a working mxe-octave.
>>> It isn't much use for anything except for native mingw builds.
>> ... that script is meant to aid exactly that purpose?
>>
>> Yes the script is for that - I have successfully built octave checked
>> out from octave hg a few times now.
>> All you need to do is check out the sources, source the
>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>> like you normally would have to on a unix system.
>>
>> It will build octave, but fail at generating all the documentation,
>> but the ./run-octave script in the build directory will run the
>> latest and greatest from the octave hg repo!
>
> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
> building the
> parser:
>
> :
> /bin/sh ../../octave/build-aux/ylwrap
> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
> parse-tree/lex.cc
> -- flex -I -I
> gperf -t -C -D -G -L C++ -Z octave_kw_hash
> ../../octave/libinterp/parse-tree/octave.gperf>  
> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<  
> parse-tree/oct-gperf.h-t1> parse-tree/oct-gperf.h-t mv
> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
parse-tree/oct-gperf.h-t1 case "" in \
>             *quote*) quote='"' ;; \
>             *) quote="" ;; \
>           esac; \
>           case "" in \
>             *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;;
\

>             *underscore*) decl="%define api.push_pull
> ${quote}both${quote}"; ;; \
>           esac; \
>           /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>
>
> I've experimented a bit but I couldn't spot where the offending "-dv"
> came from.
> The isolated "--" comes from libinterp/Makefile (L. 9053).
>
> Any suggestions?
>
> Philip
>
> -------------
>
> Not sure if it has anything to do with it, but when running each of
> the following, what versions are they?
> bison --version
> flex --version
> gperf --version

FYI, flex comes from mingw-get (after updating & upgrading so I suppose it
should be up-to-date).
bison and gperf have been built using mxe as build-bison and build-gperf


Philip@DeskPRN ~/octave
$ bison --version
bison (GNU Bison) 2.7.12-4996
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

Philip@DeskPRN ~/octave
$ flex --version
flex 2.5.35

Philip@DeskPRN ~/octave
$ gperf --version
GNU gperf 3.0.4
Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Douglas C. Schmidt and Bruno Haible.

-------------


Ok - I mentioned in a  previous email the other day about bison that gets
built with mxe - at least in native mingw - not sure of why it doesn't work,
but the fix is:

Delete usr/bin/bison.exe from the mxe build
Run Mingw-get install msys-bison  to get the msys version of bison
Bison --version should the give 2.4.2
Rerun the configure and make again



Reply | Threaded
Open this post in threaded view
|

Re: Building Octave w MXE-built dependencies (2)

PhilipNienhuis
John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 9:14 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 8:49 AM
>> To: John D
>> Cc: John W. Eaton; Octave Maintainers List
>> Subject: Building Octave w MXE-built dependencies (2)
>>
>>> John D, did I read you correctly that:
>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>> can
>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>> paths that may help.
>>>> I created it for compiling the octave_hg versions of code in mingw
>>>> after having a working mxe-octave.
>>>> It isn't much use for anything except for native mingw builds.
>>> ... that script is meant to aid exactly that purpose?
>>>
>>> Yes the script is for that - I have successfully built octave checked
>>> out from octave hg a few times now.
>>> All you need to do is check out the sources, source the
>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>> like you normally would have to on a unix system.
>>>
>>> It will build octave, but fail at generating all the documentation,
>>> but the ./run-octave script in the build directory will run the
>>> latest and greatest from the octave hg repo!
>>
>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>> building the
>> parser:
>>
>> :
>> /bin/sh ../../octave/build-aux/ylwrap
>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>> parse-tree/lex.cc
>> -- flex -I -I
>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>> ../../octave/libinterp/parse-tree/octave.gperf>
>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>> parse-tree/oct-gperf.h-t1>  parse-tree/oct-gperf.h-t mv
>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
> parse-tree/oct-gperf.h-t1 case "" in \
>>              *quote*) quote='"' ;; \
>>              *) quote="" ;; \
>>            esac; \
>>            case "" in \
>>              *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;;
> \
>>              *underscore*) decl="%define api.push_pull
>> ${quote}both${quote}"; ;; \
>>            esac; \
>>            /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>
>>
>> I've experimented a bit but I couldn't spot where the offending "-dv"
>> came from.
>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>
>> Any suggestions?
>>
>> Philip
>>
>> -------------
>>
>> Not sure if it has anything to do with it, but when running each of
>> the following, what versions are they?
>> bison --version
>> flex --version
>> gperf --version
>
> FYI, flex comes from mingw-get (after updating&  upgrading so I suppose it
> should be up-to-date).
> bison and gperf have been built using mxe as build-bison and build-gperf
>
>
> Philip@DeskPRN ~/octave
> $ bison --version
> bison (GNU Bison) 2.7.12-4996
> Written by Robert Corbett and Richard Stallman.
>
> Copyright (C) 2013 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is
> NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
>
> Philip@DeskPRN ~/octave
> $ flex --version
> flex 2.5.35
>
> Philip@DeskPRN ~/octave
> $ gperf --version
> GNU gperf 3.0.4
> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Douglas C. Schmidt and Bruno Haible.
>
> -------------
<John D:>
>
> Ok - I mentioned in a  previous email the other day about bison that gets
> built with mxe - at least in native mingw - not sure of why it doesn't work,
> but the fix is:
>
> Delete usr/bin/bison.exe from the mxe build
> Run Mingw-get install msys-bison  to get the msys version of bison
> Bison --version should the give 2.4.2
> Rerun the configure and make again

Thanks for this suggestion, worth a try.

Interestingly, bison was already installed:

mingw-get.exe: *** ERROR *** package
bison-2.4.2-1-msys-1.0.13-bin.tar.lzma is already installed

... happened maybe while installing the mingw build tools during mingw
installation proper.

Made me wonder why the build from within mxe works OK, but not from
outside... I think that initially msys-bison was earlier in the PATH so
mxe used it anyway. However, running "source set_mxe_env.sh" has put it
after the mxe-built bison.
So maybe the line in tools/set_mxe_env.sh.in should read:

export PATH=$PATH:"$MXEDIR/usr/$HOST/bin:$MXEDIR/usr/bin"

??

Philip
Reply | Threaded
Open this post in threaded view
|

RE: Building Octave w MXE-built dependencies (2)

John Donoghue-3


-----Original Message-----
From: Philip Nienhuis [mailto:[hidden email]]
Sent: Friday, June 21, 2013 10:00 AM
To: John D
Cc: 'John W. Eaton'; 'Octave Maintainers List'
Subject: Re: Building Octave w MXE-built dependencies (2)

John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 9:14 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 8:49 AM
>> To: John D
>> Cc: John W. Eaton; Octave Maintainers List
>> Subject: Building Octave w MXE-built dependencies (2)
>>
>>> John D, did I read you correctly that:
>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>> can
>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>> paths that may help.
>>>> I created it for compiling the octave_hg versions of code in mingw
>>>> after having a working mxe-octave.
>>>> It isn't much use for anything except for native mingw builds.
>>> ... that script is meant to aid exactly that purpose?
>>>
>>> Yes the script is for that - I have successfully built octave
>>> checked out from octave hg a few times now.
>>> All you need to do is check out the sources, source the
>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>> like you normally would have to on a unix system.
>>>
>>> It will build octave, but fail at generating all the documentation,
>>> but the ./run-octave script in the build directory will run the
>>> latest and greatest from the octave hg repo!
>>
>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>> building the
>> parser:
>>
>> :
>> /bin/sh ../../octave/build-aux/ylwrap
>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>> parse-tree/lex.cc
>> -- flex -I -I
>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>> ../../octave/libinterp/parse-tree/octave.gperf>
>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>> parse-tree/oct-gperf.h-t1>  parse-tree/oct-gperf.h-t mv
>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
> parse-tree/oct-gperf.h-t1 case "" in \
>>              *quote*) quote='"' ;; \
>>              *) quote="" ;; \
>>            esac; \
>>            case "" in \
>>              *dash*) decl="%define api.push-pull
>> ${quote}both${quote}"; ;;
> \
>>              *underscore*) decl="%define api.push_pull
>> ${quote}both${quote}"; ;; \
>>            esac; \
>>            /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>
>>
>> I've experimented a bit but I couldn't spot where the offending "-dv"
>> came from.
>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>
>> Any suggestions?
>>
>> Philip
>>
>> -------------
>>
>> Not sure if it has anything to do with it, but when running each of
>> the following, what versions are they?
>> bison --version
>> flex --version
>> gperf --version
>
> FYI, flex comes from mingw-get (after updating&  upgrading so I
> suppose it should be up-to-date).
> bison and gperf have been built using mxe as build-bison and
> build-gperf
>
>
> Philip@DeskPRN ~/octave
> $ bison --version
> bison (GNU Bison) 2.7.12-4996
> Written by Robert Corbett and Richard Stallman.
>
> Copyright (C) 2013 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There
> is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
>
> Philip@DeskPRN ~/octave
> $ flex --version
> flex 2.5.35
>
> Philip@DeskPRN ~/octave
> $ gperf --version
> GNU gperf 3.0.4
> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation,
Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Douglas C. Schmidt and Bruno Haible.
>
> -------------
<John D:>
>
> Ok - I mentioned in a  previous email the other day about bison that
> gets built with mxe - at least in native mingw - not sure of why it
> doesn't work, but the fix is:
>
> Delete usr/bin/bison.exe from the mxe build Run Mingw-get install
> msys-bison  to get the msys version of bison Bison --version should
> the give 2.4.2 Rerun the configure and make again

Thanks for this suggestion, worth a try.

Interestingly, bison was already installed:

mingw-get.exe: *** ERROR *** package
bison-2.4.2-1-msys-1.0.13-bin.tar.lzma is already installed

... happened maybe while installing the mingw build tools during mingw
installation proper.

Made me wonder why the build from within mxe works OK, but not from
outside... I think that initially msys-bison was earlier in the PATH so mxe
used it anyway. However, running "source set_mxe_env.sh" has put it after
the mxe-built bison.
So maybe the line in tools/set_mxe_env.sh.in should read:

export PATH=$PATH:"$MXEDIR/usr/$HOST/bin:$MXEDIR/usr/bin"

??

Philip

-----

I believe the mxe distribution has already generated the files that bison
etc generates so works ok.
Perhaps the better way will be to not generate a bison that doesn't work for
the native mingw (or make it so it does work :) )
I recall reading a bug report somewhere on newer versions of bison breaking
the configure detection - I don't know if that's the issue here, and whether
that previous issue was fixed.

Reply | Threaded
Open this post in threaded view
|

Re: Building Octave w MXE-built dependencies (2)

PhilipNienhuis
In reply to this post by John Donoghue-3
John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 9:14 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 8:49 AM
>> To: John D
>> Cc: John W. Eaton; Octave Maintainers List
>> Subject: Building Octave w MXE-built dependencies (2)
>>
>>> John D, did I read you correctly that:
>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>> can
>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>> paths that may help.
>>>> I created it for compiling the octave_hg versions of code in mingw
>>>> after having a working mxe-octave.
>>>> It isn't much use for anything except for native mingw builds.
>>> ... that script is meant to aid exactly that purpose?
>>>
>>> Yes the script is for that - I have successfully built octave checked
>>> out from octave hg a few times now.
>>> All you need to do is check out the sources, source the
>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>> like you normally would have to on a unix system.
>>>
>>> It will build octave, but fail at generating all the documentation,
>>> but the ./run-octave script in the build directory will run the
>>> latest and greatest from the octave hg repo!
>>
>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>> building the
>> parser:
>>
>> :
>> /bin/sh ../../octave/build-aux/ylwrap
>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>> parse-tree/lex.cc
>> -- flex -I -I
>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>> ../../octave/libinterp/parse-tree/octave.gperf>
>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>> parse-tree/oct-gperf.h-t1>  parse-tree/oct-gperf.h-t mv
>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
> parse-tree/oct-gperf.h-t1 case "" in \
>>              *quote*) quote='"' ;; \
>>              *) quote="" ;; \
>>            esac; \
>>            case "" in \
>>              *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;;
> \
>>              *underscore*) decl="%define api.push_pull
>> ${quote}both${quote}"; ;; \
>>            esac; \
>>            /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>
>>
>> I've experimented a bit but I couldn't spot where the offending "-dv"
>> came from.
>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>
>> Any suggestions?
>>
>> Philip
>>
>> -------------
>>
>> Not sure if it has anything to do with it, but when running each of
>> the following, what versions are they?
>> bison --version
>> flex --version
>> gperf --version
>
> FYI, flex comes from mingw-get (after updating&  upgrading so I suppose it
> should be up-to-date).
> bison and gperf have been built using mxe as build-bison and build-gperf
>
>
> Philip@DeskPRN ~/octave
> $ bison --version
> bison (GNU Bison) 2.7.12-4996
> Written by Robert Corbett and Richard Stallman.
>
> Copyright (C) 2013 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is
> NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
>
> Philip@DeskPRN ~/octave
> $ flex --version
> flex 2.5.35
>
> Philip@DeskPRN ~/octave
> $ gperf --version
> GNU gperf 3.0.4
> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Douglas C. Schmidt and Bruno Haible.
>
> -------------
>
>
> Ok - I mentioned in a  previous email the other day about bison that gets
> built with mxe - at least in native mingw - not sure of why it doesn't work,
> but the fix is:
>
> Delete usr/bin/bison.exe from the mxe build
> Run Mingw-get install msys-bison  to get the msys version of bison
> Bison --version should the give 2.4.2
> Rerun the configure and make again

Gives this:

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../../octave/libinterp -I..
-I../../octave/liboctave/cruft/misc -I../../octave/liboctave/array
-I../liboctave/numeric -I../../octave/liboctave/numeric -I..
/liboctave/operators -I../../octave/liboctave/operators
-I../../octave/liboctave/system -I../../octave/liboctave/util
-I../../octave/libinterp/octave-value -I../../octave/libinterp/operators
-Iparse-tree -I../../octave/libinterp/parse-tree -Iinterp-core
-I../../octave/libinterp/interp-core -Iinterpfcn
-I../../octave/libinterp/interpfcn -Icorefcn -I../libgnu
-I../../octave/libgnu
-I/home/Philip/mxe-octave/usr/i686-pc-mingw32/include -mieee-fp
-I/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include/freetype2
-IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-Wall -W -Wshadow -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align
-Wcast-qual -g -O2 -pthread -MT
parse-tree/parse_tree_libparser_la-oct-parse.lo -MD -MP -MF parse-tree/.d
eps/parse_tree_libparser_la-oct-parse.Tpo -c parse-tree/oct-parse.cc
-DDLL_EXPORT -DPIC -o parse-tree/.libs/parse_tree_libparser_la-oct-parse.o
oct-parse.yy: In destructor 'octave_push_parser::~octave_push_parser()':
oct-parse.yy:3208:32: error: expected type-specifier before 'yypstate'
oct-parse.yy:3208:32: error: expected '>' before 'yypstate'
oct-parse.yy:3208:32: error: expected '(' before 'yypstate'
oct-parse.yy:3208:32: error: 'yypstate' was not declared in this scope
oct-parse.yy:3208:42: error: expected primary-expression before '>' token
oct-parse.yy: In member function 'void octave_push_parser::init()':
oct-parse.yy:3214:32: error: 'yypstate_new' was not declared in this scope
oct-parse.yy: In member function 'int octave_push_parser::run(const
string&, bool)':
oct-parse.yy:3244:7: error: 'yypstate' was not declared in this scope
oct-parse.yy:3244:17: error: 'pstate' was not declared in this scope
oct-parse.yy:3244:38: error: expected type-specifier before 'yypstate'
oct-parse.yy:3244:38: error: expected '>' before 'yypstate'
oct-parse.yy:3244:38: error: expected '(' before 'yypstate'
oct-parse.yy:3244:48: error: expected primary-expression before '>' token
oct-parse.yy:3244:64: error: expected ')' before ';' token
oct-parse.yy:3246:62: error: 'octave_push_parse' was not declared in
this scope
oct-parse.yy:3248:20: error: 'YYPUSH_MORE' was not declared in this scope
make[3]: *** [parse-tree/parse_tree_libparser_la-oct-parse.lo] Error 1
make[3]: Leaving directory `/home/Philip/oct375/libinterp'


On the bright side:
I just found that on MinGW you can actually spawn multiple make jobs,
once the Octave build gets beyond the initial stuff (what looks to me
like Fortran). Just Ctrl-C and re-start with e.g., "make -j2".

Philip
Reply | Threaded
Open this post in threaded view
|

RE: Building Octave w MXE-built dependencies (2)

John Donoghue-3
Did you rerun configure before make?

-----Original Message-----
From: Philip Nienhuis [mailto:[hidden email]]
Sent: Friday, June 21, 2013 10:36 AM
To: John D
Cc: 'John W. Eaton'; 'Octave Maintainers List'
Subject: Re: Building Octave w MXE-built dependencies (2)

John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 9:14 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 8:49 AM
>> To: John D
>> Cc: John W. Eaton; Octave Maintainers List
>> Subject: Building Octave w MXE-built dependencies (2)
>>
>>> John D, did I read you correctly that:
>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>> can
>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>> paths that may help.
>>>> I created it for compiling the octave_hg versions of code in mingw
>>>> after having a working mxe-octave.
>>>> It isn't much use for anything except for native mingw builds.
>>> ... that script is meant to aid exactly that purpose?
>>>
>>> Yes the script is for that - I have successfully built octave
>>> checked out from octave hg a few times now.
>>> All you need to do is check out the sources, source the
>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>> like you normally would have to on a unix system.
>>>
>>> It will build octave, but fail at generating all the documentation,
>>> but the ./run-octave script in the build directory will run the
>>> latest and greatest from the octave hg repo!
>>
>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>> building the
>> parser:
>>
>> :
>> /bin/sh ../../octave/build-aux/ylwrap
>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>> parse-tree/lex.cc
>> -- flex -I -I
>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>> ../../octave/libinterp/parse-tree/octave.gperf>
>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>> parse-tree/oct-gperf.h-t1>  parse-tree/oct-gperf.h-t mv
>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
> parse-tree/oct-gperf.h-t1 case "" in \
>>              *quote*) quote='"' ;; \
>>              *) quote="" ;; \
>>            esac; \
>>            case "" in \
>>              *dash*) decl="%define api.push-pull
>> ${quote}both${quote}"; ;;
> \
>>              *underscore*) decl="%define api.push_pull
>> ${quote}both${quote}"; ;; \
>>            esac; \
>>            /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>
>>
>> I've experimented a bit but I couldn't spot where the offending "-dv"
>> came from.
>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>
>> Any suggestions?
>>
>> Philip
>>
>> -------------
>>
>> Not sure if it has anything to do with it, but when running each of
>> the following, what versions are they?
>> bison --version
>> flex --version
>> gperf --version
>
> FYI, flex comes from mingw-get (after updating&  upgrading so I
> suppose it should be up-to-date).
> bison and gperf have been built using mxe as build-bison and
> build-gperf
>
>
> Philip@DeskPRN ~/octave
> $ bison --version
> bison (GNU Bison) 2.7.12-4996
> Written by Robert Corbett and Richard Stallman.
>
> Copyright (C) 2013 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There
> is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
>
> Philip@DeskPRN ~/octave
> $ flex --version
> flex 2.5.35
>
> Philip@DeskPRN ~/octave
> $ gperf --version
> GNU gperf 3.0.4
> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation,
Inc.

> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Douglas C. Schmidt and Bruno Haible.
>
> -------------
>
>
> Ok - I mentioned in a  previous email the other day about bison that
> gets built with mxe - at least in native mingw - not sure of why it
> doesn't work, but the fix is:
>
> Delete usr/bin/bison.exe from the mxe build Run Mingw-get install
> msys-bison  to get the msys version of bison Bison --version should
> the give 2.4.2 Rerun the configure and make again

Gives this:

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../../octave/libinterp -I..
-I../../octave/liboctave/cruft/misc -I../../octave/liboctave/array
-I../liboctave/numeric -I../../octave/liboctave/numeric -I..
/liboctave/operators -I../../octave/liboctave/operators
-I../../octave/liboctave/system -I../../octave/liboctave/util
-I../../octave/libinterp/octave-value -I../../octave/libinterp/operators
-Iparse-tree -I../../octave/libinterp/parse-tree -Iinterp-core
-I../../octave/libinterp/interp-core -Iinterpfcn
-I../../octave/libinterp/interpfcn -Icorefcn -I../libgnu
-I../../octave/libgnu -I/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-mieee-fp -I/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include/freet
ype2
-IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
-Wall -W -Wshadow -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align
-Wcast-qual -g -O2 -pthread -MT
parse-tree/parse_tree_libparser_la-oct-parse.lo -MD -MP -MF parse-tree/.d
eps/parse_tree_libparser_la-oct-parse.Tpo -c parse-tree/oct-parse.cc
-DDLL_EXPORT -DPIC -o parse-tree/.libs/parse_tree_libparser_la-oct-parse.o
oct-parse.yy: In destructor 'octave_push_parser::~octave_push_parser()':
oct-parse.yy:3208:32: error: expected type-specifier before 'yypstate'
oct-parse.yy:3208:32: error: expected '>' before 'yypstate'
oct-parse.yy:3208:32: error: expected '(' before 'yypstate'
oct-parse.yy:3208:32: error: 'yypstate' was not declared in this scope
oct-parse.yy:3208:42: error: expected primary-expression before '>' token
oct-parse.yy: In member function 'void octave_push_parser::init()':
oct-parse.yy:3214:32: error: 'yypstate_new' was not declared in this scope
oct-parse.yy: In member function 'int octave_push_parser::run(const string&,
bool)':
oct-parse.yy:3244:7: error: 'yypstate' was not declared in this scope
oct-parse.yy:3244:17: error: 'pstate' was not declared in this scope
oct-parse.yy:3244:38: error: expected type-specifier before 'yypstate'
oct-parse.yy:3244:38: error: expected '>' before 'yypstate'
oct-parse.yy:3244:38: error: expected '(' before 'yypstate'
oct-parse.yy:3244:48: error: expected primary-expression before '>' token
oct-parse.yy:3244:64: error: expected ')' before ';' token
oct-parse.yy:3246:62: error: 'octave_push_parse' was not declared in this
scope
oct-parse.yy:3248:20: error: 'YYPUSH_MORE' was not declared in this scope
make[3]: *** [parse-tree/parse_tree_libparser_la-oct-parse.lo] Error 1
make[3]: Leaving directory `/home/Philip/oct375/libinterp'


On the bright side:
I just found that on MinGW you can actually spawn multiple make jobs, once
the Octave build gets beyond the initial stuff (what looks to me like
Fortran). Just Ctrl-C and re-start with e.g., "make -j2".

Philip

-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2013.0.2904 / Virus Database: 3199/6406 - Release Date: 06/12/13
Internal Virus Database is out of date.

Reply | Threaded
Open this post in threaded view
|

Re: Building Octave w MXE-built dependencies (2)

PhilipNienhuis
John D wrote:

> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 10:36 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 9:14 AM
>> To: John D
>> Cc: 'John W. Eaton'; 'Octave Maintainers List'
>> Subject: Re: Building Octave w MXE-built dependencies (2)
>>
>> John D wrote:
>>>
>>>
>>> -----Original Message-----
>>> From: Philip Nienhuis [mailto:[hidden email]]
>>> Sent: Friday, June 21, 2013 8:49 AM
>>> To: John D
>>> Cc: John W. Eaton; Octave Maintainers List
>>> Subject: Building Octave w MXE-built dependencies (2)
>>>
>>>> John D, did I read you correctly that:
>>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>>> can
>>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>>> paths that may help.
>>>>> I created it for compiling the octave_hg versions of code in mingw
>>>>> after having a working mxe-octave.
>>>>> It isn't much use for anything except for native mingw builds.
>>>> ... that script is meant to aid exactly that purpose?
>>>>
>>>> Yes the script is for that - I have successfully built octave
>>>> checked out from octave hg a few times now.
>>>> All you need to do is check out the sources, source the
>>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>>> like you normally would have to on a unix system.
>>>>
>>>> It will build octave, but fail at generating all the documentation,
>>>> but the ./run-octave script in the build directory will run the
>>>> latest and greatest from the octave hg repo!
>>>
>>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>>> building the
>>> parser:
>>>
>>> :
>>> /bin/sh ../../octave/build-aux/ylwrap
>>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>>> parse-tree/lex.cc
>>> -- flex -I -I
>>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>>> ../../octave/libinterp/parse-tree/octave.gperf>
>>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>>> parse-tree/oct-gperf.h-t1>   parse-tree/oct-gperf.h-t mv
>>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
>> parse-tree/oct-gperf.h-t1 case "" in \
>>>               *quote*) quote='"' ;; \
>>>               *) quote="" ;; \
>>>             esac; \
>>>             case "" in \
>>>               *dash*) decl="%define api.push-pull
>>> ${quote}both${quote}"; ;;
>> \
>>>               *underscore*) decl="%define api.push_pull
>>> ${quote}both${quote}"; ;; \
>>>             esac; \
>>>             /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>>
>>>
>>> I've experimented a bit but I couldn't spot where the offending "-dv"
>>> came from.
>>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>>
>>> Any suggestions?
>>>
>>> Philip
>>>
>>> -------------
>>>
>>> Not sure if it has anything to do with it, but when running each of
>>> the following, what versions are they?
>>> bison --version
>>> flex --version
>>> gperf --version
>>
>> FYI, flex comes from mingw-get (after updating&   upgrading so I
>> suppose it should be up-to-date).
>> bison and gperf have been built using mxe as build-bison and
>> build-gperf
>>
>>
>> Philip@DeskPRN ~/octave
>> $ bison --version
>> bison (GNU Bison) 2.7.12-4996
>> Written by Robert Corbett and Richard Stallman.
>>
>> Copyright (C) 2013 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.  There
>> is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
>> PARTICULAR PURPOSE.
>>
>> Philip@DeskPRN ~/octave
>> $ flex --version
>> flex 2.5.35
>>
>> Philip@DeskPRN ~/octave
>> $ gperf --version
>> GNU gperf 3.0.4
>> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation,
> Inc.
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> Written by Douglas C. Schmidt and Bruno Haible.
>>
>> -------------
>>
>>
>> Ok - I mentioned in a  previous email the other day about bison that
>> gets built with mxe - at least in native mingw - not sure of why it
>> doesn't work, but the fix is:
>>
>> Delete usr/bin/bison.exe from the mxe build Run Mingw-get install
>> msys-bison  to get the msys version of bison Bison --version should
>> the give 2.4.2 Rerun the configure and make again
>
> Gives this:
>
> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../../octave/libinterp -I..
> -I../../octave/liboctave/cruft/misc -I../../octave/liboctave/array
> -I../liboctave/numeric -I../../octave/liboctave/numeric -I..
> /liboctave/operators -I../../octave/liboctave/operators
> -I../../octave/liboctave/system -I../../octave/liboctave/util
> -I../../octave/libinterp/octave-value -I../../octave/libinterp/operators
> -Iparse-tree -I../../octave/libinterp/parse-tree -Iinterp-core
> -I../../octave/libinterp/interp-core -Iinterpfcn
> -I../../octave/libinterp/interpfcn -Icorefcn -I../libgnu
> -I../../octave/libgnu -I/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
> -mieee-fp -I/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
> -IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include/freet
> ype2
> -IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
> -IX:/MinGW/msys/1.0/home/Philip/mxe-octave/usr/i686-pc-mingw32/include
> -Wall -W -Wshadow -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align
> -Wcast-qual -g -O2 -pthread -MT
> parse-tree/parse_tree_libparser_la-oct-parse.lo -MD -MP -MF parse-tree/.d
> eps/parse_tree_libparser_la-oct-parse.Tpo -c parse-tree/oct-parse.cc
> -DDLL_EXPORT -DPIC -o parse-tree/.libs/parse_tree_libparser_la-oct-parse.o
> oct-parse.yy: In destructor 'octave_push_parser::~octave_push_parser()':
> oct-parse.yy:3208:32: error: expected type-specifier before 'yypstate'
> oct-parse.yy:3208:32: error: expected '>' before 'yypstate'
> oct-parse.yy:3208:32: error: expected '(' before 'yypstate'
> oct-parse.yy:3208:32: error: 'yypstate' was not declared in this scope
> oct-parse.yy:3208:42: error: expected primary-expression before '>' token
> oct-parse.yy: In member function 'void octave_push_parser::init()':
> oct-parse.yy:3214:32: error: 'yypstate_new' was not declared in this scope
> oct-parse.yy: In member function 'int octave_push_parser::run(const string&,
> bool)':
> oct-parse.yy:3244:7: error: 'yypstate' was not declared in this scope
> oct-parse.yy:3244:17: error: 'pstate' was not declared in this scope
> oct-parse.yy:3244:38: error: expected type-specifier before 'yypstate'
> oct-parse.yy:3244:38: error: expected '>' before 'yypstate'
> oct-parse.yy:3244:38: error: expected '(' before 'yypstate'
> oct-parse.yy:3244:48: error: expected primary-expression before '>' token
> oct-parse.yy:3244:64: error: expected ')' before ';' token
> oct-parse.yy:3246:62: error: 'octave_push_parse' was not declared in this
> scope
> oct-parse.yy:3248:20: error: 'YYPUSH_MORE' was not declared in this scope
> make[3]: *** [parse-tree/parse_tree_libparser_la-oct-parse.lo] Error 1
> make[3]: Leaving directory `/home/Philip/oct375/libinterp'

 > Did you rerun configure before make?

Yes.
I just started over with a clean (empty) build dir. Maybe that will help.

P.
Reply | Threaded
Open this post in threaded view
|

Success [WAS: Building Octave w MXE-built dependencies (2)]

PhilipNienhuis
In reply to this post by John Donoghue-3
John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 9:14 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 8:49 AM
>> To: John D
>> Cc: John W. Eaton; Octave Maintainers List
>> Subject: Building Octave w MXE-built dependencies (2)
>>
>>> John D, did I read you correctly that:
>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>> can
>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>> paths that may help.
>>>> I created it for compiling the octave_hg versions of code in mingw
>>>> after having a working mxe-octave.
>>>> It isn't much use for anything except for native mingw builds.
>>> ... that script is meant to aid exactly that purpose?
>>>
>>> Yes the script is for that - I have successfully built octave checked
>>> out from octave hg a few times now.
>>> All you need to do is check out the sources, source the
>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>> like you normally would have to on a unix system.
>>>
>>> It will build octave, but fail at generating all the documentation,
>>> but the ./run-octave script in the build directory will run the
>>> latest and greatest from the octave hg repo!
>>
>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>> building the
>> parser:
>>
>> :
>> /bin/sh ../../octave/build-aux/ylwrap
>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>> parse-tree/lex.cc
>> -- flex -I -I
>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>> ../../octave/libinterp/parse-tree/octave.gperf>
>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>> parse-tree/oct-gperf.h-t1>  parse-tree/oct-gperf.h-t mv
>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
> parse-tree/oct-gperf.h-t1 case "" in \
>>              *quote*) quote='"' ;; \
>>              *) quote="" ;; \
>>            esac; \
>>            case "" in \
>>              *dash*) decl="%define api.push-pull ${quote}both${quote}"; ;;
> \
>>              *underscore*) decl="%define api.push_pull
>> ${quote}both${quote}"; ;; \
>>            esac; \
>>            /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>
>>
>> I've experimented a bit but I couldn't spot where the offending "-dv"
>> came from.
>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>
>> Any suggestions?
>>
>> Philip
>>
>> -------------
>>
>> Not sure if it has anything to do with it, but when running each of
>> the following, what versions are they?
>> bison --version
>> flex --version
>> gperf --version
>
> FYI, flex comes from mingw-get (after updating&  upgrading so I suppose it
> should be up-to-date).
> bison and gperf have been built using mxe as build-bison and build-gperf
>
>
> Philip@DeskPRN ~/octave
> $ bison --version
> bison (GNU Bison) 2.7.12-4996
> Written by Robert Corbett and Richard Stallman.
>
> Copyright (C) 2013 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is
> NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
>
> Philip@DeskPRN ~/octave
> $ flex --version
> flex 2.5.35
>
> Philip@DeskPRN ~/octave
> $ gperf --version
> GNU gperf 3.0.4
> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Douglas C. Schmidt and Bruno Haible.
>
> -------------
>
>
> Ok - I mentioned in a  previous email the other day about bison that gets
> built with mxe - at least in native mingw - not sure of why it doesn't work,
> but the fix is:
>
> Delete usr/bin/bison.exe from the mxe build
> Run Mingw-get install msys-bison  to get the msys version of bison
> Bison --version should the give 2.4.2
> Rerun the configure and make again

OK, after starting in a new empty build dir and then rerunning configure
& make, the build completes, that is, with having to finally run make -i
due to missing tex.

make -i check:

   PASS     10872
   FAIL        11
   XFAIL        4
   SKIPPED     19

AFAICS the 11 FAILs contain the usual MinGW-specific ones:

- data.cc-tst: Inf vs Nan) (3 X)
- stemleaf "epstool binary is not available ... etc"
- speed.m "All running times were zero"
- error.tst "dir2: No such file or directory"
- system.tst "expected ---------- but got -r--r--r--"
and
- quadgk.m "max_recursion_depth exceeded" - ???
- bug-38236.tst "vr' undefined near line 1 column 36" (also fails on Linux)
- bug-38691.tst "expected 1 but got 0" - I'll investigate
- bug-38576.tst "ls: command exited abnormally with status 127" (looks
MinGW-specific as well)

make -j1 is required initially, once the build has gone past 'cruft' one
can interrupt and restart with make -j2 (or whatever nr of CPU cores
available). (Don't ask why - it just works)

Philip
Reply | Threaded
Open this post in threaded view
|

RE: Success [WAS: Building Octave w MXE-built dependencies (2)]

John Donoghue-3


-----Original Message-----
From: Philip Nienhuis [mailto:[hidden email]]
Sent: Friday, June 21, 2013 4:59 PM
To: John D
Cc: 'John W. Eaton'; 'Octave Maintainers List'
Subject: Success [WAS: Building Octave w MXE-built dependencies (2)]

John D wrote:

>
>
> -----Original Message-----
> From: Philip Nienhuis [mailto:[hidden email]]
> Sent: Friday, June 21, 2013 9:14 AM
> To: John D
> Cc: 'John W. Eaton'; 'Octave Maintainers List'
> Subject: Re: Building Octave w MXE-built dependencies (2)
>
> John D wrote:
>>
>>
>> -----Original Message-----
>> From: Philip Nienhuis [mailto:[hidden email]]
>> Sent: Friday, June 21, 2013 8:49 AM
>> To: John D
>> Cc: John W. Eaton; Octave Maintainers List
>> Subject: Building Octave w MXE-built dependencies (2)
>>
>>> John D, did I read you correctly that:
>>>> Also, just for info, I created a script in tools/set_mxe_env.sh you
>>>> can
>>> run as source tools/set_mxe_env.sh, that sets all the bin/lib/config
>>> paths that may help.
>>>> I created it for compiling the octave_hg versions of code in mingw
>>>> after having a working mxe-octave.
>>>> It isn't much use for anything except for native mingw builds.
>>> ... that script is meant to aid exactly that purpose?
>>>
>>> Yes the script is for that - I have successfully built octave
>>> checked out from octave hg a few times now.
>>> All you need to do is check out the sources, source the
>>> set_mxe_env.sh script, and then run run bootstrap, configure, make
>>> like you normally would have to on a unix system.
>>>
>>> It will build octave, but fail at generating all the documentation,
>>> but the ./run-octave script in the build directory will run the
>>> latest and greatest from the octave hg repo!
>>
>> Here a fresh clone (parent: 16793:cc1657be1ee7 tip) fails while
>> building the
>> parser:
>>
>> :
>> /bin/sh ../../octave/build-aux/ylwrap
>> ../../octave/libinterp/parse-tree/lex.ll lex.octave_.c
>> parse-tree/lex.cc
>> -- flex -I -I
>> gperf -t -C -D -G -L C++ -Z octave_kw_hash
>> ../../octave/libinterp/parse-tree/octave.gperf>
>> parse-tree/oct-gperf.h-t1 /bin/sed 's,lookup\[,gperf_lookup[,'<
>> parse-tree/oct-gperf.h-t1>  parse-tree/oct-gperf.h-t mv
>> parse-tree/oct-gperf.h-t parse-tree/oct-gperf.h rm -f
> parse-tree/oct-gperf.h-t1 case "" in \
>>              *quote*) quote='"' ;; \
>>              *) quote="" ;; \
>>            esac; \
>>            case "" in \
>>              *dash*) decl="%define api.push-pull
>> ${quote}both${quote}"; ;;
> \
>>              *underscore*) decl="%define api.push_pull
>> ${quote}both${quote}"; ;; \
>>            esac; \
>>            /bin/sed "s/%PUSH_PULL_DECL%/$decl/"
>> ../../octave/libinterp/parse-tree/oct-parse.in.yy>
>> parse-tree/oct-parse.yy-t mv parse-tree/oct-parse.yy-t
>> parse-tree/oct-parse.yy /bin/sh ../../octave/build-aux/ylwrap
>> parse-tree/oct-parse.yy y.tab.c parse-tree/oct-parse.cc y.tab.
>> h parse-tree/oct-parse.h y.output parse-tree/oct-parse.output --   -dv
>> ../../octave/build-aux/ylwrap: line 108: -dv: command not found
>> make[2]: *** [parse-tree/oct-parse.cc] Error 1
>>
>>
>> I've experimented a bit but I couldn't spot where the offending "-dv"
>> came from.
>> The isolated "--" comes from libinterp/Makefile (L. 9053).
>>
>> Any suggestions?
>>
>> Philip
>>
>> -------------
>>
>> Not sure if it has anything to do with it, but when running each of
>> the following, what versions are they?
>> bison --version
>> flex --version
>> gperf --version
>
> FYI, flex comes from mingw-get (after updating&  upgrading so I
> suppose it should be up-to-date).
> bison and gperf have been built using mxe as build-bison and
> build-gperf
>
>
> Philip@DeskPRN ~/octave
> $ bison --version
> bison (GNU Bison) 2.7.12-4996
> Written by Robert Corbett and Richard Stallman.
>
> Copyright (C) 2013 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There
> is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
>
> Philip@DeskPRN ~/octave
> $ flex --version
> flex 2.5.35
>
> Philip@DeskPRN ~/octave
> $ gperf --version
> GNU gperf 3.0.4
> Copyright (C) 1989-1998, 2000-2004, 2006-2009 Free Software Foundation,
Inc.

> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Douglas C. Schmidt and Bruno Haible.
>
> -------------
>
>
> Ok - I mentioned in a  previous email the other day about bison that
> gets built with mxe - at least in native mingw - not sure of why it
> doesn't work, but the fix is:
>
> Delete usr/bin/bison.exe from the mxe build Run Mingw-get install
> msys-bison  to get the msys version of bison Bison --version should
> the give 2.4.2 Rerun the configure and make again

OK, after starting in a new empty build dir and then rerunning configure &
make, the build completes, that is, with having to finally run make -i due
to missing tex.

make -i check:

   PASS     10872
   FAIL        11
   XFAIL        4
   SKIPPED     19

AFAICS the 11 FAILs contain the usual MinGW-specific ones:

- data.cc-tst: Inf vs Nan) (3 X)
- stemleaf "epstool binary is not available ... etc"
- speed.m "All running times were zero"
- error.tst "dir2: No such file or directory"
- system.tst "expected ---------- but got -r--r--r--"
and
- quadgk.m "max_recursion_depth exceeded" - ???
- bug-38236.tst "vr' undefined near line 1 column 36" (also fails on Linux)
- bug-38691.tst "expected 1 but got 0" - I'll investigate
- bug-38576.tst "ls: command exited abnormally with status 127" (looks
MinGW-specific as well)

make -j1 is required initially, once the build has gone past 'cruft' one can
interrupt and restart with make -j2 (or whatever nr of CPU cores available).
(Don't ask why - it just works)

Philip

-----------------

Congratulations on a successful build!


Reply | Threaded
Open this post in threaded view
|

Building MXE w/ openblas

Stefan Mahr
In reply to this post by PhilipNienhuis
Hi John,

could you check the install dependencies for openblas? Since you set
NO_LAPACK=1 only for compiling, 'make install' tries to install from
lapack-3.x.x and not from the included 'lapack' directory.

Stefan


------------------------------------------

diff -r 9c56d108c141 src/openblas.mk
--- a/src/openblas.mk Sat Jun 22 13:19:20 2013 -0400
+++ b/src/openblas.mk Sun Jun 23 11:59:27 2013 +0200
@@ -28,7 +28,7 @@

 define $(PKG)_BUILD
     $(MAKE) -C '$(1)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)
-    $(MAKE) -C '$(1)' -j 1 PREFIX='$(HOST_PREFIX)' install
+    $(MAKE) -C '$(1)' -j 1 PREFIX='$(HOST_PREFIX)' $($(PKG)_MAKE_OPTS)
install
     if [ $(BUILD_SHARED) = yes ]; then \
       $(INSTALL) $(HOST_LIBDIR)/libopenblas.dll $(HOST_BINDIR)/; \
     fi
Reply | Threaded
Open this post in threaded view
|

Building MXE / nettle

Stefan Mahr
Hi Michael,

'nettle' fails to build for mingw builds, since you introduced a new
variable 'CCAS' that not exist. The patch below works as temporary solution.

Stefan

------------------------------------------
--- a/src/nettle.mk Sat Jun 22 13:19:20 2013 -0400
+++ b/src/nettle.mk Sun Jun 23 13:11:24 2013 +0200
@@ -45,7 +45,7 @@
     cd '$(1)' && ./configure \
         $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
         $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
-        $(ENABLE_SHARED_OR_STATIC) \
+        $(ENABLE_SHARED_OR_STATIC) CCAS=$(MXE_CC)\
         --prefix='$(HOST_PREFIX)'
     $(MAKE) -C '$(1)' -j '$(JOBS)' getopt.o getopt1.o
     $(MAKE) -C '$(1)' -j '$(JOBS)'
Reply | Threaded
Open this post in threaded view
|

Building MXE / suitesparse

Stefan Mahr
In reply to this post by Stefan Mahr
Hi John,

suitesparse.mk has a little typo, so it fails to build.

Stefan

------------------------------------------
diff -r 9c56d108c141 src/suitesparse.mk
--- a/src/suitesparse.mk Sat Jun 22 13:19:20 2013 -0400
+++ b/src/suitesparse.mk Sun Jun 23 13:29:55 2013 +0200
@@ -69,7 +69,7 @@
         deplibs=""; \
         case $$lib in \
           libcholmod) \
-            deplibs="-lamd -lcolamd -lsuitesparseconfig -llapack
-l$($PKG)_BLAS_LIB)"; \
+            deplibs="-lamd -lcolamd -lsuitesparseconfig -llapack
-l$($(PKG)_BLAS_LIB)"; \
           ;; \
           libklu) \
             deplibs="-lbtf -lamd -lcolamd -lsuitesparseconfig"; \

Reply | Threaded
Open this post in threaded view
|

Re: Building MXE / nettle

Michael Goffioul
In reply to this post by Stefan Mahr
On Sun, Jun 23, 2013 at 7:17 AM, Stefan Mahr <[hidden email]> wrote:
Hi Michael,

'nettle' fails to build for mingw builds, since you introduced a new
variable 'CCAS' that not exist. The patch below works as temporary solution.

Stefan

------------------------------------------
--- a/src/nettle.mk     Sat Jun 22 13:19:20 2013 -0400
+++ b/src/nettle.mk     Sun Jun 23 13:11:24 2013 +0200
@@ -45,7 +45,7 @@
     cd '$(1)' && ./configure \
         $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
         $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
-        $(ENABLE_SHARED_OR_STATIC) \
+        $(ENABLE_SHARED_OR_STATIC) CCAS=$(MXE_CC)\
         --prefix='$(HOST_PREFIX)'
     $(MAKE) -C '$(1)' -j '$(JOBS)' getopt.o getopt1.o
     $(MAKE) -C '$(1)' -j '$(JOBS)'

Could you be more specific which changeset broke compilation and under which system? I try to be careful not to interfere with the other build systems, but maybe I overlooked something.

Michael.

Reply | Threaded
Open this post in threaded view
|

Re: Building MXE / suitesparse

John Donoghue-3
In reply to this post by Stefan Mahr
On 06/23/2013 07:34 AM, Stefan Mahr wrote:

> Hi John,
>
> suitesparse.mk has a little typo, so it fails to build.
>
> Stefan
>
> ------------------------------------------
> diff -r 9c56d108c141 src/suitesparse.mk
> --- a/src/suitesparse.mk Sat Jun 22 13:19:20 2013 -0400
> +++ b/src/suitesparse.mk Sun Jun 23 13:29:55 2013 +0200
> @@ -69,7 +69,7 @@
>           deplibs=""; \
>           case $$lib in \
>             libcholmod) \
> -            deplibs="-lamd -lcolamd -lsuitesparseconfig -llapack
> -l$($PKG)_BLAS_LIB)"; \
> +            deplibs="-lamd -lcolamd -lsuitesparseconfig -llapack
> -l$($(PKG)_BLAS_LIB)"; \
>             ;; \
>             libklu) \
>               deplibs="-lbtf -lamd -lcolamd -lsuitesparseconfig"; \
>

Thanks - added changes http://hg.octave.org/mxe-octave/rev/31241ea2a057

Reply | Threaded
Open this post in threaded view
|

Re: Building MXE / nettle

Stefan Mahr
In reply to this post by Michael Goffioul

>>     'nettle' fails to build for mingw builds, since you introduced a new
>>     variable 'CCAS' that not exist. The patch below works as temporary
>>     solution.
>>
>>     Stefan
>>
>>     ------------------------------------------
>>     --- a/src/nettle.mk      Sat Jun 22 13:19:20 2013
>>     -0400
>>     +++ b/src/nettle.mk      Sun Jun 23 13:11:24 2013
>>     +0200
>>     @@ -45,7 +45,7 @@
>>          cd '$(1)' && ./configure \
>>              $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
>>              $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
>>     -        $(ENABLE_SHARED_OR_STATIC) \
>>     +        $(ENABLE_SHARED_OR_STATIC) CCAS=$(MXE_CC)\
>>              --prefix='$(HOST_PREFIX)'
>>          $(MAKE) -C '$(1)' -j '$(JOBS)' getopt.o getopt1.o
>>          $(MAKE) -C '$(1)' -j '$(JOBS)'
>>
>>
> Could you be more specific which changeset broke compilation and under
> which system? I try to be careful not to interfere with the other build
> systems, but maybe I overlooked something.

Changeset 9c56d108c141 and b39e8dc859f7:

Maybe found the root cause: You add
+    MXE_CCAS := gcc
in Makefile.in to native build, but not to cross build.

Stefan
Reply | Threaded
Open this post in threaded view
|

Re: Building MXE / nettle

Michael Goffioul
On Sun, Jun 23, 2013 at 9:56 AM, Stefan Mahr <[hidden email]> wrote:

>>     'nettle' fails to build for mingw builds, since you introduced a new
>>     variable 'CCAS' that not exist. The patch below works as temporary
>>     solution.
>>
>>     Stefan
>>
>>     ------------------------------------------
>>     --- a/src/nettle.mk      Sat Jun 22 13:19:20 2013
>>     -0400
>>     +++ b/src/nettle.mk      Sun Jun 23 13:11:24 2013
>>     +0200
>>     @@ -45,7 +45,7 @@
>>          cd '$(1)' && ./configure \
>>              $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
>>              $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
>>     -        $(ENABLE_SHARED_OR_STATIC) \
>>     +        $(ENABLE_SHARED_OR_STATIC) CCAS=$(MXE_CC)\
>>              --prefix='$(HOST_PREFIX)'
>>          $(MAKE) -C '$(1)' -j '$(JOBS)' getopt.o getopt1.o
>>          $(MAKE) -C '$(1)' -j '$(JOBS)'
>>
>>
> Could you be more specific which changeset broke compilation and under
> which system? I try to be careful not to interfere with the other build
> systems, but maybe I overlooked something.

Changeset 9c56d108c141 and b39e8dc859f7:

Maybe found the root cause: You add
+    MXE_CCAS := gcc
in Makefile.in to native build, but not to cross build.

That's indeed a leftover, but AFAIK MXE_CCAS variable is not used anywhere, so I don't see how this can be a problem.

Michael.

Reply | Threaded
Open this post in threaded view
|

Re: Building MXE / nettle

Stefan Mahr
>>>>     'nettle' fails to build for mingw builds, since you introduced a new
>>>>     variable 'CCAS' that not exist. The patch below works as temporary
>>>>     solution.
>>> Could you be more specific which changeset broke compilation and under
>>> which system? I try to be careful not to interfere with the other build
>>> systems, but maybe I overlooked something.
>>
>> Changeset 9c56d108c141 and b39e8dc859f7:
>>
>> Maybe found the root cause: You add
>> +    MXE_CCAS := gcc
>> in Makefile.in to native build, but not to cross build.
>>
>
> That's indeed a leftover, but AFAIK MXE_CCAS variable is not used
> anywhere, so I don't see how this can be a problem.
>

Ok, you're right, adding MXE_CCAS doesn't fix the problem.

Your patch 'msvc-nettle-1.patch' introduce a variable CCAS to
'config.make.in'. In 'nettle.mk' you set CCAS=gcc for msvc builds. For
non-msvc builds (or at least at my system) CCAS is unknown, so compiling
will fail.

Stefan
Reply | Threaded
Open this post in threaded view
|

Re: Building MXE / nettle

Michael Goffioul
On Sun, Jun 23, 2013 at 3:16 PM, Stefan Mahr <[hidden email]> wrote:
>>>>     'nettle' fails to build for mingw builds, since you introduced a new
>>>>     variable 'CCAS' that not exist. The patch below works as temporary
>>>>     solution.
>>> Could you be more specific which changeset broke compilation and under
>>> which system? I try to be careful not to interfere with the other build
>>> systems, but maybe I overlooked something.
>>
>> Changeset 9c56d108c141 and b39e8dc859f7:
>>
>> Maybe found the root cause: You add
>> +    MXE_CCAS := gcc
>> in Makefile.in to native build, but not to cross build.
>>
>
> That's indeed a leftover, but AFAIK MXE_CCAS variable is not used
> anywhere, so I don't see how this can be a problem.
>

Ok, you're right, adding MXE_CCAS doesn't fix the problem.

Your patch 'msvc-nettle-1.patch' introduce a variable CCAS to
'config.make.in'. In 'nettle.mk' you set CCAS=gcc for msvc builds. For
non-msvc builds (or at least at my system) CCAS is unknown, so compiling
will fail.

The real problem is that the mentioned patch should *not* be applied on non-MSVC system. Actually, I see that I made a mistake there [1]. This should use "$(MXE_SYSTEM)" instead of hardcoded "msvc". That's why the patch gets applied.

Michael.


12