Selbstcompilieren von GNU Octave

Software für PC wie Open Office, Antvirenprogramme, Firewalls usw. Programmiersprachen wie Visual Basic, Pascal, C++.

Software für PC wie Open Office, Antvirenprogramme, Firewalls usw. Programmiersprachen wie Visual Basic, Pascal, C++.

Moderator: Moderatorengruppe

Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Sonntag 18. April 2010, 20:16

Moin,

Bevor ich's irgendwo wieder verschlamp' und mich dann aergern muss, wenn ich's nicht wiederfind', kopier' ich hier mal eine Mittschrift von Kommandos 'rein, die ich gebraucht habe, um GNU Octave aus den sourcen unter Linux zu bauen.
Das selbst zu bauen ist was recht spezielles und das macht normalerweise kein vernuenftiger Mensch, weils viel einfacher ist, das im Rahmen seiner verwendeten Linuxdistribution ueber deren Paketmanagement ggf. nachzuinstallieren.
Nur gibts Verrueckte, die nehmen kein "normales" Linux, sondern bauen sich ein LFS/BLFS System selbst. (wie unter http://www.linuxfromscratch.org beschrieben). Die koennen dann evlt. was mit dem folgenden wirren Geschreibsel anfangen. Diese "Anleitung" ist mit Sicherheit nicht geeignet, um erste Schritte unter LFS/BLFS zu unternehmen.
GNU Octave ist eine Mathematiksoftware, mit der u.a. auch digitale Filter berechnet werden koennen. Ziemlich kompatible zu Matlab, aber unter der GNU-Lizenz und damit potentiell geldbeutelfreundlich: kost' nix.
Aber nochmal: Selberbauen macht unter "normalem" Linux keinen Sinn, da ist es viel einfacher, mit fertigen Paketen zu arbeiten.

Losgehts:
Damit octave sich mit ordentlichem Funktionsumfang bauen laesst, muessen auf dem System einige andere SW-Pakete installiert sein. Das ist das eigentlich kniffelige dran, denn prinzipiell wird octave aus den sourcen genauso gebaut, wie viele andere SW auch: mit dem in LFS/BLFS viel verwendeten "./configure --prefix=/usr && make && make install" Dreigestirn (Im folgenden mit "cmi" abgekuerzt).
Als erstes brauchts zusaetzlich zum normalen C und C++ compiler, wie er unter LFS installiert wird, noch einen Fortrancompiler. Den kriegt man am einfachsten installiert, wenn man im LFS-Book in Kapitel 6 bei der finalen gcc Installation einfach bei "--enable-languages=c,c++" auch noch "fortran" mitangibt. Oder das (Dingens halt spaeter nochmal baut).
Die SW-pakte und ihre Versionsnummern, die ich angeb', sind nicht alle unbedingt erforderlich, muss man also selber abschaetzen koennen, ob's das braucht. Hier hat's mit denen halt mal geklappt.

Code: Alles auswählen
gd-2.0.35: cmi
plotutils-2.6:cmi
gnuplot-4.2.6:cmi
-evtl. mit WxWidgets
**************************************
fftw-3.2.2:
./configure --prefix=/usr --enable-threads --enable-sse2 --enable-shared
make && make install
make distclean
./configure --prefix=/usr --enable-threads --enable-sse --enable-shared --enable-float
make && make install

********************************************************************
lapack-3.2.1
cp make.inc.example make.inc
cd BLAS/SRC
make
cd ../../
make
cp blas_LINUX.a /usr/lib/libblas.a
cp lapack_LINUX.a /usr/lib/liblapack.a
********************************************************************
glpk-4.42: cmi
********************************************************************
Bau einer Dummylib; die braucht, weil der derzeitige fortrancompiler ohne diese Lib auskommt, sie wird aber in vielen Makefiles noch dazugelinkt, weil aeltere fortrancompiler das brauchten. Eine Dummylib zu bauen, find' ich leichter, als die ganzen Makefiles dahingehend zu bereinigen.
touch bla.c
gcc -c -o bla.o bla.c
ar -q libg2c.a bla.o
cp libg2c.a /usr/lib
********************************************************************
suitesparse-3.4.0 + metis-4.0
#Suitesparse entpacken, metis reinkopieren und entpacken
#in metis alle Aufrufe von log2 auf metislog2 umbenennen
make
cd .. #(wieder nach suitsparse)
make

Aus diesen Unterverzeichnissen:
  UMFPACK
  AMD
  CAMD
  COLAMD
  CCOLAMD
  CHOLMOD
  CXSPARSE
  UFconfig

jeweils alle header nach
/usr/include/suitesparse/
und alle libs nach
/usr/lib/
kopieren:
mkdir -p /usr/include/suitesparse
cp -a Inc/*h /usr/include/suitesparse/
cp -a Lib/*a /usr/lib/
Bei UFconfig entsprechend.
Bei metis die libmetis.a nach /usr/lib/ kopieren


********************************************************************
Qhull
http://packages.debian.org/source/sid/qhull
tar.gz + patch.gz, entpacken, patchen, mit:
CFLAGS="-fno-strict-aliasing" ./configure --prefix=/usr && make && make install
bauen + installieren
********************************************************************
qrupdate-1.1.1.tar.gz:
make PREFIX=/usr lib
make PREFIX=/usr install

********************************************************************
hdf5-1.8.4.tar.bz2
./configure --prefix=/usr --with-pthread --enable-threadsafe && make && make install

********************************************************************
fltk-1.1.10.tar.bz2
./configure --prefix=/usr  --enable-threads  --enable-xinerama  --enable-xft  --enable-xdbe && make && make install
********************************************************************
GraphicsMagick-1.3.10

./configure --prefix=/usr --with-perl --enable-shared 
********************************************************************
ftgl-2.1.3-rc5.tar.gz
cmi
********************************************************************
octave-3.2.4:
LDFLAGS=-lmetis ./configure --prefix=/usr && make && make install
********************************************************************


"Und schon" ist octave fertig.
Zum Berechnen von digitalen Filtern sollten noch unter octave die Pakete miscellaneous, optim, specfun und signal nachinstalliert werden, die gibts alle unter http://octave.sourceforge.net/

z.B. kann man dann mittels beherztem cp+paste des Example 1 aus der Altera Applicationnote an455 ein lustiges CIC-Kompensationsfilter berechnen lassen - der Hit auf jedem Kindergeburtstag :mrgreen:

Gruss
WK
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
derguteweka
Threadstarter
38169
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Mittwoch 9. Februar 2011, 16:37

Moin,

Hier noch mal eine Zusammenfassung mit angepassten Versionsnummern und manchmal auch geaenderten configure Optionen. ARPACK hatte ich in obiger Anleitung ganz vergessen.
Code: Alles auswählen
gd-2.0.35:
cmi

********************************************************************
plotutils-2.6:
cmi

********************************************************************
WxWidgets-2.9.1:
./configure --prefix=/usr --enable-unicode --enable-compat26 \
&& make && make install

********************************************************************
gnuplot-4.2.6
./configure --prefix=/usr --with-plot && make && make install

********************************************************************
fftw-3.2.2:
./configure --prefix=/usr --enable-threads --enable-sse2 --enable-shared \
&& make && make install
make distclean
./configure --prefix=/usr --enable-threads --enable-sse --enable-shared \
--enable-float \
&& make && make install

********************************************************************
lapack-3.3.0
cp make.inc.example make.inc
cd BLAS/SRC
make
cd ../../
make
cp blas_LINUX.a /usr/lib/libblas.a
cp lapack_LINUX.a /usr/lib/liblapack.a

********************************************************************
glpk-4.45:
./configure --prefix=/usr --with-gmp --with-zlib

********************************************************************
Bau einer Dummylib, weil der derzeitige fortrancompiler ohne diese Lib auskommt, sie wird aber in vielen Makefiles noch dazugelinkt, weil aeltere fortrancompiler das brauchten.
Eine Dummylib zu bauen, find' ich leichter, als die ganzen Makefiles dahingehend zu bereinigen.

touch bla.c
gcc -c -o bla.o bla.c
ar -q libg2c.a bla.o
cp libg2c.a /usr/lib

********************************************************************
suitesparse-3.6.0 + metis-4.0.1
#Suitesparse entpacken, metis reinkopieren und entpacken
cd metis-4.0
#dort in der Datei Lib/rename.h in der letzten Zeile __log2 aendern in METIS__log2
make
cd .. #(wieder nach suitsparse)
make

Aus diesen Unterverzeichnissen:
  UMFPACK
  AMD
  CAMD
  COLAMD
  CCOLAMD
  CHOLMOD
  CXSPARSE
  UFconfig

jeweils alle header nach
/usr/include/suitesparse/
und alle libs nach
/usr/lib/
kopieren:
mkdir -p /usr/include/suitesparse
cp -a Include/*h /usr/include/suitesparse/
cp -a Lib/*a /usr/lib/
Bei UFconfig entsprechend.
Bei metis die libmetis.a nach /usr/lib/ kopieren

********************************************************************
arpack96 + patch entpacken
#ARmake.inc anpassen; Aenderungen ggf. so:
#diff orig/ARmake.inc ARPACK/ARmake.inc
28c28
< home = $(HOME)/ARPACK
---
> home = /usr/src/ARPACK
35c35
< PLAT = SUN4
---
> PLAT = LINUX
104,105c104,105
< FC      = f77
< FFLAGS        = -O -cg89
---
> FC      = gfortran
> FFLAGS        = -O
115c115
< MAKE    = /bin/make
---
> MAKE    = make


make all
cp libarpack_LINUX.a /usr/lib/libarpack.a

********************************************************************
Qhull
http://packages.debian.org/source/sid/qhull
# tar.gz + patch.gz, entpacken, patchen
CFLAGS="-fno-strict-aliasing" ./configure --prefix=/usr && make && make install

********************************************************************
qrupdate-1.1.1.tar.gz:
make PREFIX=/usr lib
make PREFIX=/usr install

********************************************************************
szip-2.1: (fuer hdf5)
cmi

********************************************************************
hdf5-1.8.5-patch1:
./configure --prefix=/usr --with-pthread --enable-threadsafe --with-szlib \
&& make && make install

********************************************************************
fltk-1.1.10.tar.bz2
./configure --prefix=/usr  --enable-threads  --enable-xinerama  \
--enable-xft  --enable-xdbe \
&& make && make install

********************************************************************
GraphicsMagick-1.3.12
./configure --prefix=/usr --with-perl --enable-shared && make && make install

********************************************************************
ftgl-2.1.3-rc5.tar.gz
./configure --prefix=/usr --sysconfdir=/etc && make && make install

********************************************************************
octave-3.4.0:
LDFLAGS=-lmetis ./configure --prefix=/usr && make && make install

********************************************************************


der "make check" von octave laeuft ohne FAILs durch.

Fuer die Signalverarbeitungsfunktionen (fuers Filterdesign) brauchts dann in Octave von http://octave.sourceforge.net/ derweilen folgende Pakete:
misc, struct, specfun, optim, signal

Gruss
WK
derguteweka
Threadstarter
41762
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Sonntag 29. Januar 2012, 09:15

Moin,

Neues Jahr, neues Glueck, neue Versionsnummern und neue Abhaengigkeiten...
Um's naechstes Jahr leichter wiederzufinden, hier mal wieder meine Anmerkungen zum Bau von GNU-Octave.
Diesesmal sind bei mir einige der Tests bei "make check" fehlgeschlagen - es gibt anscheinend bei lapack irgendwelche Probleme (siehe unten). Ausserdem hab' ich das alles auf einem VIA-C7 Prozessor gebaut, da koennt' ich mir vorstellen, dass der vielleicht auch ein bisschen ein mathematisches "Eigenleben" entwickelt (d.h. die Tests nicht unbedingt vom Tester dafuer ausgelegt wurden). Oder ich hab' irgendwo was vermasselt...

Code: Alles auswählen
January 2012  octave-3.4.3
EB2:
* LFS-7.0 (gcc-4.6.1) : in Cpt. 6.17:
build also Fortran compiler (in addtion to c,c++):
  ../gcc-4.6.1/configure -- ... --enable-languages=c,c++,fortran \

* This is needed very often, so save time and extend life of your keyboard by:
  alias cmi='./configure --prefix=/usr && make && make install'

********************************************************************
Qhull :
http://www.qhull.org/download/qhull-2011.2-src.tgz

# change install location from /usr/local to /usr :
sed -i 's/\/usr\/local/\/usr/' Makefile

make
#instead of make install, manually copy the needed  parts to the expected locations
mkdir /usr/include/qhull
cp src/libqhull/*h /usr/include/qhull/
cp src/libqhull/qhull.h-deprecated /usr/include/qhull/qhull.h
cp lib/libqhullstatic.a /usr/lib/libqhull.a

********************************************************************
szip, might be useful for HDF5(no idea?)
http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz

cmi

********************************************************************
HDF5 :
http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.8.tar.bz2

./configure --prefix=/usr --with-pthread --enable-threadsafe --with-szlib
  make && make install

********************************************************************
fftw:
http://www.fftw.org/fftw-3.3.tar.gz

./configure --prefix=/usr --enable-threads --enable-sse2 --enable-shared
make && make install
make distclean
./configure --prefix=/usr --enable-threads --enable-sse --enable-shared --enable-float
make && make install

********************************************************************
glpk:

http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz

cmi

********************************************************************
fltk

http://ftp.easysw.com/pub/fltk/1.3.0/fltk-1.3.0-source.tar.gz
./configure --prefix=/usr  --enable-threads  --enable-xinerama  --enable-xft --enable-xdbe
make && make install


********************************************************************

LAPACK + BLAS:

http://www.netlib.org/lapack/lapack-3.4.0.tgz

cp make.inc.example make.inc
cd BLAS/SRC
make
cd ../../
make
cp liblapack.a /usr/lib
cp librefblas.a /usr/lib/libblas.a

Maybe failing tests in octaves "make check" have this cause:
http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg01219.html

********************************************************************
LAPACK + BLAS:

http://www.netlib.org/lapack/lapack-3.3.1.tgz

cp make.inc.example make.inc
sed -i 's/OPTS     =/OPTS     = -O3/' make.inc
cd BLAS/SRC
make
cd ../../
make
cp lapack_LINUX.a /usr/lib/liblapack.a
cp blas_LINUX.a /usr/lib/libblas.a

********************************************************************

qrupdate

http://downloads.sourceforge.net/project/qrupdate/qrupdate/1.1/qrupdate-1.1.1.tar.gz

make PREFIX=/usr lib
make PREFIX=/usr install

********************************************************************
metis:

http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.0.2.tar.gz
make config && make
cp build/Linux-i686/libmetis/libmetis.a /usr/lib

********************************************************************
suitesparse

http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-3.7.0.tar.gz

make
mkdir -p /usr/include/suitesparse
for F in UMFPACK AMD CAMD COLAMD CCOLAMD CHOLMOD CXSparse
do
cp -v ${F}/Include/*h /usr/include/suitesparse
cp -v ${F}/Lib/*a /usr/lib
done
cp -v UFconfig/*h /usr/include/suitesparse
cp -v UFconfig/*a /usr/lib

********************************************************************
plotutils (gnuplot dependency)
ftp://ftp.gnu.org/pub/gnu/plotutils/plotutils-2.6.tar.gz

Do some changes in z_write.c to get rid of problems with current libpng (1.5x):

--- orig/plotutils-2.6/libplot/z_write.c        2008-07-16 02:54:10.000000000 +0200
+++ plotutils-2.6/libplot/z_write.c     2012-01-09 00:26:44.000000000 +0100
@@ -164,7 +164,7 @@
     }

   /* cleanup after libpng errors (error handler does a longjmp) */
-  if (setjmp (png_ptr->jmpbuf))
+  if (setjmp (png_jmpbuf(png_ptr)))
     {
       png_destroy_write_struct (&png_ptr, (png_info **)NULL);
       return -1;
@@ -444,7 +444,7 @@
#endif
     }

-  longjmp (png_ptr->jmpbuf, 1);
+  longjmp (png_jmpbuf (png_ptr), 1);
}

static void



cmi

********************************************************************
gd-2.0.35 (gnuplot dependency, not urgently needed) libgd.org seems to be out of business :(
cmi

********************************************************************
wxWidgets (gnuplot dependency)
http://downloads.sourceforge.net/project/wxwindows/2.8.12/wxGTK-2.8.12.tar.bz2
./configure --prefix=/usr  --enable-unicode && make && make install

********************************************************************
gnuplot:
http://downloads.sourceforge.net/project/gnuplot/gnuplot/4.4.4/gnuplot-4.4.4.tar.gz

********************************************************************
GraphicsMagick++

http://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.13/GraphicsMagick-1.3.13.tar.xz

./configure --prefix=/usr --with-perl --enable-shared  && make && make install

********************************************************************
octave:

ftp://ftp.gnu.org/gnu/octave/octave-3.4.3.tar.bz2


LDFLAGS=-lmetis ./configure --prefix=/usr && make && make install

The usual suspect packages for DSP in this order taken from http://octave.sourceforge.net/
misc, struct, specfun, optim, control, audio, signal


Gruss
WK

PS: Also ich haett' ja schwoeren koennen, den Thread damals unter der Rubrik "Software" oder "Computer Software" oder so irgendwo erstellt zu haben und nicht gerade unter "Elektronik allgemein". Eigenartig...
derguteweka
Threadstarter
45391
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Dienstag 5. Februar 2013, 20:33

Moin,

Neues Jahr, neues Octave; heuer ohne schicke Liste, es hat sich nicht allzuviel getan, ausser dem Hochzaehlen einiger Minor-Versionsnummern. Dafuer hab' ichs mal auf einer anderen Hardware gebaut: Beagleboard mit einer 500MHz Texas Instruments/ARM CPU, 256MByte RAM, ergaenzt durch eine USB-Festplatte.
Compiler ist ein armv7l-unknown-linux-gnueabihf-gcc (-g++,-gfortran) Version ist 4.7.1 auf ca. einem LFS-7.2 (binutils sind neuer:2.23.1).

Ergebnis: 'ne Rakete ist anders, aber es laesst sich kompilieren, scheint auch zu funktionieren; make check absolviert alle Tests ohne Fehler.

Bei der Suitesparse hat sich was geaendert, es gibt kein UFconfig mehr, dafuer ein suitesparseconfig; octave-3.6.3 hat noch ein paar Bugs, die dazu fuehren koennen, dass "make check" ordentlich abschmiert; diese Bugs kriegt man durch diese Patches in den Griff:
http://hg.savannah.gnu.org/hgweb/octave/rev/f2e72944847b
http://hg.savannah.gnu.org/hgweb/octave/rev/4663cc835c65

Wegen der geaenderten SuiteSparse sieht der Aufruf von configure so aus:
Code: Alles auswählen
LDFLAGS="-lmetis" ./configure --prefix=/usr --with-umfpack=-lumfpack -lsuitesparseconfig

(sonst geht ziemlich gegen ende beim linken was schief).

Die Octave-forge packages fuer DSP lauten dieses Jahr in der noetigen Reihenfolge:

general, misc,specfun,struct,optim,control,signal

Damit die Funktionen dann auch wirklich alle da sind, muss man sie "laden", die Holzhammermethode ist:
Code: Alles auswählen
pkg load all


Die Compilezeiten fuer die ueblichen Pakete fuer octave liegen auf der Hardwareplatform bei ca. einer Woche. (Ja, ich weiss, dass es auch mit diversen Hilfsmitteln wie VMs, distcc, iceccd, cross-toolchains, etc. evtl. schneller gehen koennte).

Gruss
WK
derguteweka
Threadstarter
49895
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Montag 10. Februar 2014, 20:30

Moin,

Schon wieder ein Jahr rum, heuer Octave mal wieder auf Intel (Celeron 867 in einem Zotac ID61).
Das alte ARPACK macht bisschen Probleme, daher Umstieg auf ein neueres; ebenso die libblas.

Octave selber kriegt immer mehr Abhaengigkeiten, jetzt ist auch ein GUI drinnen. Und irgendwie kann man's wohl jetzt auch an Java anflanschen. (Mach' ich aber bestimmt nicht, oerks).
Tex wird stillschweigend vorausgesetzt, d.h. configure testet es nicht, aber make bricht ab, wenn's nicht installiert ist.
Code: Alles auswählen
    Jan/Feb 2014  octave-3.8.0
    EB2:
    * LFS-7.4 (gcc-4.8.1) : in Cpt. 6.17:
    build also Fortran compiler (in addtion to c,c++):
      ../gcc-4.8.1/configure -- ... --enable-languages=c,c++,fortran \

    * This is needed very often, so save time and extend life of your keyboard by:
      alias cmi='./configure --prefix=/usr && make && make install'

    ********************************************************************
    Qhull :
    http://www.qhull.org/download/qhull-2012.1-src.tgz


    # change install location from /usr/local to /usr :
    sed -i 's/\/usr\/local/\/usr/' Makefile

    make
    #instead of make install, manually copy the needed  parts to the expected locations
    mkdir /usr/include/qhull
    cp src/libqhull/*h /usr/include/qhull/
    cp src/libqhull/qhull.h-deprecated /usr/include/qhull/qhull.h
    cp lib/libqhullstatic.a /usr/lib/libqhull.a

    ********************************************************************
    szip, might be useful for HDF5(no idea?)
    http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz

    cmi

    ********************************************************************
    HDF5 :
    http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.12.tar.bz2
    ./configure --prefix=/usr --with-pthread --enable-threadsafe --with-szlib
      make && make install

    ********************************************************************
    fftw:
    http://www.fftw.org/fftw-3.3.3.tar.gz

    ./configure --prefix=/usr --enable-threads --enable-sse2 --enable-shared
    make && make install
    make distclean
    ./configure --prefix=/usr --enable-threads --enable-sse --enable-shared --enable-float
    make && make install

    ********************************************************************
    glpk:
    http://ftp.gnu.org/gnu/glpk/glpk-4.52.tar.gz

    cmi

    ********************************************************************
    fltk
    http://fltk.org/pub/fltk/1.3.2/fltk-1.3.2-source.tar.gz

    ./configure --prefix=/usr  --enable-threads  --enable-xinerama  --enable-xft --enable-xdbe
    make && make install

    ********************************************************************
    openblas-0.2.8
    http://www.openblas.net

    make
    make PREFIX=/usr install
    cp libopenblas*.a /usr/lib/libblas

    ********************************************************************
    LAPACK
    http://www.netlib.org/lapack/lapack-3.5.0.tgz

    cp make.inc.example make.inc
--- make.inc    2013-11-17 01:25:52.000000000 +0100
+++ make.inc    2014-02-10 19:11:57.777994496 +0100
@@ -65,7 +65,7 @@
#  machine-specific, optimized BLAS library should be used whenever
#  possible.)
#
-BLASLIB      = ../../librefblas.a
+BLASLIB      = /usr/lib/libblas.a -lpthread
LAPACKLIB    = liblapack.a
TMGLIB       = libtmglib.a
LAPACKELIB   = liblapacke.a


    ulimit -s 65000
    make
    cp liblapack.a /usr/lib

    ********************************************************************
    arpack-ng (old ARPACK makes to many octave tests fail)
    http://forge.scilab.org/index.php/p/arpack-ng/

    LDFLAGS="-lpthread" ./configure --prefix=/usr && make && make install

    ********************************************************************
    qrupdate
    http://downloads.sourceforge.net/project/qrupdate/qrupdate/1.2/qrupdate-1.1.2.tar.gz

    make PREFIX=/usr lib
    make PREFIX=/usr install

    ********************************************************************
    metis:
    http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz

    make config && make
    cp build/Linux-i686/libmetis/libmetis.a /usr/lib

    ********************************************************************
    suitesparse
    http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.2.1.tar.gz

    make
    mkdir -p /usr/include/suitesparse
    for F in UMFPACK AMD CAMD COLAMD CCOLAMD CHOLMOD CXSparse
    do
    cp -v ${F}/Include/*h /usr/include/suitesparse
    cp -v ${F}/Lib/*a /usr/lib
    done
    cp -v SuiteSparse_config/*h /usr/include/suitesparse
    cp -v SuiteSparse_config/*a /usr/lib

    ********************************************************************
    plotutils (gnuplot dependency)
    ftp://ftp.gnu.org/pub/gnu/plotutils/plotutils-2.6.tar.gz

    Do some changes in z_write.c to get rid of problems with current libpng (1.5x):

--- orig/plotutils-2.6/libplot/z_write.c        2008-07-16 02:54:10.000000000 +0200
+++ plotutils-2.6/libplot/z_write.c     2012-01-09 00:26:44.000000000 +0100
@@ -164,7 +164,7 @@
     }

   /* cleanup after libpng errors (error handler does a longjmp) */
-  if (setjmp (png_ptr->jmpbuf))
+  if (setjmp (png_jmpbuf(png_ptr)))
     {
       png_destroy_write_struct (&png_ptr, (png_info **)NULL);
       return -1;
@@ -444,7 +444,7 @@
#endif
     }

-  longjmp (png_ptr->jmpbuf, 1);
+  longjmp (png_jmpbuf (png_ptr), 1);
}

    cmi
    ********************************************************************
    gd-2.0.35 (gnuplot dependency, not urgently needed) libgd.org seems to be out of business :(

    cmi

    ********************************************************************
    wxWidgets (gnuplot dependency)
    http://downloads.sourceforge.net/project/wxwindows/2.8.12/wxGTK-2.8.12.tar.bz2

    ./configure --prefix=/usr  --enable-unicode && make && make install

    ********************************************************************
    gnuplot:
    http://downloads.sourceforge.net/project/gnuplot/gnuplot/4.6.4/gnuplot-4.6.4.tar.gz

    ./configure --prefix=/usr --disable-static --enable-qt && make && make install

    ********************************************************************
    GraphicsMagick++
    http://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.19/GraphicsMagick-1.3.19.tar.xz

    ./configure --prefix=/usr --with-perl --enable-shared  && make && make install

    ********************************************************************
    Gl2ps
    http://geuz.org/gl2ps/src/gl2ps-1.3.8.tgz

    in CMakeLists.txt insert this line above the line execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE DATE:
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm")

    mkdir build
    cd build
    cmake  -DCMAKE_INSTALL_PREFIX=/usr  ..
    make && make install


    ********************************************************************
    http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.8/QScintilla-gpl-2.8.tar.gz

    cd Qt4Qt5
    qmake-qt4 qscintilla.pro
    make && make install

    ********************************************************************
    octave:

    ftp://ftp.gnu.org/gnu/octave/octave-3.8.0.tar.bz2

    ./configure --prefix=/usr && make && make install

    The usual suspect packages for DSP in this order taken from http://octave.sourceforge.net/
    general, control ,signal


Gruss
WK
derguteweka
Threadstarter
53336
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon Erfinderlein am Montag 10. Februar 2014, 21:30

Alle Jahre wieder !

Ja was sagt man da am besten? >>Braver Bub<<< Wegen einer geistigen Fehlschaltung tropft mir der Zahn wenn ich GNU lese. So von ganz weit her asoziiere ich wohl Filetsteaks oder andere leckere Rindersachen. Aber seis drum, ich werde garantiert kein Softi. Obwohl man ein gutes Fleischle weich und zart zärtlich Software nennen könnte.

Lasse dich nicht ablenken und mach weiter so !

LG Lothar
Lothar Gutjahr bestätigt:Senneca hatte recht. Wir haben nicht zu wenig Zeit, sondern vergeuden zu viel.
Benutzeravatar
Erfinderlein
53337
Co-Admin
 
Beiträge: 4226
Registriert: Donnerstag 9. Januar 2003, 18:21
Wohnort: Neukirchen a.T.
Postleitzahl: 83364
Land: Germany / Deutschland

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Mittwoch 2. Juli 2014, 20:04

Moin,

Durch ein paar nicht lesbare Sektoren auf einer Festplatte bedingt, die zu einer neuen Platte und einer Neuinstallation fuehrten, ganz ausserplanmaessig mal im Sommer einen Octavebau....
Die TeX-Abhaengigkeit ist gluecklicherweise wieder herausgenommen worden; keine grossen Aenderungen gegenueber vor 5 Monaten; nur die letzte(n) Versionsstelle(n) haben sich bei ein paar Ingedenzien veraendert.

Das graphische Terminal sieht anders aus; die freqz() Funktion zeichnet kein gesondertes Diagramm mehr fuer den Filterdurchlassbereich - mal gucken, was sonst noch anders ist...

So kann man's machen:
Code: Alles auswählen
      Jul 2014  octave-3.8.1
        EB2:
        * BLFS-svn (gcc-4.9.0) : in Cpt. 6.17:
        build also Fortran compiler (in addtion to c,c++):
          ../gcc-4.9.0/configure -- ... --enable-languages=c,c++,fortran \

        * This is needed very often, so save time and extend life of your keyboard by:
          alias cmi='./configure --prefix=/usr && make && make install'

        ********************************************************************
        Qhull :
        http://www.qhull.org/download/qhull-2012.1-src.tgz


        # change install location from /usr/local to /usr :
        sed -i 's/\/usr\/local/\/usr/' Makefile

        make
        #instead of make install, manually copy the needed  parts to the expected locations
        mkdir /usr/include/qhull
        cp src/libqhull/*h /usr/include/qhull/
        cp lib/libqhullstatic.a /usr/lib/libqhull.a

        ********************************************************************
        szip, might be useful for HDF5(no idea?)
        http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz

        cmi

        ********************************************************************
        HDF5 :
        http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.13.tar.bz2
        ./configure --prefix=/usr --with-pthread --enable-threadsafe --with-szlib
          make && make install

        ********************************************************************
        fftw:
        http://www.fftw.org/fftw-3.3.4.tar.gz

        ./configure --prefix=/usr --enable-threads --enable-sse2 --enable-shared
        make  && make install
        make distclean
        ./configure --prefix=/usr --enable-threads --enable-sse --enable-shared --enable-float
        make  && make install

        ********************************************************************
        glpk:
        http://ftp.gnu.org/gnu/glpk/glpk-4.54.tar.gz

        cmi

        ********************************************************************
        fltk
        http://fltk.org/pub/fltk/1.3.2/fltk-1.3.2-source.tar.gz

        ./configure --prefix=/usr  --enable-threads  --enable-xinerama  --enable-xft --enable-xdbe
        make && make install

        ********************************************************************
        openblas-0.2.9
        http://www.openblas.net

        make
        make PREFIX=/usr install
        cd /usr/lib
        ln -sf libopenblas.so.0  libblas.so.0
        ln -sf libopenblas.so  libblas.so
        ln -sf libopenblas.a  libblas.a


        ********************************************************************
        LAPACK
        http://www.netlib.org/lapack/lapack-3.5.0.tgz

        cp make.inc.example make.inc
    --- make.inc    2013-11-17 01:25:52.000000000 +0100
    +++ make.inc    2014-02-10 19:11:57.777994496 +0100
    @@ -65,7 +65,7 @@
    #  machine-specific, optimized BLAS library should be used whenever
    #  possible.)
    #
    -BLASLIB      = ../../librefblas.a
    +BLASLIB      = /usr/lib/libblas.a -lpthread
    LAPACKLIB    = liblapack.a
    TMGLIB       = libtmglib.a
    LAPACKELIB   = liblapacke.a


        ulimit -s 65000
        make
        cp liblapack.a /usr/lib

        ********************************************************************
        arpack-ng (old ARPACK makes to many octave tests fail)
        http://forge.scilab.org/index.php/p/arpack-ng/

        LDFLAGS="-lpthread" ./configure --prefix=/usr && make && make install

        ********************************************************************
        qrupdate
        http://downloads.sourceforge.net/project/qrupdate/qrupdate/1.2/qrupdate-1.1.2.tar.gz

        make PREFIX=/usr lib
        make PREFIX=/usr install

        ********************************************************************
        metis:
        http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz

        make config && make
        cp build/Linux-i686/libmetis/libmetis.a /usr/lib

        ********************************************************************
        suitesparse
        http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.2.1.tar.gz

        make
        mkdir -p /usr/include/suitesparse
        for F in UMFPACK AMD CAMD COLAMD CCOLAMD CHOLMOD CXSparse
        do
        cp -v ${F}/Include/*h /usr/include/suitesparse
        cp -v ${F}/Lib/*a /usr/lib
        done
        cp -v SuiteSparse_config/*h /usr/include/suitesparse
        cp -v SuiteSparse_config/*a /usr/lib

        ********************************************************************
        plotutils (gnuplot dependency)
        ftp://ftp.gnu.org/pub/gnu/plotutils/plotutils-2.6.tar.gz

        Do some changes in z_write.c to get rid of problems with current libpng (1.5x):

    --- orig/plotutils-2.6/libplot/z_write.c        2008-07-16 02:54:10.000000000 +0200
    +++ plotutils-2.6/libplot/z_write.c     2012-01-09 00:26:44.000000000 +0100
    @@ -164,7 +164,7 @@
         }

       /* cleanup after libpng errors (error handler does a longjmp) */
    -  if (setjmp (png_ptr->jmpbuf))
    +  if (setjmp (png_jmpbuf(png_ptr)))
         {
           png_destroy_write_struct (&png_ptr, (png_info **)NULL);
           return -1;
    @@ -444,7 +444,7 @@
    #endif
         }

    -  longjmp (png_ptr->jmpbuf, 1);
    +  longjmp (png_jmpbuf (png_ptr), 1);
    }

        cmi
        ********************************************************************
         libgd:
         https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.0.tar.xz

        cmi

        ********************************************************************
        wxWidgets (gnuplot dependency)
        http://downloads.sourceforge.net/project/wxwindows/3.0.1/wxWidgets-3.0.1.tar.bz2

        ./configure --prefix=/usr  --enable-unicode && make && make install

        ********************************************************************
        gnuplot:
        http://downloads.sourceforge.net/project/gnuplot/gnuplot/4.6.5/gnuplot-4.6.5.tar.gz

        ./configure --prefix=/usr --disable-static --enable-qt && make && make install

        ********************************************************************
        GraphicsMagick++
        http://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.19/GraphicsMagick-1.3.19.tar.xz

        ./configure --prefix=/usr --with-perl --enable-shared  && make && make install

        ********************************************************************
        Gl2ps
        http://geuz.org/gl2ps/src/gl2ps-1.3.8.tgz

        in CMakeLists.txt insert this line above the line execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE DATE:
        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm")

        mkdir build
        cd build
        cmake  -DCMAKE_INSTALL_PREFIX=/usr  ..
        make && make install


        ********************************************************************
        http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.8.2/QScintilla-gpl-2.8.2.tar.gz
        cd Qt4Qt5
        qmake qscintilla.pro
        make && make install

        ********************************************************************
        octave:

        ftp://ftp.gnu.org/gnu/octave/octave-3.8.1.tar.bz2

        ./configure --prefix=/usr && make  && make install

        The usual suspect packages for DSP in this order taken from http://octave.sourceforge.net/
        general, control ,signal


Gruss
WK
derguteweka
Threadstarter
54070
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47

Re: Selbstcompilieren von GNU Octave

Neuer Beitragvon derguteweka am Dienstag 29. März 2016, 19:27

Moin,

So, dieses Jahr ein Oster-Octave, hoffentlich sind keine faulen Eier drinnen versteckt...
Diesmal gebaut unter LFS-7.9.
Es gibt mal wieder die ungeliebte TeX-Abhaengigkeit; ein configure mit --disable-docs umschifft das zwar, aber danach geht in octave die help funktion nicht, nicht wirklich schoen. Bei fltk gibts bisschen Probleme mit Variablendefinitionen; daher ist der Patch wichtig; sonst gibts spaeter beim compilieren von octave Mecker.

Code: Alles auswählen
  Mar 2016  octave-4.0.1
        EB2:
        * LFS-7.9 (gcc-5.3.0)
        build also Fortran compiler (in addtion to c,c++):
          ../gcc-5.3.0/configure -- ... --enable-languages=c,c++,fortran \

        * This is needed very often, so save time and extend life of your keyboard by:
          alias cmi='./configure --prefix=/usr --disable-static && make && make install'

        ********************************************************************
        Qhull :
        http://www.qhull.org/download/qhull-2015-src-7.2.0.tgz
        cd build
        cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
        make && make install

        ********************************************************************
        szip, might be useful for HDF5(no idea?)
        http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz

        cmi

        ********************************************************************
        HDF5 :
        http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.16.tar.bz2
        mkdir build
        cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
          make && make install

        ********************************************************************
        fftw:
        http://www.fftw.org/fftw-3.3.4.tar.gz

        ./configure --prefix=/usr --enable-threads --enable-sse2 --enable-shared
        make  && make install
        make distclean
        ./configure --prefix=/usr --enable-threads --enable-sse --enable-shared --enable-float
        make  && make install

        ********************************************************************
        glpk:
        http://ftp.gnu.org/gnu/glpk/glpk-4.59.tar.gz

        cmi
        ********************************************************************

        fltk (patch avoids unresolved symbols during build/start of octave)
        http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz

        wget -c http://www.fltk.org/strfiles/3156/Fl_XFont_On_Demand.patch
        patch  -Np0 -i ../Fl_XFont_On_Demand.patch
        ./configure --prefix=/usr  --enable-threads  --enable-xinerama  --enable-xft --enable-xdbe --enable-shared
        make && make install

        ********************************************************************
        openblas-0.2.17
        http://www.openblas.net

        make
        make PREFIX=/usr install
        cd /usr/lib
        ln -sf libopenblas.so.0  libblas.so.0
        ln -sf libopenblas.so  libblas.so
        ln -sf libopenblas.a  libblas.a


        ********************************************************************
        LAPACK
        http://www.netlib.org/lapack/lapack-3.6.0.tgz

        cp make.inc.example make.inc
    --- make.inc    2013-11-17 01:25:52.000000000 +0100
    +++ make.inc    2014-02-10 19:11:57.777994496 +0100
    @@ -65,7 +65,7 @@
    #  machine-specific, optimized BLAS library should be used whenever
    #  possible.)
    #
    -BLASLIB      = ../../librefblas.a
    +BLASLIB      = /usr/lib/libblas.a -lpthread
    LAPACKLIB    = liblapack.a
    TMGLIB       = libtmglib.a
    LAPACKELIB   = liblapacke.a


        ulimit -s 65000
        make
        cp liblapack.a /usr/lib

        ********************************************************************
       arpack-ng
        http://forge.scilab.org/index.php/p/arpack-ng/ from there to git repository
        ./bootstrap
        LDFLAGS="-lpthread" ./configure --prefix=/usr && make && make install

        ********************************************************************
        qrupdate
        http://downloads.sourceforge.net/project/qrupdate/qrupdate/1.2/qrupdate-1.1.2.tar.gz

        make PREFIX=/usr lib
        make PREFIX=/usr install

        ********************************************************************
        metis:
        http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz

        make config && make
        cp build/Linux-i686/libmetis/libmetis.a /usr/lib

        ********************************************************************
        suitesparse
        http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.5.1.tar.gz

        LDFLAGS="-lgfortran" make
        mkdir -p /usr/include/suitesparse
        for F in UMFPACK AMD CAMD COLAMD CCOLAMD CHOLMOD CXSparse
        do
        cp -v ${F}/Include/*h /usr/include/suitesparse
        cp -v ${F}/Lib/*a /usr/lib
        done
        cp -v SuiteSparse_config/*h /usr/include/suitesparse
        cp -v SuiteSparse_config/*a /usr/lib

        ********************************************************************
        plotutils (gnuplot dependency)
        ftp://ftp.gnu.org/pub/gnu/plotutils/plotutils-2.6.tar.gz
        Do some changes in z_write.c to get rid of problems with current libpng (1.5x):

    --- orig/plotutils-2.6/libplot/z_write.c        2008-07-16 02:54:10.000000000 +0200
    +++ plotutils-2.6/libplot/z_write.c     2012-01-09 00:26:44.000000000 +0100
    @@ -164,7 +164,7 @@
         }

       /* cleanup after libpng errors (error handler does a longjmp) */
    -  if (setjmp (png_ptr->jmpbuf))
    +  if (setjmp (png_jmpbuf(png_ptr)))
         {
           png_destroy_write_struct (&png_ptr, (png_info **)NULL);
           return -1;
    @@ -444,7 +444,7 @@
    #endif
         }

    -  longjmp (png_ptr->jmpbuf, 1);
    +  longjmp (png_jmpbuf (png_ptr), 1);
    }

        cmi
        ********************************************************************
         libgd:
         https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.xz

        cmi

        ********************************************************************
        wxWidgets (gnuplot dependency)
        https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxWidgets-3.1.0.tar.bz2

        ./configure --prefix=/usr --disable-static  --enable-unicode && make && make install

        ********************************************************************
        gnuplot:
        http://downloads.sourceforge.net/project/gnuplot/gnuplot/5.0.3/gnuplot-5.0.3.tar.gz

        ./configure --prefix=/usr --disable-static  && make && make install

        ********************************************************************
        GraphicsMagick++
        http://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.23/GraphicsMagick-1.3.23.tar        ./configure --prefix=/usr --with-perl --enable-shared  && make && make install

        ********************************************************************
        Gl2ps
        http://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz

        mkdir build
        cd build
        cmake  -DCMAKE_INSTALL_PREFIX=/usr  ..
        make && make install


        ********************************************************************
        QScintilla:
        http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.9.1/QScintilla-gpl-2.9.1.tar.gz
        cd Qt4Qt5
        qmake qscintilla.pro
        make && make install

        ********************************************************************
        octave:

        ftp://ftp.gnu.org/gnu/octave/octave-4.0.1.tar.bz2

        LIBS=" -lsuitesparseconfig -lmetis" ./configure --prefix=/usr && make  && make install

        The usual suspect packages for DSP in this order taken from http://octave.sourceforge.net/
        general, control ,signal
        e.g.:
        pkg install -auto -global control-3.0.0.tar.gz
        pkg install -auto -global signal-1.3.2.tar.gz.xz


Gruss
WK
derguteweka
Threadstarter
58260
Moderator
 
Beiträge: 1043
Registriert: Freitag 18. August 2006, 15:47


Zurück zu Computer Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste