Komplettierung und diverse Korrekturen

git-svn-id: svn://svn.compuextreme.de/Viitor/V962/ViitorMake@5897 504e572c-2e33-0410-9681-be2bf7408885
This commit is contained in:
kueller 2010-12-20 09:04:29 +00:00
parent a3205eeaeb
commit d2b4248c0b

View File

@ -12,7 +12,8 @@ werden ueber Variablen die Pfade zu den Sourcen, zum "Make" Verzeichniss, in
welchem die Sourcen entpackt, und die binarys erzeugt werden, usw eingestellt. welchem die Sourcen entpackt, und die binarys erzeugt werden, usw eingestellt.
Ausserdem wird die System Optimierung fuer das Zielsystem ($TARGET, $CPU) Ausserdem wird die System Optimierung fuer das Zielsystem ($TARGET, $CPU)
eingestellt. eingestellt.
Dabei ist $TARGET von $CPU abhaengig. Aktuell werden folgende TARGET unterstuetzt: Dabei ist $TARGET von $CPU abhaengig. Aktuell werden folgende
TARGET definitionen unterstuetzt:
i586-Viitor$VERSION-linux-gnu = Pentium, i586-Viitor$VERSION-linux-gnu = Pentium,
K6 prozessoren K6 prozessoren
@ -25,8 +26,8 @@ athlon-Viitor$VERSION-linux-gnu = AMD Athlon K7,
x86_64-Viitor$VERSION-linux-gnu = AMD K8 (opteron), x86_64-Viitor$VERSION-linux-gnu = AMD K8 (opteron),
amd64 amd64
turion als multilib (32/64 BIT) turion als multilib (32/64 BIT)
ungetestet mangels system: Intel CPU mit EMT64 Intel CPU mit EMT64
sparc64-Viitor$VERSION-linux-gnu = Ultrasparc2 CPU im Multilib Modus sparc64-Viitor$VERSION-linux-gnu = Ultrasparc2 (In Entwicklung)
Die Funktion der Pfad Variablen ist im File defsys hinreichend Die Funktion der Pfad Variablen ist im File defsys hinreichend
dokumentiert. Daher wird hier nicht naeher darauf eingegangen. dokumentiert. Daher wird hier nicht naeher darauf eingegangen.
@ -37,11 +38,11 @@ eine entsprechendes Verhalten festgelegt.
BIT1 (1):Wenn binaerpacket schon existiert, entsprechenden Warnhinweis BIT1 (1):Wenn binaerpacket schon existiert, entsprechenden Warnhinweis
Unterdruecken Unterdruecken
BIT2 (2):Package mit "forece" (-f bei installpkg) installieren. BIT2 (2):Package mit "forec" (-f bei installpkg) installieren.
d.H. das package wird ohne rueckfrage, auch wenn es bereits d.H. das package wird ohne rueckfrage, auch wenn es bereits
installiert ist eingespielt installiert ist eingespielt
BIT3 (4):Sources nicht entpacken. Modul kuemmert sich selber darum BIT3 (4):Sources nicht entpacken. Modul kuemmert sich selber darum
Dies ist vor allem bei inconsistenten srcarchive- srcdir- und Dies ist vor allem bei inkonsistenten srcarchive- srcdir- und
Modulenamen notwendig Modulenamen notwendig
BIT5 (8):pkg erzeugung wird unterbunden. Nach dem build muss BIT5 (8):pkg erzeugung wird unterbunden. Nach dem build muss
Sich das Modul selber darum kuemmern. Ist dann notwendig, Sich das Modul selber darum kuemmern. Ist dann notwendig,
@ -55,6 +56,7 @@ BIT7 (32):dependics als "forced" ein *.dep eintragen. Damit wird eine
Installation ohne vorhandene dependics unterbunden. Installation ohne vorhandene dependics unterbunden.
BIT8 (64):Aufraeumen des source verzeichnisses nach dem Build unterlassen BIT8 (64):Aufraeumen des source verzeichnisses nach dem Build unterlassen
BIT9 (128):Vorhandene Patches NICHT automatisch anwenden BIT9 (128):Vorhandene Patches NICHT automatisch anwenden
BIT10 (256):installpkg mit -o (overwrite existing files) ausführen
Bits in einer Variablen koennen mit Bits in einer Variablen koennen mit
@ -92,10 +94,9 @@ Der Ablauf von genpkg;
genpkg bekommt als Argument den Namen des zu verwendenden Modules uebergeben. genpkg bekommt als Argument den Namen des zu verwendenden Modules uebergeben.
Ueber die Funktion (in functions/functions definiert) UnPack werden in Ueber die Funktion (in functions/functions definiert) UnPack werden in
$LFSSOURCE/$SRCPATH gefundene source archive (tar.gz, tar.bz2) nach $MKPKG (aus $LFSSOURCE/$SRCPATH gefundene source archive (tar.gz, tar.bz2) nach
defsys) entpackt. $MKPKG (aus defsys) entpackt. Weiterhin wird geprueft ob gleichnamige files
Weiterhin wird geprueft ob gleichnamige files mit <ARCHPATTERN>.patch.* mit <ARCHPATTERN>.patch.* existieren.
existieren.
Sofern diese vorhanden sind, und BIT9 (128) in $MKPKG NICHT gesetzt ist, Sofern diese vorhanden sind, und BIT9 (128) in $MKPKG NICHT gesetzt ist,
werden die patches mit "patch -p1" im gerade entpackten sourcetree eingespielt. werden die patches mit "patch -p1" im gerade entpackten sourcetree eingespielt.
Weiterhin wird $TMPROOT um <PKGNAME> erweitert; TMPROOT=$TMPROOT/<pkgname>$$ und Weiterhin wird $TMPROOT um <PKGNAME> erweitert; TMPROOT=$TMPROOT/<pkgname>$$ und
@ -171,6 +172,7 @@ dev.tar
man.drg man.drg
man.cont man.cont
man.tar man.tar
preinstall
Dieses File wird nach $DISTTARGET/$SRCPATH geschrieben. Dieses File wird nach $DISTTARGET/$SRCPATH geschrieben.
@ -204,6 +206,7 @@ init/ Ein hier vorgefundenes genpkg wird gesourced,
nach beendigung von init/genpkg geloescht! nach beendigung von init/genpkg geloescht!
CVS alle vorhandenen CVS Verzeichnisse werden CVS alle vorhandenen CVS Verzeichnisse werden
geloescht geloescht
.svn Subversion status files werden ebenfalls aufgeraeumt
Nach dieser Aufbereitung werden alle vorhandenen Verzeichnisse und files Nach dieser Aufbereitung werden alle vorhandenen Verzeichnisse und files
1:1 nach $TMPROOT kopiert. 1:1 nach $TMPROOT kopiert.
@ -250,9 +253,9 @@ ArchiveName() Wandelt den Namen eines beliebigen Source Archives in
ERGEBNISS=`ArchivName()` ERGEBNISS=`ArchivName()`
ARGUMENTE: ArchiveName <src filename> ARGUMENTE: ArchiveName <src filename>
GetCVS() Dient dem Checkout von Addon File fuer pkgs. Ist weiter GetSVN() Dient dem Checkout von Addon File fuer pkgs. Ist weiter
oben genauer beschrieben! oben genauer beschrieben!
ARGUMENTE: GetCVS <CVS Projetct Name> <$TMPROOT> ARGUMENTE: GetSVN <Subversion Projetct Name> <$TMPROOT>
GenDependics() Gibt eine Liste aller Librarys der im Uebergebenen Pfad GenDependics() Gibt eine Liste aller Librarys der im Uebergebenen Pfad
befindlichen binary Files zurueck befindlichen binary Files zurueck
@ -262,6 +265,12 @@ StripPkg() Durchsucht den angegebenen Pfad nach binary files, und
entfernt unnoetige debugging informationen aus diesen. entfernt unnoetige debugging informationen aus diesen.
ARGUMENTE StripPkg <Verzeichniss in welchem gesucht werden soll> ARGUMENTE StripPkg <Verzeichniss in welchem gesucht werden soll>
ClearHostSysNameing32()
Siehe ClearHostSysNameing. Hier geht es um TARGET32, wie
von mk32() verwendet. und ist beim Multilib Build fuer
die 32 Bit Version der Binarys
ARGUMENTE: ClearHostSysNameing <Zu untersuchendes Verzeichniss>
ClearHostSysNameing() ClearHostSysNameing()
Wird beim ./configure aufruf eine --target oder --host Wird beim ./configure aufruf eine --target oder --host
angegeben, nehmen manche makes dies zum anlass die erzeugten angegeben, nehmen manche makes dies zum anlass die erzeugten
@ -271,17 +280,6 @@ ClearHostSysNameing()
benennt diese nach <binname> um. benennt diese nach <binname> um.
ARGUMENTE: ClearHostSysNameing <Zu untersuchendes Verzeichniss> ARGUMENTE: ClearHostSysNameing <Zu untersuchendes Verzeichniss>
ClearHostSysNameing32()
Siehe ClearHostSysNameing. Hier geht es um TARGET32, wie
von mk32() verwendet. und ist beim Multilib Build fuer
die 32 Bit Version der Binarys
ARGUMENTE: ClearHostSysNameing <Zu untersuchendes Verzeichniss>
ClearTargetNameing()
Siehe ClearHostSysNameing. Jedoch wird hier nicht
Umbenannt, sondern ein link mit <binname> angelegt.
ARGUMENTE: ClearTargetNameing <zu untersuchendes Verzeichniss>
MakeCheck() Wrapper fuer "make check". Prueft ein FLAG, das z.B. bei MakeCheck() Wrapper fuer "make check". Prueft ein FLAG, das z.B. bei
makeViitor mit der Option -c gesetzt wird, und fuehrt makeViitor mit der Option -c gesetzt wird, und fuehrt
nur wenn das FLAG gesetzt ist ein nur wenn das FLAG gesetzt ist ein
@ -289,50 +287,7 @@ MakeCheck() Wrapper fuer "make check". Prueft ein FLAG, das z.B. bei
aus. aus.
ARGUMENTE: MakeCheck <Optionen fuer make> ARGUMENTE: MakeCheck <Optionen fuer make>
NoOpt() Schaltet die Optimierung (durch $CFLAGS und $CXXFLAGS) CleanTextFiles entfernt aus allen files in $TMPROOT den string aus $TMPROOT
fuer den aktuellen build in 2 stufen aus.
Hinfaellig ab der Viitor Version 961, da hier keine
CFLAGS mehr gesetzt werden, und die Optimierung im
Module explizit durch Verwendung von $BUILDOPTIONS und
$BUILDOPTIONS32 selektiert werden muss.
ARGUMENTE: NoOpt [0|1|2]
0 Optimierung off
2 Optimierung off
* Optimierung O3 entfernen alles andere
beibehalten
RestoreOpt() Schaltet die mit NoOpt ausgeschaltene Optimierung wieder
ein wird durch CleanUp() aufgerufen!
InstallOldKernelh()
Tauscht /usr/src/linux durch die Kernelheader eines
2.4.x kernels aus. Hilft oft bei kompile Problemen die
aus api aenderungen am aktuellen Kernel resultieren.
Muss fuer die V961 neu geschrieben werden, sofern sie
noch benoetigt wird.
ARGUMENTE: InstallOldKernelh [1]
1 Installieren
* Orginal Kernel wieder herstellen
Wird so von CleanUp aufgerufen.
UseOldGcc() Leider hat sich im laufe der gcc Entwicklung auch das
Verstaendniss der C Syntax im gcc angepasst.
Daraus resultiert, das der aktuelle gcc (V961 verwendet
den gcc 4.1.1) oft aeltere sourcen (ANSI C, oder gar
Kerningham Richi C) als fehler anmeckert.
Daher werden in Viitor verschiedene gcc Versionen
verwendet. die Aelteste Version stellt der gcc/2.95.x
dar, mit Viitor V961 nicht mehr erstellt wird, da diesem
eine Unterstuetzung fuer 64 Bit vollstaendig fehlt.
Ansonsten wird noch eine 3.3.x mitgeliefert, welche sich
als sehr zuverlaessig erwiesen hat.
Mittels dieser Funktion kann die zu verwendende gcc
version umgeschalten werden.
ARGUMENTE; UseOldGcc [1|2]
1 gcc-2.95-3 Verwenden
2 gcc-3 Verwenden
* System default gcc verwenden
Wird so von CleanUp verwendet.
GetFlags() Rechnet Rechte strings wie sie von ls -l ausgegeben GetFlags() Rechnet Rechte strings wie sie von ls -l ausgegeben
werden in Ihre Oktalen Entsprechungen um und gibt den werden in Ihre Oktalen Entsprechungen um und gibt den
@ -353,16 +308,17 @@ MakeMgtFiles() Erstellt aus einem vorgegebenen Tree die <prefix>.cont
SetConfig() $PKG_CONFIG_PATH steuert pkg-config. und gibt diesem an, SetConfig() $PKG_CONFIG_PATH steuert pkg-config. und gibt diesem an,
wo die files zur Linker Configuration von libraries zu wo die files zur Linker Configuration von libraries zu
finden sind. Die Entsprechenden Konfigurationen werden von finden sind. Die Entsprechenden Konfigurationen werden
den entsprechenden Libraries mitgebracht, und beim "make install" von den entsprechenden Libraries mitgebracht, und beim
eingespielt. "make install" eingespielt.
Mit Viitor64 liegen diese sowohl unter */lib/pkgconfig als auch Mit Viitor64 liegen diese sowohl unter */lib/pkgconfig
unter */lib64/pkgconfig. Je nachdem ob fuer 32 BIT oder fuer 64 als auch unter */lib64/pkgconfig. Je nachdem ob fuer
BIT gebaut wird, muss nun das richtige configfile gewaehlt werden. 32 BIT oder fuer 64 BIT gebaut wird, muss nun das
Welche verwendet werden bestimmen die pfade in $PKG_CONFIG_PATH. richtige configfile gewaehlt werden. Welche verwendet
SetConfig sorgt jetzt mittels sed dafuer, das entweder nur werden bestimmen die pfade in $PKG_CONFIG_PATH.
die lib64 ("s/lib/lib64/") oder nur die lib ("s/lib64/lib") SetConfig sorgt jetzt mittels sed dafuer, das entweder
verzeichnisse durchsucht werden. nur die lib64 ("s/lib/lib64/") oder nur die lib
("s/lib64/lib") verzeichnisse durchsucht werden.
ARGUMENTE: SetConfig [32|64|0] ARGUMENTE: SetConfig [32|64|0]
32 PKG_CONFIG_PATH auf lib umstellen 32 PKG_CONFIG_PATH auf lib umstellen
64 PKG_CONFIG_PATH auf lib64 umstellen 64 PKG_CONFIG_PATH auf lib64 umstellen
@ -376,26 +332,37 @@ X11R7_Fix() Mit der Umstellung der X11 Version auf 7.x.x wird in
koennen. Dies wird nach Erstellung des Packages von koennen. Dies wird nach Erstellung des Packages von
CleanUp wieder entfernt CleanUp wieder entfernt
Fix_Input_h() Einige Programme, die Joysticks, maus oder tastatur MakeFifo() Legt einen Fifo an und gibt den Filenamen zurück.
verwenden sind von den deklarationen in wird von ExecCommand benötigt (paralles abarbeiten
/usr/src/linux/include/linux/input.s bzw. von Shell Commands)
/usr/include/linux/input.h abhaengig. Da in Kernel 2.6.x
permanent aenderungen der api stattfinden, macht dieses
file in aktuellen versionen haeufig probleme.
Mit dieser Routine wird eine "saubere" input.h aus dem
Kernel 2.4.x tree temporaer eingespielt, die nachher
durch CleanUp wieder aufgeraeumt wird.
UseKernelh() Die mit V961 eingefuehrten gepatchten kernel Header files ExecCommand() Führt commandos nach einem InitDirspatch parallelisiert
von linuxfromscratch sind leider nicht komplett. Werden kernel aus.
Includes benoetigt, die in den linuxfromscratch packeten nicht
enthalten sind, kann mit UserKenrelh 1 auf die unter InitDispatch() Initialisiere Pralell Shell Execution Environment
/usr/src/linux/include/linux installierten header umgeswitcht
werden. Cleanup, oder ein UserKernelh 0 switcht wieder auf DispatchCmd() Auführungsroutine für Prallel Execution Environment
die gepatchten includes zurueck.
ARGUMENTE: UseKernelh [1|0] EndDispatch() Wartet daruaf das Alle Commands im Parallel Excution
1 = auf /usr/src/linux/include/linux switchen Environment sich beenden, und beendet dann das PEE.
0 = /usr/include/linux.orig wieder herstellen
GenDynLib32() Baut aus einer statischen Library entsprechende
Dynamische Pendantes. Hierzu ist es notwendig das die
Objectfiles der statischen Library mit -fPIC übersetzt
wurden. Als Argumente muss der Absolute (!) Pfad zur
Statischen Library, sowie die Version der zu
erzeugenden Dynamischen Library angegeben werden.
Diese Funktion muss speziell bei einem Multilib (64Bit)
build verwendet werden, wenn eine 32 Bit Library
gebaut werden soll (aus eine 32 Bit Statischen Lib)
GenDynLib() Siehe GenDynLib32(). Baut 64 Bit Libs bei einem
Multilib Build, und 32 Bit libs bei einerm 32 Bit Build
extractfile() Extrahiert Files aus einem Viitor Archive.
Aufruf mit: extractfile <ArchiveName> <FileName>
wobei Filename der name eines Archive Bestandteils sein
muss (wie weiter oben beschrieben)
Wird bei der Modulerstellung bemerkt, das weitere Routinen sinnvoll Wird bei der Modulerstellung bemerkt, das weitere Routinen sinnvoll
sind, so koennen diese in functions/functions erstellt werden, und sind, so koennen diese in functions/functions erstellt werden, und