sostituzione parti di testo

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

sostituzione parti di testo

Messaggio da conraid »

Ho una serie di slackbuild dove c'è una parte come questa

Codice: Seleziona tutto

# Set compiling FLAGS
case "$ARCH" in
    i486)
        SLKCFLAGS="-O2 -march=i486 -mtune=i686"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    i686)
        SLKCFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    x86_64)
        SLKCFLAGS="-O2 -fPIC -pipe -fomit-frame-pointer"; CHOST="x86_64"
        SLKLDFLAGS="-L/lib64 -L/usr/lib64"; LIBDIRSUFFIX="64"
        ;;
esac
vorrei modificarla con

Codice: Seleziona tutto

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
    case "$( uname -m )" in
        i?86) ARCH=i686 ;;
        arm*) ARCH=arm ;;
        # Unless $ARCH is already set, use uname -m for all other archs:
        *) ARCH=$( uname -m ) ;;
    esac
fi

# Set compiling FLAGS
case "$ARCH" in
    i486)
        SLKCFLAGS="-O2 -march=i486 -mtune=i686"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    i686)
        SLKCFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    x86_64)
        SLKCFLAGS="-O2 -fPIC -pipe -fomit-frame-pointer"; CHOST="x86_64"
        SLKLDFLAGS="-L/lib64 -L/usr/lib64"; LIBDIRSUFFIX="64"
        ;;
    *)
        SLKCFLAGS="-O2"; CHOST=$ARCH
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
esac
per adesso faccio a mano, nel senso che tolgo la parte da eliminare, e poi faccio

Codice: Seleziona tutto

cat file_che_contiene_il_nuovo_codice >> *.SlackBuild
e poi a mano sposto la sezione

ma è una palla, vorrei farlo in modo "semiautomatico", cioè preparare uno script da lanciare per ogni slackbuild che voglio modificare, e in caso, lanciarlo in serie

devo operare da remoto, quindi niente editor grafici, l'ideale sarebbe poter usare qualche script bash con sed, awk o altro, ma anche perl potrei utilizzare

per eliminare la riga ARCH=etc... do un comando sed e via, ma per il testo non sono riuscito a trovare una soluzione. Nel senso che le prove che ho fatto con sed si incartavano tutte, penso per colpa di qualche carattere, ma potrei aver sbagliato.

come fareste?

metrofox
Linux 3.x
Linux 3.x
Messaggi: 760
Iscritto il: gio 7 ago 2008, 12:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)
Località: London

Re: sostituzione parti di testo

Messaggio da metrofox »

Quando hanno fatto la stessa cosa su slackbuilds.org hanno parlato di uno script automatico o semi-automatico per editare tutta quella parte di testo...

Zeros
Linux 1.x
Linux 1.x
Messaggi: 107
Iscritto il: dom 5 mar 2006, 2:22
Slackware: 12.1
Kernel: 2.6.24.5
Desktop: Kde
Località: Roma

Re: sostituzione parti di testo

Messaggio da Zeros »

Se sai che su tutti slackbuild è presente # Set compiling FLAGS, potresti fare così:
leggi riga per riga, verificando che sia presente la stringa sopra menzionata, se non è presente lo metti in append su un nuovo file, in caso contrario no, fino al primo esac e poi inserisci tutto il blocco nuovo.
Un pò rozza come cosa, ma potrebbe andare.

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: sostituzione parti di testo

Messaggio da masalapianta »

se la parte da sostituire è sempre la stessa e non cambia mai di un bit, basta usare sed, tr o quel che vuoi; siccome è improbabile che non cambi mai di un bit è meglio fare un parser con opportune regexp, tipo questo:

Codice: Seleziona tutto

#!/usr/bin/perl
use strict;
my $pm = 'testo lallallero
pappappero lallalla
w la figa';
my $pd = 0;
while(<STDIN>) {
	$pd = 1 if( m/case "\$ARCH" in/ );
	print $_ if($pd == 0);
	if($pd == 1 && m/\s*esac\s*/) {
		$pd = 0;
		print $pm;
	}
}
ovviamente sostituisci il valore di $pm con la roba con cui vuoi sostituire la roba che non vuoi; se in altre parti del file son gia presenti stringhe tipo 'case "$ARCH" in' magari modifica la regexp per matchare il commento prima del case o vedi un po tu (non ho la benchè minima idea di cosa possano contenere quei file).

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: sostituzione parti di testo

Messaggio da conraid »

sono degli slackbuild (sì lo so, su debian non ci sono :p), questo è un file di esempio

Codice: Seleziona tutto

#!/bin/sh
#
# Slackware build script for Abook (http://abook.sf.net)
#
# Copyright 2008-2010 Corrado Franco (http://conraid.net)
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Exit on most errors
set -e

# Set variables:
CWD=$(pwd)

PRGNAME=${PRGNAME:-abook}
VERSION=${VERSION:-0.6.0pre2}
ARCH=${ARCH:-i686}
BUILD=${BUILD:-4}
TAG=${TAG:-cf}
TMP=${TMP:-/tmp/tgz} # If you use /tmp here, don't use --cleanup options
JOBS=${JOBS:-2}
SOURCE=http://abook.sourceforge.net/devel/abook-0.6.0pre2.tar.gz
PATCH=http://abook.sourceforge.net/patches/abook_vcard_import.patch
PKG=$TMP/package-$PRGNAME
DOCS="$PKG/usr/doc/$PRGNAME-$VERSION"

# Insert document files in this variable
DOCFILES="ABOUT-NLS ANNOUNCE AUTHORS BUGS COPYING ChangeLog FAQ NEWS README RELEASE_NOTES THANKS TODO"

# Set compiling FLAGS
case "$ARCH" in
    i486)
        SLKCFLAGS="-O2 -march=i486 -mtune=i686"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    i686)
        SLKCFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    x86_64)
        SLKCFLAGS="-O2 -fPIC -pipe -fomit-frame-pointer"; CHOST="x86_64"
        SLKLDFLAGS="-L/lib64 -L/usr/lib64"; LIBDIRSUFFIX="64"
        ;;
esac

# Download source, if not exist
if ! [ -e $(basename $SOURCE) ]; then
    wget $SOURCE
fi

# Download source, if not exist
if ! [ -e $(basename $PATCH) ]; then
    wget $PATCH
fi

# Extract source and prepare:
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf $PRGNAME-$VERSION

tar xzvf $CWD/$PRGNAME-$VERSION.tar.gz
cd $PRGNAME-$VERSION
cat $CWD/$(basename $PATCH) | patch -p1 --verbose --backup --suffix=.orig

# Make sure ownerships and permissions are sane:
chown -R root:root .
chmod -R u+w,go+r-w,a-s .

# Configure
LDFLAGS="$SLKLDFLAGS" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --infodir=/usr/info \
  --host=$CHOST-slackware-linux \
  --build=$CHOST-slackware-linux


# Build and install:
make -j $JOBS
make DESTDIR=$PKG install

# Strip binaries:
( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null || true
)

# Add a documentation directory:
mkdir -p ${DOCS}
for i in ${DOCFILES}; do
    if [ -e ${i} ]; then
        if ! [ -L ${i} ]; then
            cp -a ${i} ${DOCS}
        else
            cp -LRp ${i} ${DOCS}
        fi
    fi;
done

# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
  find . -type f -exec gzip -9 {} \;
  for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)
fi

# Add a slackbuild script:
cat $CWD/$PRGNAME.SlackBuild > $DOCS/$PRGNAME.SlackBuild

# Add slack-desc
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

# Create package:
cd $PKG
/sbin/makepkg -l y -c n $CWD/$PRGNAME-$VERSION-$ARCH-${BUILD}${TAG}.txz
purtroppo nei vecchi slackbuild, al posto del CASE ho usato una serie di IF, ma questi li tratterò in modo diverso
Per adesso, chiedo perdono per l'orrore, ho tirato fuori una cosa così

Codice: Seleziona tutto

#!/bin/sh
sed -i '/^# Set compiling FLAGS/,/esac/ d' $1
sed -i '/# Download source, if not exist/ i\#-#-#-#-#' $1
sed -i '/#-#-#-#-#/ r file_che_contiene_il_nuovo_codice' $1
sed -i 's/#-#-#-#-#//' $1
usando append before line sarebbe meglio, ma qualche carattere fa caos, e non riesco a capire (a parte l'apostrofo), con "r" va ma dopo una stringa (non ho trovato come includere un file prima), quindi ho aggiunto e tolto una riga temporanea

ora provo con il tuo esempio

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: sostituzione parti di testo

Messaggio da conraid »

perfetto masala, ho fatto così

Codice: Seleziona tutto

#!/usr/bin/perl
use strict;

my $pm = '# Automatically determine the architecture we are building on:
if [ -z "$ARCH" ]; then
    case "$( uname -m )" in
        i?86) ARCH=i686 ;;
        arm*) ARCH=arm ;;
        # Unless $ARCH is already set, use uname -m for all other archs:
        *) ARCH=$( uname -m ) ;;
    esac
fi
# Set compiling FLAGS
case "$ARCH" in
    i486)
        SLKCFLAGS="-O2 -march=i486 -mtune=i686"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    i686)
        SLKCFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"; CHOST="i486"
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
    x86_64)
        SLKCFLAGS="-O2 -fPIC -pipe -fomit-frame-pointer"; CHOST="x86_64"
        SLKLDFLAGS="-L/lib64 -L/usr/lib64"; LIBDIRSUFFIX="64"
        ;;
    *)
        SLKCFLAGS="-O2"; CHOST=$ARCH
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;
esac

';
my $pd = 0;
while(<STDIN>) {
   $pd = 1 if( m/^# Set compiling FLAGS/ );
   print $_ if($pd == 0);
   if($pd == 1 && m/\s*esac\s*/) {
      $pd = 0;
      print $pm;
    }
}
a questo punto mi basta, per gli slackbuild in cui ho usato if pazienza, farò due script

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: sostituzione parti di testo

Messaggio da conraid »

mi sono reso conto che la strada che stavo seguendo era errata, ci possono essere opzioni diverse in base al programma, e quindi non sarebbero state mantenute con quell'approccio, quindi ne ho seguito un altro, e questa volta non ha nemmeno dato errori nell'append

Codice: Seleziona tutto

sed -i '
/^esac/ i\
    *)\
        SLKCFLAGS="-O2"; CHOST=$ARCH\
        SLKLDFLAGS=""; LIBDIRSUFFIX=""\
        ;;' $1

sed -i '
/^# Set compiling FLAGS/ i\
# Automatically determine the architecture we are building on:\
if [ -z "$ARCH" ]; then\
    case "$( uname -m )" in\
        i?86) ARCH=i686 ;;\
        arm*) ARCH=arm ;;\
        # Unless $ARCH is already set, use uname -m for all other archs:\
        *) ARCH=$( uname -m ) ;;\
    esac\
fi\
' $1
siccome in ogni build so di avere un solo "esac" ho prima aggiunto la parte mancante del default, e dopo aggiunto la determinazione dell'architettura prima della sezione.

sembra funzionare

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: sostituzione parti di testo

Messaggio da targzeta »

masalapianta ha scritto:se la parte da sostituire è sempre la stessa e non cambia mai di un bit, basta usare sed, tr o quel che vuoi; siccome è improbabile che non cambi mai di un bit è meglio fare un parser con opportune regexp...
Visto che l'esempio che hai postato era in perl e che dalla frase che ho quotato sembra che escludi la possibilità di farlo, aggiungo solo che lo stesso parser lo si può fare anche con sed, anzi, diciamo che questo è proprio il suo pane quotidiano. Si può implementare un automa a stati finiti nel momento in cui si identificano due RE, una che indica l'inizio del testo da eliminare e l'altra che ne identifica la fine. Quindi puoi dire all'automa:
  • stato 0: rimani allo stato 0 finché non leggi la RE d'inizio. Se leggi la RE d'inizio vai allo stato 1.
  • stato 1: elimina tutte le righe finché non leggi la RE di fine. Se leggi la RE di fine vai allo stato 2
  • stato 2: inserisci il nuovo testo e vai allo stato 3
  • stato 3: copia tutto sino alla fine.
In questo modo, al contrario della soluzione postata da Corrado, sed lo esegui solo una volta e la complessità dell'algoritmo è lineare alla dimensione del testo (in pratica leggi una sola volta tutto il testo).

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: sostituzione parti di testo

Messaggio da masalapianta »

spina ha scritto:
masalapianta ha scritto:se la parte da sostituire è sempre la stessa e non cambia mai di un bit, basta usare sed, tr o quel che vuoi; siccome è improbabile che non cambi mai di un bit è meglio fare un parser con opportune regexp...
Visto che l'esempio che hai postato era in perl e che dalla frase che ho quotato sembra che escludi la possibilità di farlo, aggiungo solo che lo stesso parser lo si può fare anche con sed, anzi, diciamo che questo è proprio il suo pane quotidiano. Si può implementare un automa a stati finiti nel momento in cui si identificano due RE, una che indica l'inizio del testo da eliminare e l'altra che ne identifica la fine. Quindi puoi dire all'automa:
  • stato 0: rimani allo stato 0 finché non leggi la RE d'inizio. Se leggi la RE d'inizio vai allo stato 1.
  • stato 1: elimina tutte le righe finché non leggi la RE di fine. Se leggi la RE di fine vai allo stato 2
  • stato 2: inserisci il nuovo testo e vai allo stato 3
  • stato 3: copia tutto sino alla fine.
In questo modo, al contrario della soluzione postata da Corrado, sed lo esegui solo una volta e la complessità dell'algoritmo è lineare alla dimensione del testo (in pratica leggi una sola volta tutto il testo).

Emanuele
interessante, ho sempre usato sed come stream editor per cose molto semplici (anche perchè per far cose più complesse strumenti come perl sono ovviamente più potenti e flessibili), non ne avevo mai approfondito l'uso avanzato (e mai lo farò :lol: )

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: sostituzione parti di testo

Messaggio da targzeta »

masalapianta ha scritto:...
interessante, ho sempre usato sed come stream editor per cose molto semplici (anche perchè per far cose più complesse strumenti come perl sono ovviamente più potenti e flessibili), non ne avevo mai approfondito l'uso avanzato (e mai lo farò :lol: )
Guarda, non so che dirti. Ci sono cose che sed può fare ed altre che non può fare. Ognuno si regola come meglio crede. Ovviamente perl è molto più potente, ma io lo uso solo dove gli altri strumenti che conosco non ci arrivano, e prima passo per awk, il quale come stream editor fa praticamente quasi tutto.

Mi sono accorto solo ora che l'algoritmo che avevo postato è sbagliato, Corrado non voleva eliminare nulla dal flusso, voleva solo inserire qualcosa nel mezzo. L'automa diventa:
  • stato 0: se incontri la RE che indica il punto in cui inserire, vai allo stato 1, altrimenti vai allo stato 0
  • stato 1: inserisci il testo e vai allo stato 2
  • stato 2: copia tutto sino alla fine
Il corrispettivo script per sed diventa questo:

Codice: Seleziona tutto

/^# Set.*FLAGS/b inserisci;p;d;

:inserisci i\
# Automatically determine the architecture we're building on:\
if [ -z "$ARCH" ]; then\
    case "$( uname -m )" in\
        i?86) ARCH=i686 ;;\
        arm*) ARCH=arm ;;\
        # Unless $ARCH is already set, use uname -m for all other archs:\
        *) ARCH=$( uname -m ) ;;\
    esac\
fi\

b fine

:fine n;b fine
Basta copiarlo in un file, ad esempio casa.sed, ed eseguire:

Codice: Seleziona tutto

sed-f casa.sed file_di_input
se funziona, basta aggiungerci l'opzione '-i'.

Ancora più figo è inserire come prima riga del file casa.sed, la riga:

Codice: Seleziona tutto

#!/bin/sed -f
quindi rendere il file eseguibile, in questo modo si può anche fare:

Codice: Seleziona tutto

casa.sed file_input
e, al solito, se funziona, aggiungere l'opzione '-i'.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: sostituzione parti di testo

Messaggio da conraid »

ma la prima parte dove la inserisco?
mi spiego
oltre ad aggiungere questa parte, devo aggiungere

Codice: Seleziona tutto

    *)
        SLKCFLAGS="-O2"; CHOST=$ARCH
        SLKLDFLAGS=""; LIBDIRSUFFIX=""
        ;;' $1
nel case di $ARCH

siccome so che, la prima volta che lancio sed, c'è un solo case allora prima aggiungo questa parte e dopo quel che hai anche scritto tu.
Per questo ho usato "due" sed in uno script bash, da una parte perché la mia ignoranza non mi permette di fare in altro modo (e mi arrangio con quel che so), dall'altra perché c'è appunto devo inserire due parti di testo
come verrebbe?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: sostituzione parti di testo

Messaggio da targzeta »

conraid ha scritto:...come verrebbe?
Viene che devi cercare l'"esac" ed inserirci il testo che vuoi:

Codice: Seleziona tutto

/^# Set.*FLAGS/b inserisci;p;d 

:inserisci i\
# Automatically determine the architecture we're building on:\
if [ -z "$ARCH" ]; then\
    case "$( uname -m )" in\
        i?86) ARCH=i686 ;;\
        arm*) ARCH=arm ;;\
        # Unless $ARCH is already set, use uname -m for all other archs:\
        *) ARCH=$( uname -m ) ;;\
    esac\
fi\

b aggiungi

:aggiungi n;/^esac/{i\
    *)\
        SLKCFLAGS="-O2"; CHOST=$ARCH\
        SLKLDFLAGS=""; LIBDIRSUFFIX=""\
        ;;
b fine}; b aggiungi

:fine n;b fine
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Rispondi