Homebrew bauen mit unterschiedlichem Bogen?

9

Ich habe versucht, das Rezept mysql-connector-c über Homebrew zu installieren, und es funktioniert einwandfrei, erzeugt aber eine x86_64-Bibliothek:

  $file ~/brew/lib/libmysql.dylib 
  .../brew/lib/libmysql.dylib: Mach-O 64-bit dynamically linked shared library x86_64

Ich benötige jedoch eine i386-Bibliothek für mein Projekt. Ich habe versucht, es CFLAGS und LDFLAGS wie folgt zu geben:

  CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" brew install mysql-connector-c

aber nichts ändert sich - es baut immer noch x86_64 nur binär. Gibt es eine Möglichkeit, Homebrew dazu zu bringen, entweder eine Dual-Arch-Bibliothek oder eine i386-Bibliothek zu erstellen? Ich habe die Kernel-Architektur auf x86_64 eingestellt, wenn es darauf ankommt.

StasM
quelle
Welche Mac-Version verwenden Sie? Ich kann es auf meinem Mac 10.8.1 nicht zum Laufen bringen. Könnten Sie Ihr modifiziertes Brühskript hier als Referenz einfügen? Vielen Dank.
Kane

Antworten:

5

Sie können Folgendes versuchen:

brew edit mysql-connector-c

und ändern Sie dann die Initialisierung im Block "Installieren".

Obwohl ich das nicht ausprobiert habe, solltest du so etwas machen:

ENV['CFLAGS']='xxx'
ENV['LDFLAGS']='xxx'

Sie können das Beispiel hier überprüfen: Probleme mit Homebrew, kann nichts installieren ...

Walty Yeung
quelle
Also, was würde ich dort setzen? CFLAGS-Definitionen?
StasM
Der angegebene Link lautet : ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386 ist etwas übertrieben.
Harrymc
scheint zu funktionieren, die Bibliothek ist jetzt i386. Vielen Dank!
StasM
@harrymc und StasM, welche Mac-Version verwenden Sie? Ich kann es auf meinem Mac 10.8.1 nicht zum Laufen bringen. Könnten Sie Ihr modifiziertes Brühskript hier als Referenz einfügen? Vielen Dank.
Kane
@ Kane Mine ist 10.6.8.
StasM
5

Es ist ein ähnliches Problem bei der Installation von DevIL aufgetreten. Es scheint, dass Homebrew versucht, an Tools übergebene Befehlszeilenparameter zu bereinigen, zumindest unter ML:

$ brew install -v devil
...
brew: superenv removed: -arch i386
...

Es hat bei mir funktioniert, die Formel wie in der Antwort von Walty zu bearbeiten, um CFLAGS und CXXFLAGS anzugeben, aber stattdessen die Installation mit einer Standardumgebung auszuführen:

$ brew install --env=std devil
qiller
quelle
3

Einige Formeln verfügen über eine universelle Option, mit der Sie gleichzeitig für i386 und x86_64 kompilieren können:

$ brew options sdl
--universal
        Build a universal binary

Das mysql-connector-cbietet es nicht als Option an, aber ich fand es sehr einfach, die Option zu einer anderen Formel hinzuzufügen, an der ich gearbeitet habe: https://github.com/mxcl/homebrew/pull/18713/files

zeichnisch
quelle