Supponiamo di aver eseguito ./configure
e make
, ma ora voglio modificare un parametro nello script di configurazione. Devo eseguire make clean
prima del ./configure
oppure tutto andrà bene anche se non lo faccio?Devo eseguire "make clean" prima ./configure durante la riconfigurazione?
risposta
In molti casi le cose potrebbero andare bene se non si esegue make clean
, ma non si può presumere che lo faranno.
Un esempio di come le cose potrebbero andare male: una bandiera di configurazione potrebbe aggiungere un parametro -D
ad un CFLAGS
variabile o DEFS
, invece di definire attraverso config.h
. Quest'ultimo darebbe ai tuoi file C una dipendenza su config.h
che a sua volta viene rigenerato quando si esegue nuovamente configure
. Ma nel primo caso, se si esegue nuovamente configure
e si modifica questo flag, il set di simboli #defined
nei propri file C sarà diverso, ma tali file C non verranno ricompilati.
Gli script configure
sono progettati per essere eseguiti "fuori dall'albero". ad esempio, è possibile creare una sottodirectory build
ed eseguire ../configure [options]
da lì, il che (idealmente) influirà solo sulla directory build
.
Se si utilizza ./configure
, è necessario eseguire make clean
prima di eseguire nuovamente configure
- per sicurezza. Altrimenti, se sei preoccupato per gli effetti collaterali, una suite di autotools correttamente scritta dovrebbe consentire una directory di build fuori dal campo.
Come sarebbe utile la directory di configurazione fuori struttura se non la si elimina e si esegue nuovamente './Configure'? Cosa sarebbe diverso? Altrimenti è un passo in più, proprio come eseguire 'make clean'. – sashoalm
@sashoalm: l'esecuzione di 'make clean' o' make distclean' è in qualche modo un collo di bottiglia che richiede tempo nella vostra pipeline di sviluppo? Gli autotools sono abbastanza complessi senza cercare di prendere scorciatoie 'intelligenti', che potrebbero essere tutt'altro. –