From: sergey plotnikov [mailto:address@hidden
Sent: Tuesday, July 08, 2014 12:42 PM
To: John D; 'Philip Nienhuis'
Cc: 'Octave Maintainers List'
Subject: Re: MXE cross-compiling the default branch
On 08/07/14 18:35, John D wrote:
From: sergey plotnikov [mailto:address@hidden]
Sent: Tuesday, July 08, 2014 5:16 AM
To: Philip Nienhuis
Cc: Octave Maintainers List; John D
Subject: Re: MXE cross-compiling the default branch
On 07/07/14 23:06, Philip Nienhuis wrote:
Серёжа Плотников wrote:
2014-07-07 19:36 GMT+02:00 Philip Nienhuis <address@hidden
<mailto:address@hidden>>:
John Donoghue-2 wrote
> Message: 1
> Date: Sun, 06 Jul 2014 22:29:04 +0200
> From: sergey plotnikov <
> seryozha.plotnikov@
> >
> To: octave maintainers mailing list <
> maintainers@
> >
> Subject: MXE cross-compiling the default branch
> Message-ID: <
> 53B9B190.5050105@
>>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> ? Dear maintainers,
>
> AFAICS, some of you from time to time (cross)compiles tip of default
> branch
> using MXE-Octave. Do you by a chance have some instruction which
one may
> use
> to do the same (since instruction from wiki is only suitable for
stable
> octave compilation)? I'm going to do it under Ubuntu (13.10 if this
> matters). After some digging into maintainers ML I've ended up
with the
> following algo:
> <1>. make a distributive of default branch and compute its
sha1sum [cd
> #somewhere#/octave/ && ./bootstrap && ./configure && make all dist &&
> sha1sum octave-4.1.0+.tar.gz] <2>. copy "octave-4.1.0+.tar.gz" to
> "mxe-octave/pkg" folder <3>. change two lines in
> "mxe-octave/src/octave.mk <http://octave.mk>":
> [
> $(PKG)_VERSION := 4.1.0+
> $(PKG)_CHECKSUM := ## what you get from sha1sum ] <4>. and
finally run
> cross-compiler [ cd #somewhere#/mxe-octave/ &&
PATH=`pwd`/usr/bin:$PATH &&
> autoconf\
> && ./configure --disable-stable && make nsis-installer ]
>
> Do I miss something or this is supposed to work properly? Last time I
> tried
> it, I also needed to use "--disable-docs" in <4>, but not sure if
it may
> work without that option now.
>
> Best regards,
> Sergey
>
>
> ----
>
> That seems about right - you don't need the PATH= statement
> It shouldn't need the disable docs option as long as the docs
were built
> in
> the main repo
In my mxe build tree dating back from March 2014 there's an
octave.mk <http://octave.mk> patch
meant to enable inclusion of the docs. Just today that still worked with
today's tip.
I have a brand new mxe clone as well (from yesterday July 6) but haven't
looked if that patch is still there.
BTW you miss a flag on the make nsis-installer line:
JOBS=<n> where <n> =
nr. of CPU cores + a few. Will save you a lot of time.
Philip
Thank you Philip!
+ John D of course....
Before I forget:
autoconf + possibly configure in mxe-octave is only required once. Any subsequent Octave build only needs make nsis-installler JOBS=<n>
There are two octave patches is src/ (one for
/doc/interpreter/Makefile.in and the second for /libgnu/unistd.in.h).
Should I keep them all?
Recent clone? I suppose so then. If these patch files do not give rise to build errors they're OK.
And thank you for JOBS, will certainly use it from now on.
Just a noob q. Why "+ a few"?
Another noob here :-) I just add a few to be sure the CPU is always fully loaded.
Good luck!
Philip
John D, Philip, thank you both of course. But unfortunately I'm going on..
I've tried to cross-compile w/o "--disable-docs" and it has crashed. Below is the log-message:
Making install-html in interpreter
make[4]: Entering directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/.build/doc/interpreter'
/bin/mkdir -p '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave-install/home/nul0m/wrk/hg_repo/mxe-oct-dev/usr/i686-w64-mingw32/share/doc/octave'
/bin/mkdir -p '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave-install/home/nul0m/wrk/hg_repo/mxe-oct-dev/usr/i686-w64-mingw32/share/doc/octave/octave.html'
/usr/bin/install -c -m 644 '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/doc/interpreter/octave.html'/* '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave-install/home/nul0m/wrk/hg_repo/mxe-oct-dev/usr/i686-w64-mingw32/share/doc/octave/octave.html'
make[4]: Leaving directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/.build/doc/interpreter'
Making install-html in liboctave
make[4]: Entering directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/.build/doc/liboctave'
/bin/mkdir -p '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave-install/home/nul0m/wrk/hg_repo/mxe-oct-dev/usr/i686-w64-mingw32/share/doc/octave'
/bin/mkdir -p '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave-install/home/nul0m/wrk/hg_repo/mxe-oct-dev/usr/i686-w64-mingw32/share/doc/octave/liboctave.html'
/usr/bin/install -c -m 644 '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/doc/liboctave/liboctave.html'/* '/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave-install/home/nul0m/wrk/hg_repo/mxe-oct-dev/usr/i686-w64-mingw32/share/doc/octave/liboctave.html'
/usr/bin/install: cannot stat ‘/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/doc/liboctave/liboctave.html/*’: No such file or directory
make[4]: *** [install-html-am] Error 1
make[4]: Leaving directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/.build/doc/liboctave'
make[3]: *** [install-html-recursive] Error 1
make[3]: Leaving directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/.build/doc'
make[2]: *** [install-html-recursive] Error 1
make[2]: Leaving directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev/tmp-octave/octave-4.1.0+/.build'
make[1]: *** [build-only-octave] Error 2
make[1]: Leaving directory `/home/nul0m/wrk/hg_repo/mxe-oct-dev'
I've tried to compile it with and w/o "octave-1-docinstall.patch" (BTW, should it be renamed to "octave-2-docinstall.patch" since there's "octave-1-fixes.patch" in src/ ?) and all the time it crashes when making install-html in liboctave..
I tried with 4.1.0 that I checked out yesterday:
[build]$ hg summary
parent: 18900:49961d67e4b9 tip
Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
branch: default
bookmarks: @
commit: 7793 unknown (clean)
update: (current)
It compiled ok in mxe-octave for me, with the existing patches for octave and not using –disable-docs.
Looking in the tarball for 4.1.0+, I have a octave-4.1.0+/doc/liboctave/liboctave.html directory
Hm.. I have this directory in my tarball as well, but it is empty. Do you use some special configure and/or make options when making your tarballs?
From my build directory, I run just make dist.
When swapping between branches, I have had some issues in the past where I guess it gets confused with old files
Create a new build directory for the branch, run bootstrap and configure