[Erledigt] GCC MinGW Compiler auf allen Linuxen finden?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
alex0801
Beiträge: 208
Registriert: 16.10.2005 19:46:48
Wohnort: Rhein-Neckar-Kreis

[Erledigt] GCC MinGW Compiler auf allen Linuxen finden?

Beitrag von alex0801 » 12.12.2012 16:50:00

Hallo zusammen,

bastle gerade mit einem Kollegen an einem kleinen Java-Projekt, welches JNI benutzt und auf einer DLL/SO aufbaut.

Cross-Compilen der DLL/SO von Linux aus ist kein Problem. Funktioniert. Nur dummerweise heißen die MinGW GCC executables nicht auf jedem System gleich. Selbst zwischen Debian und Ubuntu, welche ja sehr verwand miteinander sind, gibt's unterschiede im Namen des Compiler-Executables.

Gebaut wird das ganze Projekt (Java und der Native Teil) mittels Maven. In Maven kriegen wir die Platformen (Linux, Windows, 32bit, 64bit) schon unterschieden. Nur dadurch dass die MinGW Compiler nicht überall den gleichen Namen haben, ist das ganze nicht auf allen gängigen Systemen "out of the box" ausführbar.

Unsere bisherige Idee:

Maven ruft statt des MinGW GCC Compilers ein Wrapper-Script auf (die Argumente sind ja überall die gleichen). Das Wrapper-Script ermittelt das installierte Linux und stellt entsprechend den Namen des Compiler Executables ein und ruft diesen mit den Parametern, welche dem Wrapper-Script übergeben wurden auf.

In der Theorie funktioniert das. Die Frage ist jetzt aber: Ist das der richtige Weg? Oder gibt's bessere/zuverlässigere Lösungen?
Klar, in der C/C++ Welt gibt's diverse Tools (autoconf, make und wie sie alle heißen). Aber wir versuchen die Abhängigkeiten so gering wie möglich zu halten (einzige Voraussetzung soll sein: JDK, Maven + MinGW). Theoretisch reicht uns der MinGW Compiler. Aber da ja jede Distri ihre eigene Suppe kocht, ist das wie eben beschrieben nicht so einfach.

Wie unterscheidet man am besten/einfachsten diverse Linux-Distributionen, so dass man das jeweils passende Executable benutzen kann?

Hat jemand einen guten Tipp für uns?

Gruß
Alex
Zuletzt geändert von alex0801 am 13.12.2012 09:41:01, insgesamt 1-mal geändert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: GCC MinGW Compiler auf allen Linuxen finden?

Beitrag von hikaru » 12.12.2012 17:21:37

alex0801 hat geschrieben:Wie unterscheidet man am besten/einfachsten diverse Linux-Distributionen, so dass man das jeweils passende Executable benutzen kann?
Soweit ich weiß geht das nicht zuverlässig. Mit lsb_release wirst du zwar in der Mehrzahl der Fälle sinnvolle Ergebnisse erzielen, aber verlassen solltest du dich darauf nicht unbedingt. Gerade kleinere Hinterhofdistributionen nehmen das nicht immer ganz genau.

Aber eigentlich interessiert dich die Distribution doch gar nicht. Es ist doch nur Mittel zum Zweck den Namen des Binarys zu erraten. Wäre es da nicht sinnvoller direkt eine Liste von Binarynamen auf Existenz zu prüfen?

alex0801
Beiträge: 208
Registriert: 16.10.2005 19:46:48
Wohnort: Rhein-Neckar-Kreis

Re: GCC MinGW Compiler auf allen Linuxen finden?

Beitrag von alex0801 » 13.12.2012 09:40:47

Hast recht. So rum macht's irgendwie mehr Sinn. Hab ein Array mit Binary-Namen angelegt. Das Script sucht nun mittels "command -v <name>" nach dem Pfad auf der Platte. Wenn das klappt, dann ist das wohl das richtige Executable, welches dann ausgeführt wird.

Gruß und Danke,
Alex

Antworten