octave-maintainers
[Top][All Lists]
Advanced

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

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


From: Philip Nienhuis
Subject: Re: Building Octave w MXE-built dependencies (2)
Date: Fri, 21 Jun 2013 16:35:49 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.11) Gecko/20100701 SeaMonkey/2.0.6

John D wrote:


-----Original Message-----
From: Philip Nienhuis [mailto:address@hidden
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:address@hidden
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


address@hidden ~/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.

address@hidden ~/octave
$ flex --version
flex 2.5.35

address@hidden ~/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 via email to

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