./configure: cos'è un ambiente di build folle?


Risposte:


51

Questo deriva da automake , in particolare dalla sua AM_SANITY_CHECK macro , che viene chiamata da AM_INIT_AUTOMAKE, che normalmente viene chiamata all'inizio configure.ac. L'essenza di questa macro è:

  • Verificare che il percorso della directory di origine non contenga determinati caratteri "non sicuri" che possono essere difficili da includere correttamente nei makefile degli script di shell.
  • Controlla che lssembra funzionare.
  • Verificare che un nuovo file creato nella directory di compilazione sia più recente del configurefile. In caso contrario (in genere perché l'orologio sul sistema di compilazione non è impostato correttamente), è probabile che il processo di compilazione fallisca perché i processi di compilazione di solito si basano su file generati con un timestamp più recente rispetto ai file di origine da cui sono generati.

Perché in lsparticolare? È solo per verificare che gli eseguibili di base siano disponibili e funzionali o sia esso lsstesso utilizzato in qualche modo nel processo di creazione?
terdon

2
@terdon Alcuni modelli di automake utilizzano ls. La AM_SANITY_CHECKmacro stessa utilizza lsper controllare i tempi relativi di configuree un file temporaneo (non utilizza test -ntperché non tutte le shell lo hanno).
Gilles 'SO- smetti di essere malvagio' il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.