octave-maintainers
[Top][All Lists]
Advanced

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

Re: MXE cross-compiling the default branch


From: sergey plotnikov
Subject: Re: MXE cross-compiling the default branch
Date: Fri, 11 Jul 2014 19:08:12 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

08.07.2014 20:36, John D пишет:

 

 

From: sergey plotnikov [mailto:address@hidden]
Sent: Tuesday, July 08, 2014 2:00 PM
To: John D; 'Philip Nienhuis'
Cc: 'Octave Maintainers List'
Subject: Re: MXE cross-compiling the default branch

 

 

On 08/07/14 18:47, John D wrote:

 

 

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 &lt;

     > seryozha.plotnikov@

     > &gt;
     > To: octave maintainers mailing list &lt;

     > maintainers@

     > &gt;
     > 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



Well, I'm a bit confused now.. I've made a fresh clone of Octave repo, updated it to the yesterday's cset you've mentioned, run ./boorstrap && ./configure && make dist and got an error right after make has started:

Makefile:2836: warning: overriding commands for target `check'
Makefile:2399: warning: ignoring old commands for target `check'
make  dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory `/home/nul0m/wrk/hg_repo/oct-dev'
Makefile:2836: warning: overriding commands for target `check'
Makefile:2399: warning: ignoring old commands for target `check'
(cd .; hg log --style=build-aux/changelog.tmpl --prune=b0e60ad4ae26 --only-branch=`hg branch`; echo ""; echo "See the files in the directory etc/OLD-ChangeLogs for changes before 2011-04-19") > ChangeLog.t
mv ChangeLog.t ChangeLog
make -C doc/interpreter ../../AUTHORS
make[2]: Entering directory `/home/nul0m/wrk/hg_repo/oct-dev/doc/interpreter'
make[2]: *** No rule to make target `../../scripts/DOCSTRINGS', needed by `preface.texi'.  Stop.
make[2]: Leaving directory `/home/nul0m/wrk/hg_repo/oct-dev/doc/interpreter'
make[1]: *** [AUTHORS] Error 2
make[1]: Leaving directory `/home/nul0m/wrk/hg_repo/oct-dev'
make: *** [dist] Error 2

Do you by any chance may tell why this happened?

Sergey

 

 

--

 

In the newly checkout clone, create a build directory.

In the build directory, run:

../configure

make

make dist

 

Well, I've built 3.8.2-rc2 and it has no problem to start on my Win7 machine, but the recent 4.1.0+ being cross-compiled according to your instructions is not able to start (the same error message about fault on QtGui4.dll). Strange thing is that being installed on my colleague's Win7 machine it starts just fine.

Do you have any idea what may be wrong?

reply via email to

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