cabriofahrer said:
Wie kann ich einen port manuell aus den Quellen kompilieren, wenn ich vermute, daß der port kaputt ist oder irgendetwas damit nicht stimmt?
Ist es richtig, daß man z.B. "gmake" statt "make" eingeben muß, daß es kein "configure" gibt, und wie bekomme ich dann den freebsd-patch und baue diesen ein?
Gibt es vielleicht auch irgendwo schon eine Anleitung dazu?
Es gibt keine Anleitung dazu, weil die Antwort auf deine Frage sehr stark vom jeweiligen Port abhängt. Es gibt zig verschiedene Buildsysteme, die vorkommen können. Einige verwenden make, andere gmake, wieder andere qmake oder cmake; einige verwenden gar kein make etc etc.
Des Weiteren gibt es nicht "den" FreeBSD patch. Wieviele Patches ein Port benötigt, welcher Art sie sind und wie die Sourcen jeweils verändert werden (was sehr oft nicht durch die Dateien in files/patch* des Ports passiert) hängt auch sehr stark vom jeweiligen Port ab.
cabriofahrer said:
Und wenn ich mit einer bestimmten Option kompilieren will, wie z.B.
"WITH_XVMC=yes", geht das dann auch, kann ich also dann
gmake "WITH_XVMC=yes" install eingeben?
Ich kling zwar langsam wie eine Schallplatte mit Sprung, aber auch das hängt vom Port ab. WITH/WITHOUT_FEATURE ist die Ports Syntax (oder besser gesagt, make(1) wird angewiesen, bestimmte Sektionen im Ports-Makefile ein/auszuschließen, die dafür verantwortlich sind, ein bestimmtes Feature ein/auszuschalten) und läßt sich in den seltensten Fällen direkt auf das jeweilige Programm ohne Port übertragen. Ob hier configure mit bestimmten Parametern aufgerufen wird, ein zusätzlicher Patch eingespielt wird oder eben nicht oder eine andere Aktion ausgeführt wird, hängt vom jeweiligen Programm ab, für das der Port zuständig ist.
cabriofahrer said:
Und worin liegt bei dieser Vorgehensweise dann der eigentliche Unterschied zu einem make install im Portverzeichnis, denn so wird doch letztendlich auch gmake aufgerufen, oder?
Es passiert wesentlich mehr unter der Haube, von dem du nicht notwendigerweise etwas siehst. Neben dem eigentlichen Bauen des Ports, werden vorher notwendige Veränderungen vorgenommen (Patches eingespielt), damit der Port überhaupt gebaut werden kann, oder damit das resultierende Programm nachher auch funktioniert. Es werden Abhängigkeiten aufgelöst, Parameter an etwaige configure Scripte übergeben etc etc. Einige Ports müssen sogar nach der Installation speziell nachbehandelt werden, damit sie überhaupt funktionieren. (Beispiel: Versuch mal kdebase ohne Port zu installieren. Falls du es installiert bekommst, wirst du festellen, dass ksysguard nicht funktioniert, obwohl du beim compilieren/installieren keine Fehlermeldung bekommen hast. Was da im einzelnen passiert, kannst du im post-install Target des Port-Makefiles nachlesen). Schlussendlich wird der installierte Port in der Packagedatenbank registriert, damit er später wieder sauber deinstalliert werden kann.
Summa Summarum: Ohne den Port, um den es dir konkret geht, kann dir hier keiner weiterhelfen.
Markus