#!/bin/bash #set -x #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$ # #(c) 2007 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. # #Beschreibung: Erzeugung von ViitorLinux installabel packages aus # den Sourcen heraus # Script wird durch externe Module gesteuert. # #Aufrufparameter: # -c :PKG Cluster erzeugen - Filename enthält eine liste von # Modulnamen, welche alle pkgs eines Software Clusters # Erzeugen # -m:PKG Erzeugen - Modulename bezeichnet ein genpkg module # über welches die PKG Erzeugung gesteuert wird # -s :System Erzeugen. Filename enthält die Namen von Clustern # Welche zusammengenommen das komplette Viitor System ausmachen # -f :Forciere die Erzeugung des Packages - auch wenn dieses bereits # vorhanden ist # -i :Installation des Packetes forcieren. Abfragen bei bereits # installierten package werden unterdrückt # #Letzte Änderung von: $Author$ #Datum der letzten Änderung: $Date$ #Version der Datei: $Rev$ # if [ ! -f $HOME/.ViitorMake ]; then echo "Please run Scripts/initViitorMake" echo "From ViitorMake Root Direktory" echo "This will create a File $HOME/.ViitorMake" echo "with necessary information for running" echo "ViitorMake Scripts" exit 10 fi source $HOME/.ViitorMake if [ -f defsys ]; then source defsys elif [ -f $VMAKEDIR/defsys ]; then source $VMAKEDIR/defsys else echo "defsys not found" exit 10 fi NUMCPU=`grep cpu[0-9] /proc/stat|wc -l|sed -e "s/ //g"` (( NUMCPU = $NUMCPU * 2 )) export NUMCPU if echo $TARGET|grep -q 64; then MK64BIT=true else MK64BIT=false fi if [ -f functions/functions ]; then source functions/functions elif [ -f $VMAKEDIR/functions/functions ]; then source $VMAKEDIR/functions/functions else echo "Error: Function Library not found!" exit 10 fi Interrupt_script() { echo "Somthing want to stop your runnint $0 script" echo "should i really stop executation of $0?" read ANSWER if [ "$ANSWER" == "y" ]; then echo "Should i run CleanUp bevor end of script ?" echo "This will delete all used resources of this scipt" read ANSWER if [ "$ANSWER" == "y" ]; then CleanUp fi exit 1 else return fi } trap 'Interrupt_script' 1 trap 'Interrupt_script' 2 trap 'Interrupt_script' 3 trap 'Interrupt_script' 9 trap 'Interrupt_script' 15 trap 'Interrupt_script' 19 trap 'Interrupt_script' 31 EchoHelp() { echo "$0 -c|m|-s [-fi] -b Verwende für tmpdateien (ansonsten /tmp/genpkg\$\$ -c Generate PKG Cluster defined in -m Generate PKG as defined in Module -s Generate System from clusters defined in -d Debug aktivieren. genpkg hält nach jeder Erstellung eines Packetes an und wartet auf einen Tastendruck. -f Force Generating of Modules -i Force Installation of generated packages -h Show this help" } pkggen() { MODULENAME=$1 MODULEPATH=`dirname $1` unset SRCDIR MKPKG DSTPKGNAME PKGSTARTDIR=`pwd` MODULEPATH=$PKGSTARTDIR/$MODULEPATH #MKPKG wird BINAER augewertet #Bedeutung der Stellen #0000001 -> Package wird in jedem fall neu Erzeugt. Abfrage auf bereits #(1) vorhandenes Package wird unterdrückt #0000010 -> Package wird in jedem fall neu Installiert. Abfragen werden #(2) unterdrückt #0000100 -> Source packet wird nicht von pkggen funktion entpackt. #(4) das Module muss sich darum kümmern (premk() funktion) #0001000 -> Binärdaten werden nicht als Packet gepackt -> darum kümmert #(8) sich das Module (postmk() Funktion) #0010000 -> Kein installationsversuch des neu erstellten Packetes #(16) seitens pkggen #0100000 -> Bei Installation MÜSSEN die Abhängigkeiten erfüllt sein #(32) (FORCE in *.deb file) #1000000 -> Nach packeterzeugung wird der sourcetree nicht aufgeräumt PROGNAME=`basename $1` TMPROOT=$STORETMPROOT/$PROGNAME$$ CLEANUP_FLAGS=0 MKPKG=0 ADDONPROJEKT="" source $1 if [ "$FORCEINSTALL" == "1" ]; then (( MKPKG = $MKPKG | 2 )) fi if [ "$FORCEMAKE" == "1" ]; then (( MKPKG = $MKPKG | 1 )) fi if [ "$NoRewriteName" == "true" ]; then PKGNAME=`ArchiveName $LFSSOURCE/$SRCPATH/$PROGNAME$PATTERN*.t* 1` else PKGNAME=`ArchiveName $LFSSOURCE/$SRCPATH/$PROGNAME$PATTERN*.t*` fi (( CHECKFLAG = $MKPKG & 5 )) if [ "$CHECKFLAG" == "0" ]; then if [ -f $DISTTARGET/$SRCPATH/$PKGNAME ]; then echo "The Package $PKGNAME" echo "Exist already in $DISTTARGET/$SRCPATH -" echo "should i remake it ? [y/N] " read ANSWER if [ "$ANSWER" != "y" ]; then echo "Stopping Make of $PKGNAME" return 10 fi fi fi (( CHECKFLAG = $MKPKG & 4 )) if [ "$CHECKFLAG" == "0" ]; then cd $MAKEDIR CheckError "Could not change working Dir to $MAKEDIR" PROGPATH=$LFSSOURCE/$SRCPATH/$PROGNAME if ! ls $PROGPATH$PATTERN*.t* >/dev/null 2>&1; then echo "Sourcefile $PROGPATH does not exist" CleanUp exit 0 fi for i in $PROGPATH$PATTERN*.t*; do UnPack $MAKEDIR $i CheckError "Unpack of $i failed" (( CHECKFLAG = $MKPKG & 64 )) if [ "$CHECKFLAG" == "0" ]; then (( CLEANUP_FLAGS = $CLEANUP_FLAGS | 1 )) fi done if [ ! "$SRCDIR" ]; then SRCDIR=$PROGNAME fi cd $SRCDIR* CheckError "Could not change Working Dir to $SRCDIR*" (( CHECKFLAGS = $MKPKG & 128 )) if [ "$CHECKFLAGS" == "0" ]; then echo "Checkin for patch" if ls $PROGPATH$PATTERN*.patch.* >/dev/null 2>&1; then for i in $PROGPATH$PATTERN*.patch.*; do echo "Applaying Patch $i" SrcPatch $MAKEDIR/$SRCDIR* $i done fi fi fi if [ ! -d $TMPROOT ]; then mkdir -p $TMPROOT fi (( CLEANUP_FLAGS = $CLEANUP_FLAGS | 2 )) if [ -f /etc/profile ]; then source /etc/profile fi if [ "$OPT" ]; then (( C_FLAG = $OPT & 16 )) fi if [ "$C_FLAG" == 0 ] && [ -f ~/.bash_profile ]; then CDIR=`pwd` source ~/.bash_profile cd $CDIR fi if [ -f $MODULEPATH/.init ]; then source $MODULEPATH/.init fi /sbin/ldconfig premk CheckError "Somthing bad happens on premk()" sync if [ $MK64BIT == "true" ]; then if set|grep -q ^mk32; then mkdir ${TMPROOT}.64 tar -C $TMPROOT -cf - .|tar -C ${TMPROOT}.64 -xf - SetConfig 32 mk32 CheckError "Somthing bad happens on mk32()" sync SetConfig 0 mv $TMPROOT ${TMPROOT}.32 mv ${TMPROOT}.64 $TMPROOT fi fi if [ "$MK64BIT" == "true" ]; then SetConfig 64 else SetConfig 32 fi mk if [ -d ${TMPROOT}.32 ]; then if [ -d $TMPROOT ]; then tar -C $TMPROOT -cf - .|tar -C ${TMPROOT}.32 -xf - rm -r $TMPROOT else echo "TMPROOT.32 found, but no TMPROOT - ERROR" read fi mv ${TMPROOT}.32 $TMPROOT fi CheckError "Somthing bad happens on mk()" sync SetConfig 0 AKTDIR=`pwd` cd $TMPROOT CheckError "Coudn\`t change to TMPROOT $TMPROOT" if [ ! "$DSTPKGNAME" ]; then DSTPKGNAME=`echo $PKGNAME|sed -e "s/\.vpg$//"` fi if [ -d /var/install/$DSTPKGNAME ]; then mv /var/install/$DSTPKGNAME /tmp fi GenDependics $TMPROOT >/tmp/deps$$ (( CHECKFLAGS = $MKPKG & 32 )) mkdir -p $TMPROOT/../$$ for i in `cat /tmp/deps$$ |grep -v $PROGNAME`; do if [ "$CHECKFLAGS" == 0 ]; then echo "WARN $i" >>$TMPROOT/../$$/dep else echo "FORCE $i" >>$TMPROOT/../$$/dep fi done if [ -f $TMPROOT/../$$/dep ]; then bzip2 -9 $TMPROOT/../$$/dep mv $TMPROOT/../$$/dep.bz2 $TMPROOT/../$$/dep fi cd - if [ -d /tmp/$DSTPKGNAME ]; then mv /tmp/$DSTPKGNAME /var/install fi rm -f /tmp/deps$$ cd $AKTDIR StripPkg $TMPROOT postmk sync CheckError "Somthing bad happens on postmk()" if [ -d $TMPROOT/usr/man ]; then mkdir -p $TMPROOT/usr/share mv $TMPROOT/usr/man $TMPROOT/usr/share fi if [ -d $TMPROOT/usr/info ]; then mkdir -p $TMPROOT/usr/share mv $TMPROOT/usr/info $TMPROOT/usr/share fi if [ -d $TMPROOT/usr/doc ]; then mkdir -p $TMPROOT/usr/share mv $TMPROOT/usr/doc $TMPROOT/usr/share fi (( CHECKFLAGS = $MKPKG & 8 )) if [ "$CHECKFLAGS" == "0" ]; then cd $TMPROOT MANTMPROOT=$TMPROOT.man DEVTMPROOT=$TMPROOT.dev for i in `find . -name "man" -type d`; do if ls -d $i/man[0-9] 2>&1 >/dev/null; then DIR=`dirname $i` mkdir -p $MANTMPROOT/$DIR mv $i $MANTMPROOT/$DIR fi done for i in `find . -name "info" -type d`; do if [ -f $i/dir ]; then DIR=`dirname $i` mkdir -p $MANTMPROOT/$DIR mv $i $MANTMPROOT/$DIR fi done for i in `find . -type d -name "doc"`; do if [ ! -d $MANTMPROOT/usr/share/doc ]; then mkdir -p $MANTMPROOT/usr/share/doc fi cd $i tar -cf - .|tar -C $MANTMPROOT/usr/share/doc -xf - cd - rm -rf $i done for i in `find . -name "*.[ah]"`; do DIR=`dirname $i` mkdir -p $DEVTMPROOT/$DIR mv $i $DEVTMPROOT/$DIR done for i in `find . -name "*.hxx"`; do DIR=`dirname $i` mkdir -p $DEVTMPROOT/$DIR mv $i $DEVTMPROOT/$DIR done for i in `find . -name "*.hpp"`; do DIR=`dirname $i` mkdir -p $DEVTMPROOT/$DIR mv $i $DEVTMPROOT/$DIR done for i in `find . -name "*.la"`; do DIR=`dirname $i` mkdir -p $DEVTMPROOT/$DIR mv $i $DEVTMPROOT/$DIR done if [ -f $TMPROOT/tmp/preinstall ]; then bzip2 -d -c $TMPROOT/tmp/preinstall $TMPROOT/../$$/preinstall rm $TMPROOT/tmp/preinstall fi sync InitDispatch if [ ! `find . -type f|wc -l` == "0" ]; then DispatchCMD "cd $TMPROOT" \ "MakeMgtFiles bin" \ "tar -jcvf $TMPROOT/../$$/bin.tar ." \ sync fi if [ -d $MANTMPROOT ]; then DispatchCMD "cd $MANTMPROOT" \ "MakeMgtFiles man" \ "tar -jcvf $TMPROOT/../$$/man.tar ." \ sync fi if [ -d $DEVTMPROOT ]; then DispatchCMD "cd $DEVTMPROOT" \ "MakeMgtFiles dev" \ "tar -jcvf $TMPROOT/../$$/dev.tar ." \ sync fi EndDispatch sync cd $TMPROOT/../$$ for i in bin.cont bin.drg man.cont man.drg dev.cont dev.drg ; do if [ -f $i ]; then cd $TMPROOT/../$$ bzip2 $i mv $i.bz2 $i fi done METAFILE=$TMPROOT/../$$/meta if [ "$SHORTNAME" ]; then echo "ModuleName: $SHORTNAME" >$METAFILE else if [ "$NoRewriteName" == "true" ]; then SHORTNAME=`basename $MODULENAME` else SHORTNAME=`basename $MODULENAME| \ sed -e "s/src/bin/" |\ sed -e "s/SRC/BIN/" |\ sed -e "s/SOURCE/BINARY/"|\ sed -e "s/source/binary/"` fi echo "ModuleName: `basename $SHORTNAME`" >$METAFILE fi echo "BuildDate: `date +%Y%m%d`" >>$METAFILE echo -n "Module Version:" >>$METAFILE if [ -f /usr/bin/svn ]; then cd $MODULEPATH svn info `basename $MODULENAME`|\ grep "Rev:" |\ awk '{print $4}' >>$METAFILE cd - 2>&1 >/dev/null else grep "#Version der Datei: \$Rev" \ $MODULEPATH/`basename $MODULENAME` |\ awk '{print $5}' >>$METAFILE fi if [ "$ADDONPROJEKT" ]; then echo "AddOnProj: $ADDONPROJEKT" >>$METAFILE echo "AddOnVersion: $ADDONVERSION" >>$METAFILE export ADDONPROJEKT="" fi echo -n "Quellen:" >>$METAFILE grep -e "#Quelle der Source Archive:" $MODULEPATH/`basename $MODULENAME`|\ cut -d":" -f 2- >>$METAFILE echo "Description:" >>$METAFILE GREPFILE=$MODULEPATH/`basename $MODULENAME` STARTLINE=`egrep -n "^#Kurzbeschreibung" $GREPFILE|cut -d ":" -f 1` ENDLINE=`egrep -n "^#Letzte Änderung von:" $GREPFILE|cut -d ":" -f 1` (( NumLines = $ENDLINE - $STARTLINE )) (( ENDLINE -- )) head -n $ENDLINE $MODULEPATH/`basename $MODULENAME`|\ tail -n $NumLines |\ sed -e "s/^#//" \ -e "s/Kurzbeschreibung://" \ -e "/^$/d" >>$METAFILE bzip2 -9 $METAFILE mv $METAFILE.bz2 $METAFILE ARCHCONTENTS="bin.drg bin.cont bin.tar dev.drg dev.cont dev.tar man.drg man.cont man.tar" cd $TMPROOT/../$$ if [ -f dep ]; then LINE="`wc -c dep|awk '{print $1}'` " else LINE="0 " fi if [ -f meta ]; then LINE=$LINE"`wc -c meta|awk '{print $1}'` " else LINE=$LINE"0 " fi for i in $ARCHCONTENTS; do if [ -f $i ]; then LINE=$LINE"`wc -c $i|awk '{print $1}'` " else LINE=$LINE"0 " fi done if [ -f preinstall ]; then LINE=$LINE"`wc -c meta|awk '{print $1}'` " else LINE=$LINE"0 " fi echo $LINE >$DISTTARGET/$SRCPATH/$PKGNAME if [ -f dep ]; then cat dep >>$DISTTARGET/$SRCPATH/$PKGNAME fi if [ -f meta ]; then cat meta >>$DISTTARGET/$SRCPATH/$PKGNAME fi for i in $ARCHCONTENTS; do if [ -f $i ]; then cat $i >>$DISTTARGET/$SRCPATH/$PKGNAME fi done if [ -f preinstall ]; then cat preinstall >>$DISTTARGET/$SRCPATH/$PKGNAME fi cd .. rm -rf $TMPROOT/../$$ fi (( CHECKFLAGS = $MKPKG & 16 )) if [ "$CHECKFLAGS" == "0" ]; then if [ -d /var/install ]; then mkdir -p /var/install CheckError "Creation of /var/install failed" fi if [ -f /sbin/installpkg ]; then (( CHECKFLAGS = $MKPKG & 256 )) if [ "$CHECKFLAGS" == "0" ]; then INSTALLOPTS="-o" fi (( CHECKFLAGS = $MKPKG & 2 )) if [ "$CHECKFLAGS" == "0" ]; then INSTALLOPTS=$INSTALLOPTS" -i" else INSTALLOPTS=$INSTALLOPTS" -fi" fi installpkg -no $INSTALLOPTS $DISTTARGET/$SRCPATH/$PKGNAME CheckError "Installation of $PKGNAME failed" else echo "installing $DISTTARGET/$SRCPATH/$PKGNAME" cd / for k in bin.tar dev.tar man.tar; do case $k in bin.tar) SIZE=`head -n 1 $DISTTARGET/$SRCPATH/$PKGNAME|awk '{print $5}'` ;; dev.tar) SIZE=`head -n 1 $DISTTARGET/$SRCPATH/$PKGNAME|awk '{print $8}'` ;; man.tar) SIZE=`head -n 1 $DISTTARGET/$SRCPATH/$PKGNAME|awk '{print $11}'` ;; esac if [ "$SIZE" -gt "0" ]; then extractfile $DISTTARGET/$SRCPATH/$PKGNAME $k|tar -xvf - fi done PKGNAME=`echo $PKGNAME|sed -e "s/\.vpg//"` if [ ! -d /var/install/$PKGNAME ]; then mkdir -p /var/install/$PKGNAME/{dev,bin,man} fi extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg meta|\ grep -A 10 -e "^Description:" |\ grep -v -e "^Description:" \ >>$ROOT/var/install/$PKGNAME/description extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg meta|\ grep ModuleName |\ awk '{print $2}' \ >$ROOT/var/install/$PKGNAME/shortname if [ "`wc -c $ROOT/var/install/$PKGNAME/description|awk '{print $1}'`" == "0" ]; then rm -f $ROOT/var/install/$PKGNAME/description fi if [ "`wc -c $ROOT/var/install/$PKGNAME/shortname|awk '{print $1}'`" == "0" ]; then rm -f $ROOT/var/install/$PKGNAME/shortname fi if [ -f $ROOT/var/install/$PKGNAME/shortname ]; then SHNAME=`cat $ROOT/var/install/$PKGNAME/shortname` else SHNAME=$PKGNAME fi for k in bin dev man; do extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg $k.cont >>/var/install/contents extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg $k.drg >/var/install/$PKGNAME/$k/DirRights if [ "`wc -c /var/install/$PKGNAME/$k/DirRights|awk '{print $1}'`" == "0" ]; then rm -f /var/install/$PKGNAME/$k/DirRights fi done if [ -f /tmp/postinstall ]; then source /tmp/postinstall CheckError "postinstall of $PKGNAME failed" rm -f /tmp/postinstall CheckError "Deletion of /tmp/postinstall failed" fi fi fi CleanUp cd $PKGSTARTDIR } MAKE_FLAG=0 PROGDIR=`pwd` INSTALL=0 DEINSTALL=0 NOGEN=0 PROGNAME=`basename $0` ABSPROG=$VMAKEDIR/$PROGNAME while getopts :b:c:m:s:fihd opt_char; do case $opt_char in b) (( MAKE_FLAG = $MAKE_FLAG | 8 )) TMPPATH=$OPTARG ;; c) (( MAKE_FLAG = $MAKE_FLAG | 1 )) CFGFILE=$OPTARG ;; d) DEBUG=1 ;; m) (( MAKE_FLAG = $MAKE_FLAG | 2 )) MODULEFILE=$OPTARG ;; s) (( MAKE_FLAG = $MAKE_FLAG | 4 )) CFGFILE=$OPTARG ;; f) FORCEMAKE=1 ;; i) FORCEINSTALL=1 ;; \?) echo "$OPTARG is not a valid option" EchoHelp ;; h) EchoHelp ;; esac done #Überprüfen der Optimierungsflags in Initialisierungscripten if grep CFLAGS ~/.bash_profile >/dev/null 2>&1; then sed -e "s/CFLAGS.*=.*$/CFLAGS=\"$CFLAGS\"/" ~/.bash_profile | \ sed -e "s/CXXFLAGS.*=.*$/CXXFLAGS=\"$CXXFLAGS\"/" >/tmp/.bash_profile mv /tmp/.bash_profile ~/.bash_profile fi if grep CFLAGS ~/.profile >/dev/null 2>&1; then sed -e "s/^CFLAGS.*=.*$/CFLAGS=\"$CFLAGS\"/" ~/.profile | \ sed -e "s/^CXXFLAGS.*=.*$/CXXFLAGS=\"$CXXFLAGS\"/" >/tmp/.profile mv /tmp/.profile ~/.profile fi (( C_FLAG = $MAKE_FLAG & 2 )) if [ ! "$C_FLAG" == "0" ]; then (( C_FLAG = $MAKE_FLAG & 8 )) if [ "$C_FLAG" == "0" ]; then TMPPATH=/tmp/genpkg fi if [ ! -d "$TMPPATH" ]; then mkdir $TMPPATH fi if [ "$DEBUG" == "1" ]; then echo "Generate Module $MODULEFILE with" echo "makeforce=$FORCEMAKE, installforce=$FORCEINSTALL und tmppath=$TMPPATH" echo "Please press any key to continue" read fi STORETMPROOT=$TMPROOT if [ "$DEBUG" == "1" ]; then if [ "$NOTMP" == "1" ]; then pkggen $MODULEFILE 2>&1 |tee $TMPPATH/`basename $MODULEFILE` else pkggen $MODULEFILE 2>&1 |tee $TMPPATH/`basename $MODULEFILE` fi else pkggen $MODULEFILE 2>&1|tee $TMPPATH/`basename $MODULEFILE` fi exit 0 fi (( C_FLAG = $MAKE_FLAG & 1 )) if [ ! "$C_FLAG" == "0" ]; then (( C_FLAG = $MAKE_FLAG & 8 )) if [ "$C_FLAG" == "0" ]; then TMPPATH=/tmp/genpkg fi if [ ! -d "$TMPPATH" ]; then mkdir $TMPPATH fi if [ ! -f /tmp/NOQUEST ]; then touch /tmp/NOQUEST fi sed -e "/^#/d" $CFGFILE |\ sed -e "/^ *$/d" >$TMPPATH/genpkgcfg$$ exec 4<$TMPPATH/genpkgcfg$$ STORETMPROOT=$TMPROOT while read <&4 OPT MODULE; do if [ -f $TMPPATH/`basename $MODULE`.mk ]; then continue fi (( C_FLAG = $OPT & 2 )) if [ "$C_FLAG" == "0" ]; then FORCEMAKE=0 else FORCEMAKE=1 PKGGENOPT="$PKGGENOPT"f fi (( C_FLAG = $OPT & 4 )) if [ "$C_FLAG" == "0" ]; then FORCEINSTALL=0 else FORCEINSTALL=1 PKGGENOPT="$PKGGENOPT"i fi (( C_FLAG = $OPT & 32 )) if [ ! "$C_FLAG" == "0" ]; then DEBUG=1 PKGGENOPT="$PKGGENOPT"d fi (( C_FLAG = $OPT & 64 )) if [ ! "$C_FLAG" == "0" ]; then DEBUG=0 fi (( C_FLAG = $OPT & 8 )) if [ ! "$C_FLAG" == "0" ]; then NOGEN=1 DEINSTALL=1 fi (( C_FLAG = $OPT & 128 )) if [ ! "$C_FLAG" == "0" ]; then NOGEN=1 INSTALL=1 fi (( C_FLAG = $OPT & 256 )) if [ ! "$C_FLAG" == "0" ]; then MODCLUSTER=1 fi (( C_FLAG = $OPT & 1 )) if [ ! "$C_FLAG" == "0" ]; then NOTMP=1 fi if [ "$DEBUG" == "1" ]; then if [ ! "$NOGEN" == "1" ]; then if [ "$MODCLUSTER" == "1" ]; then echo "Generate Cluster Module $MODULE" echo "with genpkg option $PKGGENOPT" else echo "Generate Module $MODULE with" echo "makeforce=$FORCEMAKE, installforce=$FORCEINSTALL" fi echo "Please press Enter to continue" fi if [ "$INSTALL" == "1" ]; then echo "Installing Package from Module $MODULE" echo "Please press Enter to continue" fi if [ "$DEINSTALL" == "1" ]; then echo "Removing Package from Module $MODULE" echo "Please press Enter to continue" fi read fi if [ -f /etc/profile ]; then source /etc/profile fi (( C_FLAG = $OPT & 16 )) if [ "$C_FLAG" == 0 ] && [ -f ~/.bash_profile ]; then source ~/.bash_profile fi /sbin/ldconfig cd $PROGDIR if [ -f defsys ]; then source defsys fi if [ -f functions/functions ]; then source functions/functions fi if [ -f `dirname $MODULE`/.init ]; then source `dirname $MODULE`/.init fi if [ ! "$NOGEN" == "1" ]; then if [ "$MODCLUSTER" == "1" ]; then PKGGENOPT="$PKGGENOPT"c else PKGGENOPT="$PKGGENOPT"m fi if [ ! "$DEBUG" == "1" ] || [ "$MODCLUSTER" == "1" ]; then $ABSPROG -$PKGGENOPT $MODULE elif [ "$NOTMP" = "1" ]; then $ABSPROG -$PKGGENOPT $MODULE NOTMP=0 else $ABSPROG -$PKGGENOPT $MODULE 2>&1 |tee $TMPPATH/`basename $MODULE` fi PKGGENOPT="" else source $MODULE if [ "$NoRewriteName" == "true" ]; then PKGNAME=`ArchiveName $LFSSOURCE/$SRCPATH/$PROGNAME$PATTERN*.t* 1` else PKGNAME=`ArchiveName $LFSSOURCE/$SRCPATH/$PROGNAME$PATTERN*.t*` fi if [ "$DEINSTALL" == "1" ]; then RMTMPFILE=`basename $MODULE` RMFILE=`echo $RMTMPFILE |\ sed -e "s/src/bin/"|\ sed -e "s/source/binary/"` installpkg -fr `basename $RMFILE` fi if [ "$INSTALL" == "1" ]; then PROGNAME=`basename $MODULE` if [ "$NoRewriteName" == "true" ]; then PKGNAME=`ArchiveName $LFSSOURCE/$SRCPATH/$PROGNAME$PATTERN*.t* 1` else PKGNAME=`ArchiveName $LFSSOURCE/$SRCPATH/$PROGNAME$PATTERN*.t*` fi installpkg $INSTALLOPTS -noi $DISTTARGET/$SRCPATH/$PKGNAME fi DEINSTALL=0 INSTALL=0 NOGEN=0 fi (( C_FLAG = $OPT & 1 )) if [ "$C_FLAG" == "0" ] && [ ! -f $TMPPATH/`basename $MODULE` ]; then touch $TMPPATH/`basename $MODULE`.mk NOTMP=0 fi done 4>&- rm -f $TMPPATH/genpkgcfg$$ fi