Homebrew zbudować z innym łukiem?

9

Próbowałem zainstalować przepis mysql-connector-c za pośrednictwem homebrew i buduje się dobrze, ale tworzy bibliotekę x86_64:

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

Potrzebuję jednak biblioteki i386 do mojego projektu. Próbowałem nadać mu CFLAGS i LDFLAGS w następujący sposób:

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

ale nic się nie zmienia - nadal buduje x86_64 tylko binarnie. Czy jest jakiś sposób, aby homebrew zbudował bibliotekę z podwójnym łukiem lub bibliotekę i386? Mam architekturę jądra ustawioną na x86_64, jeśli ma to znaczenie.

StasM
źródło
jakiej wersji Mac używasz? Nie mogę sprawić, aby działał na moim komputerze Mac 10.8.1. Czy mógłbyś tutaj wkleić zmodyfikowany skrypt parzenia? Wielkie dzięki.
Kane

Odpowiedzi:

5

Możesz spróbować:

brew edit mysql-connector-c

a następnie zmodyfikuj inicjalizację w bloku „zainstaluj”.

Chociaż tego nie wypróbowałem, powinieneś zrobić coś takiego:

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

Możesz sprawdzić przykład tutaj: problemy z homebrew, nic nie można zainstalować ...

Walty Yeung
źródło
Co bym tam umieścił? Definicje CFLAGS?
StasM
Podana Link mówi: ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386 jest nieco przesadny.
harrymc
wygląda na to, że działa, biblioteka to teraz i386. Dziękuję Ci!
StasM
@harrymc and StasM, z której wersji Maca korzystasz? Nie mogę sprawić, aby działał na moim komputerze Mac 10.8.1. Czy mógłbyś tutaj wkleić zmodyfikowany skrypt parzenia? Dzięki.
Kane
@Kane Mine ma 10.6.8.
StasM,
5

Wystąpił podobny problem z instalacją DevIL. Wygląda na to, że Homebrew próbuje odkazić parametry wiersza poleceń przekazane do narzędzi, przynajmniej w ML:

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

Pomogło mi edytowanie formuły jak w odpowiedzi Walty, aby określić CFLAGS i CXXFLAGS, ale zamiast tego uruchom instalację ze standardowym środowiskiem:

$ brew install --env=std devil
qiller
źródło
3

Niektóre formuły mają uniwersalną opcję, która pozwala na kompilację zarówno dla i386, jak i x86_64 w tym samym czasie:

$ brew options sdl
--universal
        Build a universal binary

mysql-connector-cNie oferuje go jako opcja, ale uważam, że bardzo łatwo dodać opcję do innego wzoru byłem w pracy: https://github.com/mxcl/homebrew/pull/18713/files

pociągliwy
źródło