ViitorMake/BaseBuild/toolchain/zlib
kueller 2df7a37f55 Anpassung an neue Version. Einarbeitung der neuesten LFS version.
gcc ist jetzt von gmp und mpfr abhängig. xz sind neue pack tools, die
effizienter sein sollen als bzip2 und gzip.


git-svn-id: svn://svn.compuextreme.de/Viitor/V962/ViitorMake@4557 504e572c-2e33-0410-9681-be2bf7408885
2009-03-26 07:46:49 +00:00

113 lines
4.9 KiB
Bash

#!/bin/bash
#Framework, welches ein komplettes Linux System aus den Sourcen erstellt
#dieses Framework wird im CVS Repository
#:pserver:cvs.tramp-bbs.de:/opt/cvs zur Verfügung gestellt
#
#Lage dieser Datei im Archiv: $HeadURL: svn://odin.dmz.lan/Viitor/V962/ViitorMake/BaseBuild/Basesys/zlib $
#
#(c) 2003 Harald Kueller, Germany
#This program is free software; you can redistribute it and/or
#modify ist under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version
#2 of the License, or (at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#See the GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not write to the Free Software Foundation,
#Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#Dies ist ein Module zur Verwendung mit genpkg. Die Erzeugung eines
#Viitor Linux Packetes wird über die Funktionen premk, mk und postmk
#gesteuert. premk() dient zur Vorbereitung des Sourcecodes. Hier können
#diverse Änderungen am sourcecode (mit awk/sed usw.) vorgenommen werden
#mk() umfasst die source Konfiguration und das Übersetzten des source
#codes. Auch die Installation muß von mk erledigt werden. Hier gild dass
#die Installation immer nach $TMPROOT erfolgen soll (meisst kann das mit
#"make DESTDIR=$TMPROOT install" angestossen werden). postmk kann
#vor der packeterstellung noch einiges am installationtree ändern. postmk
#läuft nachdem die Packetabhängigkeiten erstellt wurden.
#Das Verhalten von genpkg kann über die Variable MKPKG gesteuert werden.
#Hier müssen FLAGS zur Steuerung gesetzt werden. Folgende Flags werden
#erkannt:
#
# 1 : Package Erzeugung erzwingen. Packet wird, auch wenn es schon
# vorhanden ist, ohne weitere rückfragen neu Erzeugt.
# 2 : Package Installation erzwingen. Installpkg wird mit -f aufgerufen.
# Das bewirkt, das installpkg keine rückfragen bei der installation
# Stellt, und das packet in jedemfall (neu) installiert.
# 4 : Sourcepacket nicht nach MAKEDIR entpacken. Ist dieses Flag gesetzt
# muss sich das Module selber um das Entpacken der sourcedateien kümmern.
# vor allem wichtig bei Packeten, für die es keine source.tgz gibt
# (z.B. aus dem CVS generierte Packete).
# 8 : Erstellung des Packetes aus $TMPROOT wird unterdrückt. Dies ist bei
# manchen Sonderfällen möglich - wenn sich z.B. der Packetnamen nicht
# aus dem Namen des sourcearchives ableiten lässt. Packet sollte in
# so einem Fall in der postmk() Funktion erstellt werden.
# 16 : Packet wird nicht installiert. Bei Packeten wie tar oder bash kann
# die installation mittelst installpkg probleme machen.
# 32 : Dependics File so erzeugen, das die Abhängigkeiten bei der installation
# erfüllt sein müssen. installpkg bricht in so einem fall bei fehlenden
# packeten die installation ab, und gibt nicht "nur" warnmeldungen aus.
# Wichtig bei packeten mit postinstallroutine, die software aus dem
# frisch installierten Packet verwendet (wie z.B. postgresql)
# 64 : sourcetree aufräumen nach packeterstellung unterbinden.
#
#Module zur Erstellung des Packetes: zlib
#Quelle der Source Archive: http://freshmeat.net/
#Kurzbeschreibung:
#Komprimierungslibrary mit Zip Algorythmuss
#wird von sehr vielen Packeten verwendet, und gehört
#inzwischen zur Basisausstattung eines jeden GNU/Linux Systems
#
#Letzte Änderung von: $Author: kueller $
#Datum der letzten Änderung: $Date: 2008-05-02 15:13:24 +0200 (Fr, 02 Mai 2008) $
#Version der Datei: $Revision: 4220 $
#
SRCPATH=Base/lib
#Funktion wird nach dem Entpacken der Sourcen, im Tree der Sourcen
#ausgeführt (sprich unpack src; cd src; premk)
#Hier kann z.B. das Makefile gepatcht werden (SED lässt grüssen
#Patches unterdruecken. fuer Basesystem build wird in zlib ein fPIC patch
#benoetigt, der aber im spaeteren System so richtig fuer stimmung sorgt
#(segfault in diversen applikationen beim build, wenn diese libpng verwenden
#Leider crashed auch subversion wenn dieser patch aktiv ist (das
#repository wird zlib comprimiert uebertragen -> beim entpacken crachts dann)
#daher muss jetzt zlib im Basesys.dmk 2 mal gebaut werden, einmal mit, und
#einmal ohne patch
if [ -d /var/install/zlib* ]; then
(( MKPKG = $MKPKG | 128 ))
(( MKPKG = $MKPKG | 8 ))
(( MKPKG = $MKPKG | 16 ))
fi
premk() {
echo "nothing to do for premk()"
}
#Hier wird der Make Prozess der Sourcen definiert
mk() {
if [ "$MK64BIT" == "true" ]; then
ADDOPTIONS="--libdir=/tools/lib64"
fi
CC="${CC} ${BUILDOPTIONS}" \
CXX="${CXX} ${BUILDOPTIONS}" \
./configure --prefix=/tools \
$ADDOPTIONS \
--shared
make -j $NUMCPU &&
make -j $NUMCPU install
}
#Funktion wird nach Ablauf des Make Prozesses ausgeführt, und kann
#in $TMPROOT noch einiges korrigieren
postmk() {
echo "Nothing to do for postmk()"
}