Wie man g ++ von source * und * übergibt, um Optionen zu `configure` zu ​​übergeben

1385
Vokuhila-Oliba

Ich möchte g ++ mit meinen eigenen Einstellungen neu aufbauen.

Folgendes habe ich bisher getan:

sudo aptitude install build-dep g++-4.2 mkdir trial && cd trial apt-get source g++-4.2 

Jetzt möchte ich meine spezifischen Einstellungen konfigurieren. Bei g ++ geschieht dies normalerweise durch z

sh configure --prefix=/home/voku/testing 

Leider befindet sich configureim Download-Verzeichnis kein Skript (und auch keine configure.ac).

Gibt es zusätzliche Schritte, die ich brauche, um das configureSkript zu bekommen ?

Was ich eigentlich suche, ist eine Möglichkeit zu sagen:

  • Holen Sie sich die Quelle
  • wende alle Patches an, die du magst
  • mach das ganze Zeug fertig zum Bauen

EDIT : Ich habe auch nach Stack Overflow gefragt - aber dort scheint niemand etwas zu wissen.

EDIT : Wahrscheinlich könnte ich eines der Tools ausführen, die das .deb-Paket für g ++ erstellen.

Danach - davon gehe ich aus - gibt es das benötigte configure-Skript.

Aber das hört sich schrecklich an:

  • Erstellen Sie das Paket g ++ .deb
  • das ganze Zeug wieder aufräumen
  • Verwenden Sie dann das generierte Konfigurationsskript mit meinen eigenen Optionen
  • dann wieder bauen
4

3 Antworten auf die Frage

5
Peter Eisentraut

Wenn Sie das Debian-Paket mit verschiedenen Optionen neu erstellen möchten, ist es etwas komplizierter, da das Debian-Paket von GCC ziemlich komplex ist. Im Allgemeinen würden Sie nach einem configureAufruf suchen debian/rules, aber im gcc-4.2Quellpaket findet die interessante Aktion tatsächlich statt debian/rules2. Suchen Sie nach einer dort genannten Variable CONFARGS. debian/README.maintainersist auch eine gute Lektüre, wenn Sie das Paket ernsthaft hacken wollen.

Ich bin gerade zurückgekommen, um dies zu erwähnen, aber Sie haben mich geschlagen, also +1 Justin Smith vor 14 Jahren 0
@Peter: Vielen Dank. Dies ist die beste Antwort, die ich bisher gesehen habe! Vokuhila-Oliba vor 14 Jahren 0
2
Justin Smith

Versuchen Sie, Autoconf auszuführen. Dies ist der Befehl, mit dem das Konfigurationsskript für die meisten Anwendungen erstellt wird, die eines verwenden.

BEARBEITEN:

Dies war eine wilde Gänsehaut, die richtige Antwort war, Debian / rules2 zu editieren

Wenn dies unklar ist: Sie führen autoconf aus, indem Sie in das Quellverzeichnis gehen und autoconf einfach ohne Argumente ausführen. Wenn Sie die richtige Version und die richtigen Eingabedateien haben, wird der Rest automatisch erledigt. Justin Smith vor 14 Jahren 0
@Justin: autoconf sagt mir: `autoconf: configure.in: Keine solche Datei oder Verzeichnis '. Umschauen via `find. -name configure.in` zeigt nichts an. Vokuhila-Oliba vor 14 Jahren 0
Jedes Programm, das configure verwendet, sollte eine configure.in-Datei haben? als ein Schuss im Dunkeln könnte man es versuchen, wie auf dieser Seite erklärt http://developers.sun.com/solaris/articles/gnu.html autoscan; mv configure.scan configure.in; aclocal; autoconf Justin Smith vor 14 Jahren 0
@Justin: Eine Datei namens `configure.scan` ist auch nicht vorhanden Vokuhila-Oliba vor 14 Jahren 0
autoscan sollte configure.scan automatisch ausgeben Justin Smith vor 14 Jahren 0
@Justin: ah ok. Ich räume gerade auf, indem ich eine frische Quelle bekomme. Und ich habe kein Autoscan mehr ausgeführt. Vokuhila-Oliba vor 14 Jahren 0
Welche Linux-Version ist das? In meiner stabilen Debian-Version von gcc-4.2-20080520 befand sich das configure-Skript etcetera im 7zipped tar-Archiv, das standardmäßig nicht extrahiert wurde. Justin Smith vor 14 Jahren 0
@ Justin: es ist Debian-Lenny-64bit. Und ja - ich habe auch so etwas wie `gcc-4.2-orig.tar.gz` (Entschuldigung - ich kann im Moment nicht genauer sein, da ich mich gerade vom Remote-Server in meiner Firma abgemeldet habe. VPN scheint das zu sein jetzt feststecken ...). "Orig" klingt jedoch so, als ob die Debian-Patches nicht angewendet wurden. Vokuhila-Oliba vor 14 Jahren 0
siehe Peter Eisentrauts Antwort oben, das war eine wilde Gänsehaut. Justin Smith vor 14 Jahren 0
0
Nicholaz

Normalerweise ist es so

./configure 

nicht nur

configure 

dh versuche es

 ./configure --prefix=/home/voku/non-productive 
@ Nicholaz: Es gibt einfach kein configure-Skript, configure.ac oder ähnliches. Bezüglich `. / Configure`: das macht keinen Unterschied, sobald Sie das configure-Skript haben. `sh configure` macht dasselbe. Vokuhila-Oliba vor 14 Jahren 0
Warum wird das abgestimmt? er führt nie "configure" aus, wie er sagte, "sh configure" ist identisch mit "./configure". Diese Antwort hat nichts mit seiner Situation zu tun. Justin Smith vor 14 Jahren 0