Kompilieren unter macOS im Vergleich zu Linux

Mankind75

Mankind75

Aktives Mitglied
Thread Starter
Dabei seit
28.06.2005
Beiträge
2.776
Reaktionspunkte
832
Hallo zusammen,

ich bin etwa im April 2023 auf macOS von Linux aus umgestiegen und bin auch so weit sehr zufrieden.

Allerdings ist es bei mir so, dass mir noch manche Sachen etwas unklar sind.

Ich kompiliere gerne die Übersetzungsschicht "wine" von winehq.org und habe unter Linux oft auch eigene Builds gemacht wo ich einzelne Patches getestet habe, die Entwickler im Bugzilla bereit gestellt haben.

Unter Linux konnte ich das mit folgender Abfolge im Wesentlichen machen, der in der Szene "Dreisatz" genannt wird.

Code:
./configure
make
sudo make install

Zwischendurch hatte ich dann unter meiner Slackware 15.0 auch eigene Pakete gebaut, was ganz spaßig war.

Praxisbeispiel wäre hier zu finden. (Link)

Kurz und knapp: Das möchte ich unter macOS nun auch können. Funktioniert das ähnlich mit dem "Dreisatz" oder gibt es da eine eigene Vorgehensweise.

Ich nehme mal an, dass macOS gcc nicht verwendet. Soweit ich weiß ist es LLVMclang oder? Zumindest war LLVMclang der "heisse Sch..s" als ich noch bei der Linux-Distribution OpenMandriva vor langer Zeit war.

Xcode und Developertools sind jedenfalls über den AppStore installiert worden.
 
Wirf Dir doch über Homebrew einfach alle deiner gewohnten Linux Tools zum macOS dazu, was spricht dagegen? Man muss ja nicht die Apple Quälität verwenden, am Ende ist es doch nur "just another ...IX System"!
 
  • Gefällt mir
Reaktionen: Mankind75
MacPorts ist ein Paketmanager, mit dem du
a) sowas aus den Sourcen bauen kannst
b) lernen kannst, wie der "Dreisatz" im Mac-Land funktioniert

z.B. wine :
 
  • Gefällt mir
Reaktionen: Mankind75
MacPorts ist ein Paketmanager
Ah, sehr cool, danke!

Habe auch festgestellt, dass die Entwicklerversion von wine-devel dabei ist aber irgendwie noch nicht für die neueren macOS Sachen ab "Big Sur" getestet wurde oder nicht kompiliert.

Momentan ist man bei wine im Codefreeze zur neuen Version 9.0 (Link) im stabilen Zweig.

Kann man sich da irgendwie bei dieser Sammlung beteiligen? Maintainer direkt werden ist wahrscheinlich für mich noch zu hoch gegriffen.

Die Dokumentation von MacPorts muss ich mir mal anschauen.

Kann ich dann den Sourcecode auch vor dem Kompilieren dann manuell patchen und dann mit dem Kompilieren loslegen? Hintergrund ist, dass es bei wine einige "STAGING" Patches gibt, die vorab noch getestet werden sollen..
 
Der Dreisatz funktioniert an sich auch unter MacOS, wenn die Software, die du kompilieren willst, halt das mit Autoconf vorbereitet hat.

Aber das hängt auch davon ab wie plattformunabhängig die Sourcen und deren Abhängigkeiten so sind.
 
  • Gefällt mir
Reaktionen: Mankind75
Okay, dann bin ich schon mal einen Schritt weiter und versuche mich mal am neuesten Release Candidate von wine. Habe ihn eben mit "tar" entpackt.

Code:
wine-9.0-rc4 % ./configure
checking build system type... aarch64-apple-darwin23.2.0
checking host system type... aarch64-apple-darwin23.2.0
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... -std=gnu++11
checking for cpp... cpp
checking for ld... ld
checking for the directory containing the Wine tools...
checking for flex... flex
checking whether flex is recent enough... yes
checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

Die letzte Fehlermeldung beschreibt ja, dass "bison" zu alt ist und der logische Schritt wäre ja, dass ich das Paket dann quasi "aufrüste" oder mir irgendwo besorge.

Kann ich das mit homebrew machen? Reicht dann:

Code:
brew install bison

bzw.
brew upgrade bison
Das wäre zumindest etwas passendes was ich so auf Anhieb in der Manpage gefunden habe.
 
An sich kannst das so machen, aber wenn du später Pakete anbieten willst, dann musst du das mit ins Paket packen was nicht auf einer Standard Installation dabei ist.
 
Die Dokumentation von MacPorts muss ich mir mal anschauen.
mach das ...
Kann ich dann den Sourcecode auch vor dem Kompilieren dann manuell patchen und dann mit dem Kompilieren loslegen? Hintergrund ist, dass es bei wine einige "STAGING" Patches gibt, die vorab noch getestet werden sollen..
Im Prinzip: ja - frei nach Radio Eriwan.

Hab mich auch schon 1-2 mal dran versucht.
Ging um ne GUI-App, wo irgendeine Library nur in Intel-Version vorlag. Hab's dann liegengelassen, Details habe ich vergessen.

---

Bei homebrew bekommst du nur die Binaries, wenn's nicht funkt, ist Ende-Gelände.

Für ex-Linuxer gibt es auch noch Nix. Greift m.W. etwas tiefer ins System ein. Muss man mögen.
 
Bei homebrew bekommst du nur die Binaries, wenn's nicht funkt, ist Ende-Gelände.
Ich meine, das jetzt verstanden zu haben. Er packt die ganzen Homebrew-Binaries in /opt und dann kann man aussuchen ob man es in seinem $PATH haben oder die Variable exportieren will.

/opt habe ich unter Linux für Sachen wie JRE oder größere Binaries wie "Cro-Mag Ralley" oder "Super Tux Kart" verwendet..

Ist jedenfalls sehr interessant aber ich möchte nicht zu tief ins System eingreifen. Wahrscheinlich gibt es auf der winehq.org Seite auch noch Compiling Instructions.
 
Zurück
Oben Unten