./configure: Was ist eine verrückte Build-Umgebung?


Antworten:


51

Dies kommt von automake , speziell von seinem AM_SANITY_CHECK Makro , das von aufgerufen AM_INIT_AUTOMAKEwird und normalerweise früh aufgerufen wird configure.ac. Der Kern dieses Makros ist:

  • Stellen Sie sicher, dass der Pfad zum Quellverzeichnis keine bestimmten "unsicheren" Zeichen enthält, die in Makefiles von Shell-Skripten möglicherweise nur schwer korrekt enthalten sind.
  • Überprüfen Sie, ob dies lszu funktionieren scheint.
  • Stellen Sie sicher, dass eine neue Datei, die im Erstellungsverzeichnis erstellt wurde, neuer ist als die configureDatei. Wenn dies nicht der Fall ist (normalerweise, weil die Uhr auf dem Erstellungssystem nicht richtig eingestellt ist), schlägt der Erstellungsprozess wahrscheinlich fehl, da Erstellungsprozesse normalerweise auf generierten Dateien mit einem aktuelleren Zeitstempel als den Quelldateien basieren, aus denen sie generiert werden.

Warum lsspeziell? Sollen nur grundlegende ausführbare Dateien getestet werden, die verfügbar und funktionsfähig sind, oder werden sie lsselbst im Make-Prozess verwendet?
Terdon

2
@terdon Einige automake-Vorlagen verwenden ls. Das AM_SANITY_CHECKMakro selbst lsprüft die relativen Zeiten configureund eine temporäre Datei (wird nicht verwendet, test -ntda nicht alle Shells über diese verfügen).
Gilles 'SO- hör auf böse zu sein'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.