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
Gruss
WK