beh, neanche io conosco linguaggi di programmazione, sono in un campo davvero opposto all'informatica, però negli slackbuild ci vuole solo un po' di conoscenza base di bash scripting, che non è un vero e proprio linguaggio di programmazione.
Per tornare a noi e alle domande che hai fatto..
Allora, nell'esempio di slackbuild che hai portato (e comunque in tutti gli slackbuild, bene o male, tranne quelli che non hanno architettura perché sono semplicemente una copia di binari già pronti - il pacchetto di skype, ad esempio), come dici tu stesso lo slackbuild, con quel uname -m va a vedersi da solo l'architettura della macchina, ma, se ci fai caso, in un modo particolare.. Infatti, traducendo,
Codice: Seleziona tutto
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
esac
fi
vuol dire: se uname -m restituisce i?86 dove il punto interrogativo (?) equivale a qualsiasi carattere (tipo asterisco - *) allora imposta la variabile ARCH a i486. Come ti dicevo, gli slackbuild classici, per questioni di compatibilità con macchine meno recenti, utilizzano questa architettura. Se invece uname -m restituisce arm* imposta ARCH=arm (arm è un altro tipo di architettura particolare, che non ci interessa affatto in questo momento.
Nella seconda parte dello spezzone di slackbuild,m invece, passiamo a definire delle variabili più stringenti e specifiche in base al nostro processore o in base a cosa vogliamo ottenere..
Quindi, se ARCH è stato impostato a i486, allora imposta anche
-mtune è come CHOST, può essere differente dalla variabile ARCH e -march in quanto indica l'architettura su cui si sta compilando, non quella su cui girerà il pacchetto e quindi quella per cui si sta lavorando. La variabile del suffisso lòasciala così perché serve solo in caso tu stia usando una Slackware a 64bit.
Lo stesso vale per il seguito dello script..
Quindi, per concludere, questo slackbuild dovrebbe automaticamente assegnarti una variabile i686 e crearti il pacchetto per questa arch, in quanto all'inizio troviamo anche
Codice: Seleziona tutto
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
ma non sono sicuro lo faccia, devi dirmelo tu.. Io non uso questo tipo di schema, preferisco mettere invece i686 al posto di i?86 ed ancra i686 invece di i486 nella parte iniziale dello script e poi modificare, se serve, la seconda parte..
ecco tutto!!
deadcandance ha scritto:guarda,sei stato veramente molto chiaro...diciamo che dovrò dare una lettura più approfondita a SD4 e questo probabilmente potrebbe portarmi a una reinstallazione del sistema con una configurazione più accurata
tuttavia volevo chiederti una sola precisazione riguardo ciò che mi hai detto dello slackbuild,che ovviamente dopo che mi hai dato queste spiegazioni sono andato a leggere...
premettendo che non conosco bene nessun linguaggio di programmazione,ma ho solo un po di nozioni a riguardo,sono andato a vedere le modifiche da fare per un i686,che guarda caso è proprio l'architettura della mia macchina....ma ho trovato quanto segue:
Codice: Seleziona tutto
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
se non sbaglio,nella seconda parte (di quanto ho postato) va a vedere da solo l'architettura o devo comunque modificarla io nella prima parte?
infine,so che ci sono dei repository anche qui su slacky.ue solo che sono andato negli slackbuild perchè a me serviva in particolare il pacchetto b43-fwcutter, per far funzionare una scheda di rete broadcom,che però ho trovato solo su slackbuilds.org...
grazie ancora per le spiegazioni...