2010-11-28 2 views
5

Gegeben:Erstellen Debug-Build von Autotools build Quelle

  • Quelle tar.gz
  • AFAIK, configure unterstützt Debug-Build (configure --help zeigt nicht --enable -debug)

Fragen:

  • Ist es sicher Debug Build zu verwenden, wenn die Autoren des Pakets es nicht an erster Stelle geliefert haben?
  • Wenn die Antwort auf pre.v Frage ja ist, als wie kann ich Debugbuild erzeugen? Sollte ich Patch configure.ac?

Dank

+0

Siehe auch https://stackoverflow.com/questions/4553735/gnu -autotools-debug-release-targets. Nicht sicher, ob es ein Betrogener ist. – sashoalm

Antwort

10

Ein richtig gestalteten Autotools Projekt unterstützt vom Benutzer bereitgestellte Compiler und Linker-Flags. Einige Autoren wählen --enable-debug, um die Erstellung von Debug-Builds zu vereinfachen, aber ihre Abwesenheit bedeutet nicht, dass dies nicht möglich ist. Das erste, was ich Ihnen empfehlen, ist, Compiler- und Linker-Flags anzugeben, die für Ihre Debugging-Anforderungen geeignet sind. Wenn Sie gcc auf Linux verwenden, könnte dass

./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" 

Es wird empfohlen, die Variablen angeben als Parameter zu konfigurieren, wie gezeigt, nicht als Umgebungsvariablen. Auf diese Weise behalten die Autotools diese Einstellungen bei, wenn Sie Änderungen vornehmen, die eine automatische Neukonfiguration auslösen.

Wenn das nicht das gewünschte Ergebnis liefert, ja, Hacking des Build-System erforderlich sein.

+1

Anmerkung: Auch wenn Sie die Parameter als Umgebungsvariablen angeben ('CFLAGS = -foo./Configure'), werden sie in' config.status' gespeichert und korrekt übergeben, wenn eine automatische Rekonfiguration erforderlich ist. –

+0

@Jack Kelly, ich dachte immer, dass das Autoconf Handbuch irgendwo gesagt, dass das speziell nicht der Fall ist. Ich kann es jetzt nicht finden. Wurde das geändert? – ptomato

+0

@ptomato: Ich habe gerade mit einem minimalen 'configure.ac' getestet und es funktioniert, mit oder ohne' -C' an 'configure' übergeben. –

1

alias configuredebug = 'CPPFLAGS = -DDEBUG CFLAGS = "- g -O0" CXXFLAGS = "- g -O0" Configure'