octave-maintainers
[Top][All Lists]
Advanced

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

Re: GSoC project


From: Michael Goffioul
Subject: Re: GSoC project
Date: Sun, 16 Jun 2013 14:18:13 -0400

On Sun, Jun 16, 2013 at 1:34 AM, Anirudha Bose <address@hidden> wrote:
On Sun, Jun 16, 2013 at 2:02 AM, Michael Goffioul <address@hidden> wrote:
On Sat, Jun 15, 2013 at 1:41 AM, Anirudha Bose <address@hidden> wrote:
Hi Michael. My build process was interrupted because of a small bug in older versions of tex2dvi. I have CC'ed you the issue I had discussed with jwe. I had to do a small change in the file tex2dvi and now I am compiling octave again.

The time taken to compile octave (till I get the error) is close to 200 minutes (this is why I have to wait so much to see any result, which maybe be a build failure). I am expecting to finish it soon.

Compiling octave is long, but 200 minutes seems quite a lot, if you're compiling under Linux (even cross-compiling) with a decently recent computer. FYI I'm using a dual P4 3GHz from 2008, so it's not really new, though I don't think it takes more than 3 hours to compile octave. You might want to increase the number of "make" jobs to use parallel compilation.
 
Meanwhile, I have taken a look at your patch in the attachment msvctools-libiconv.bz2 to jwe and tried to make sense out of it referring to your old mail on the efforts previously done to cross-build octave for Windows.

This is basically trying to port my build script for MSVC to MXE. This is a bit out of the scope of your GSoC project. MSVC it nos part of the "officially" supported compilers for octave. You should focus on GCC/MinGW.

Next week starts the first coding session. I'd like you to define clear goals for this first session, so that we know where we're going. So far it seems that MXE is a good candidate, at least for native Linux, native MinGW, cross MinGW. There are already a few people heavily working on making it work for native MinGW and cross MinGW, so IMO your focus should be among those:
1) get quickly up to speed with native MinGW and help polishing the last bits not working

jwe's update said that the dependencies missing in his fork of MXE are ghostscript, pstoedit, fig2dev, and Java. The dependency pstoedit has already been added (see the list of dependencies in my blog update [1]). Should I start my work on adding the remaining of these dependencies?

The ones that comes to my mind:
- llvm (it's part of MXE, but is it enabled in your build?): I know JIT support is still experimental, but I don't see any harm in enabling it
- OpenBLAS: I don't see it in MXE, though the gain is huge compared to reference BLAS implementation
- ATLAS: though I'm not sure it's useful if OpenBLAS is used
- octave-forge packages: I see a few of them in MXE, but there's much more than that; some packages will introduce new dependencies (especially packages like zenity or video)

2) implement a user-friendly installer for Windows; here my suggestion is to re-use (and re-engineer) the installer I used to use for my MSVC binaries

Can you give me some resources of the installer you had used earlier?

I've update the archive containing all my build scripts at:

https://dl.dropboxusercontent.com/u/45539519/octave-build2.zip

The installer scripts are in modules/octaveinst. Yout starting point should be octaveinst.sh (which is called by my main build.sh script, but you shouldn't worry about that). The script will generate the base NSI file as well as other NSI files for octave-forge. The installer allows various things like:
- selection of modules
- selection of octave-forge packages
- resolve dependencies between octave-forge packages
The script has also a secondary mode whereby it's able to generate an installer for a single octave-forge package. I use this mainly to upgrade existing packages (or add new ones), without regenerating the full octave installer.
 
Can we do something so that Windows users do not have to install MinGW/MSys or Cygwin to run Octave? If MinGW or Cygwin is indeed necessary to run Octave (haven't checked yet), then perhaps we can include their installers as a part of our setup.

As Marco said, Cygwin is handled separately. Cygwin has its own package management system. For the native Windows binaries, MinGW/MSYS is not actually needed to run octave. Though there are a few components that are mandatory, like less or makeinfo, and there are (should be) bundled into the binary. The full MSYS shell is required when you want to compiles things for octave: then you need a shell (for running "pkg" command) or a compiler (to run mkoctfile). If you look into the installer I used to produce, you'll see the the MSYS component is optional, in case the user already has MSYS installed and want to use it.

Michael.


reply via email to

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