octave-maintainers
[Top][All Lists]
Advanced

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

Re: Building on MinGW using MXE-built dependencies [WAS: Re: mxe-install


From: John Donoghue
Subject: Re: Building on MinGW using MXE-built dependencies [WAS: Re: mxe-installer try 2]
Date: Wed, 29 May 2013 21:18:22 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6

On 05/29/2013 06:51 PM, John W. Eaton wrote:
On 05/29/2013 06:41 PM, John Donoghue wrote:
On 05/27/2013 11:49 PM, John W. Eaton wrote:
On 05/26/2013 03:32 PM, Philip Nienhuis wrote:

The (my) aim is to get as far as ./run-octave, and to be able to build
and run with --debug-enabled. Once MinGW Octave is sufficiently stable, I believe the archive (or installer) made with MXE on Linux is still the
superior option.

I'm working on some changes that should make it possible to use the
mxe-octave build environment as a native or cross-compile system.

I've focused first on trying to make it work for my Debian system, but
my next step is to try a native build on a Windows system with a
minimal MinGW system installed.

I'm close to being able to do the following on a Debian system that
starts out with no development tools:

  * install the base system (no development tools)

  * install a minimal set of development tools using apt:

      bash, bzip2, gcc, g++, gfortran, make, patch, perl, sed, wget,
      unzip, ghostscript, unzip, libx11-dev, libxext-dev,
      libgl1-mesa-dev, glu, mercurial

  * clone mxe-octave archive

  * make octave JOBS=N

Obviously, this doesn't make much sense on a current Debian system,
but it might on a RHEL 5 system that doesn't have up to date tools.
Or, on a system that has some up to date tools, you could install most
depdencies using the system's package management tool, then install
the rest using mxe-octave.  However, I have no plans to try to
automate that task.  I'm not trying to take over the job of
packaging Octave on systems like Debian and Fedora that already have
good packages for Octave.  I just want to have a reasonable way to
automate the task of building Octave and all the dependencies on
systems that do not have good package systems.

I plan to check in my changes once I've verified that I can still use
mxe-octave to cross compile for a Windows system using the MinGW
compiler, probably within a day or two.

jwe
Just out of interest sake, I tried mxe-octave in both a native mingw
environment and a redhat 6.3 (to build as a redhat target) as clean builds.

I found as Philip mentioned that mingw doesnt like multitasking the make
so I was stuck with --jobs 1

Also (as Philip had also mentioned), mingw in windows does not support
links, doing a copy instead, which makes looking at the latest log file
for a built (or failed) program annoying as the log/ file is empty,
since it was linked at the start of the build.

Can we change the build output to go to the link file rather than the
actual file so that it will still work in linux, but will also then have
a copy of the latest log file in log/  (the 0 size  one in windows would
then be in the date stamped folder)
I will push a change to do this if there are no objecttions?

None from me.

Mingw failed trying to build build-flex since it couldnt regex.h,
however I wasnt too concerned on that as flex is a package available in
mingw already.

It also failed on build-pkg-config during the install part (it compiled
ok, however was another ln issue): log said:

Pkg-config failed:

libtool: install: /bin/install -c .libs/pkg-config.exe
/home/jdonoghue/mxe-octave/usr/bin/pkg-config.exe

make  install-exec-hook

make[5]: Entering directory
`/home/jdonoghue/mxe-octave/tmp-build-pkg-config/pkg-config-0.28.build'

cd /home/jdonoghue/mxe-octave/usr/bin && ln pkg-config.exe
i686-pc-mingw32-pkg-config.exe

ln: creating hard link `i686-pc-mingw32-pkg-config.exe' to
`pkg-config.exe': File exists

make[5]: *** [install-exec-hook] Error 1

make[5]: Leaving directory
`/home/jdonoghue/mxe-octave/tmp-build-pkg-config/pkg-

config-0.28.build'make[4]: *** [install-exec-am] Error 2

OK, so we need to track down all the uses of ln and change them to
$(LN) or $(LN_S) and set those variables appropriately in the Makefile
depending on whether we are building natively on Windows.

For Redhat, I actually got to the octave build with very few issues :)
fltk requires freetype to build - when adding to its deps (as a native),
it built fltk ok.

Font-config failed as it didnt have docbook2pdf - which I guess we dont
need to install for a build anyway - I disabled with the --disable-docs
option in configure.

Qt failed as it couldnt find GL/gl.h - I disabled gl in configure to get
it to work, however it should have been easy enough to get GL devel
installed.

It then failed at building octave as it didnt like the fortran compiler
.... guess I will have to tell it to build the tools and see what happens.

Anyway, it there are no objections I will also push the change for fltk
and font-config.mk.

OK.

I'm trying a build on CentOS 5.9 now.

But I'm not sure how necessary the MXE thing is for these systems if
you are willing to use the EPEL repository.  That seems to give most
dependencies.  I guess I'll find out soon whether the versions are
recent enough.

jwe
Pushed changes:
http://hg.octave.org/mxe-octave/rev/733c487c69c6
http://hg.octave.org/mxe-octave/rev/7d692ab680ab



reply via email to

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