Verständnisfrage(n) zu GCC und make

[P3D] Crazy_Chris

Grand Admiral Special
Mitglied seit
11.11.2001
Beiträge
9.451
Renomée
116
Hallo,

sagen wir ich habe unter "/mnt/source/gzip" den Quellcode für Gzip (das soll jetzt nur ein Beispiel werden)

Also konfiguriere ich den Quellcode im gzip Verzeichnis mit ./configure --a --b ...und so weiter.

Aber dann wird es unklar wie der Makebefehl richtig funktioniert.

Bin ich im Quellcodeverzeichnis dann wird mir gesagt das es keine Makedatei gibt. (was auch klar ist) Also gehe ich ins "Rootverzeichnis" und gebe dort "make" ein. Und Voila, der Quellcode wird kompiliert. Aber warum? Woher weiß denn Make wo die Makefile ist? Was passiert wenn ich nach dem Konfigurieren des ersten Codes einen anderen Quellcode konfiguriere?

Der Makebefehl kann doch garnicht wissen welcher Code jetzt von beiden compiliert werden soll. *noahnung* Oder lieg ich hier total daneben. Selber hab ich schon mehere Sachen compiliert (Linux from Scratch ;)) Aber trotzdem ist mir das alles unklar.

Hab z.B. jetzt das Problem das ich einige Tools installieren soll und die jeweils compiliere. Nur irgendwie compiliert er jetzt immer den selben Code. ???
 
Ehrlich gesagt weiss ich nicht so genau was Du meinst ???
Ein make arbeitet ein makefile ab. Ohne makefile's kein make, heißt
Du müsstest alles per hand gcc'len mit pfad zuweisung usw.

link://www.linux-magazin.de/Artikel/ausgabe/2000/03/Make/make.html

*grübelgrübel*
 
Hat sich schon erledigt. Hab mich nur etwas dusselig angestellt. :] ;D

Trotzdem, vielen dank für den Link. :)
 
make nimmt immer die Makefile im aktuellen Verzeichnis. Und configure schreibt die Makefile (configure erzeugt diese erst) auch in das aktuelle Verzeichnis.

Also wenn du aus /root ein "/xyz/configure" ausführst schreibt configure unter Umständen die Makefile nach /root. Ergo geht dann auch nur dort Make, die Pfade stimmen aber dann alle.

Besser ist es natürlich wenn du das im jeweiligen Sourcetree machst. Wenn du einen ganz dollen fetisch hast machst du für jeden Build-Vorgang ein extra Unterverzeichnis und wechselst da rein.
 
Zurück
Oben Unten