Newsgroup: it.comp.os.linux.development
Titolo: Autotools e dipendenze [forse OT, lunghetto]

   Ciao a tutti...
Ho un problema con gli autotools che non riesco a risolvere in maniera 
semplice... Forse su questo NG e` un po' OT, ma non ne ho trovati altri 
piu` adatti nella categoria italiano...
   Dunque, vi spiego il mio problema: devo creare la struttra di 
compilazione di un progetto piuttosto grande... Questo progetto e` diviso 
in una serie di "moduli" sviluppati indipendentemente da varie persone. 
Ogni modulo e` completamente compreso in una sottodirectory della directory 
principale. Si e` deciso di avere un unico 
configure.in
 in questa directory 
principale e vari Makefile.am giu` giu` nelle sottodirectory e 
sottosottodirectory. Tutto il progetto ha delle dipendenze da librerie 
esterne (piu` o meno una decina) variamente articolate. Alcuni dei moduli 
dipendono, oltre che direttamente da librerie esterne, anche da pezzi di 
altri moduli.
   Quello che mi e` stato chiesto di fare e` di avere una serie di opzioni 
--enable/disable-modulo per abilitare/disabilitare a richiesta la 
compilazione di uno o piu` moduli del progetto, mentre nessuna opzione data 
dovrebbe significare "compila tutto". Qual e` il mio problema ?? Non tanto 
quello delle dipendenze dalle librerie esterne (ho creato una serie di 
macro m4 per ogni libreria), ma le dipendenze interne. Nel senso, spesso 
abilitare un modulo, significa abilitare anche pezzetti di altri moduli, i 
quali a loro volta possono dipendere da altri pezzetti ancora o da altre 
librerie esterne. Inoltre un'altra cosa che mi hanno chiesto e` che 
l'assenza di una libreria esterna non pregiudichi la compilazione di quei 
moduli che non dipendono da quella libreria direttamente o indirettamente.
   Quello che volevo sapere e` se esiste un modo standard (io sto andando 
giu` a botta di if test sulle variabili enable_modulo nel 
configure.in
 ma 
vi giuro che e` un incubo) per stabilire in qualche modo delle dipendenze 
di questo tipo ??? Ho guardato un po' in giro per la rete, ma pare che 
nessuno abbia mai avuto questo problema (o simile). Ho anche guardato nei 
configure.in
 di un paio (2 di numero) di grossi progetti, ma non mi pare di 
aver trovato cose simili. Ho anche cercato sui gruppi, ma fin'ora ancora 
nulla... Non e` che qualcuno di voi possa darmi una dritta su come fare 
'sta cosa ??? Siti web, libri, qualcosa, anche un qualche progetto che 
abbia queste caratteristiche da poter prendere come esempio...
   Sono al limite della disperazione e della pazzia booleana...
                                       Vi ringrazio in anticipo
                                           Rosario
-- 
                          | Almeno tu che puoi fuggi via canto
\|/ ____ \|/   \ ||_|     | nomade questa cella e` piena della
"@'/ ,. \`@"    \|| |     | mia disperazione tu che puoi non
/_| \__/ |_\ Vax Headroom | farti prendere.
   \__U_/                 |                    BMS

 altri moduli.
...
Una soluzione "pulita" non mi viene in mente ma:
diciamo che per ogni modulo definisci un simbolo corrispondente
es modulo1 --> _MOD1_ , modulo2 --> _MOD2_ e modulo1 dipende da modulo2.
nel Makefile.am di modulo2 fai una compilazione condizionale se sono
definiti uno qualsiasi dei simboli di moduli da esso dipendenti.
Che poi magari e' quello che stai gia' facendo.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! I Never Wanted To Be What They Told Me To Be
  		Fulfill My Fate Then I'll Be Free >!- Blind Guardian - Mordred's Song

 Che poi magari e' quello che stai gia' facendo.
   Si, in effetti, attualmente, quello che sto provando a fare e` una cosa 
del tipo: associare ad ogni enable/disable una variabile enable_modulo, 
mettere una marea di if incrociati per testare le vare variabili e, alla 
fine, associare dei conditional alle compilazioni o meno dei vari 
moduli/sottomoduli...
   Il problema sta appunto in questa marea di if: stiamo parlando di dieci 
moduli principali, ognuno diviso in 3/4 (a volte piu`) "sottomoduli"... 
Capirai che gestire codesto numero di variabili e relativi if e` un incubo 
decisamente non da poco: ancora non sono riuscito a trovare una soluzione 
soddisfacente...
   Stavo addirittura pensando se non fosse il caso di creare una specie di 
"autodep"... Un programmillo, cioe`, in grado di creare lui le dipendenze e 
tutti i conditionals... Mi chiedo solo se ne valga veramente la pena...
                                               Rosario
-- 
                          |
\|/ ____ \|/   \ ||_|     |  Tutti mentono; ma non importa,
"@'/ ,. \`@"    \|| |     |  perché nessuno sta a sentire.
/_| \__/ |_\ Vax Headroom |
   \__U_/                 |          Legge di Lieberman

 tutti i conditionals... Mi chiedo solo se ne valga veramente la pena...
Poca merce e' cosi' grossa da richiederlo. Ma piuttosto che diventare scemo
a mano....
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
           -<! Failure is not an option...it's bundled with Microsoft !>-