|
From: | Philip Nienhuis |
Subject: | Re: Building Octave w MXE-built dependencies (2) |
Date: | Fri, 21 Jun 2013 19:52:13 +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 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: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 canrun 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 -fparse-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 --versionFYI, 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 againGives 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.
[Prev in Thread] | Current Thread | [Next in Thread] |