Homebrew build dengan lengkungan yang berbeda?

9

Saya mencoba untuk menginstal resep mysql-connector-c via homebrew, dan itu membangun dengan baik, tetapi menghasilkan pustaka x86_64:

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

Namun saya membutuhkan perpustakaan i386 untuk proyek saya. Saya mencoba memberikannya CFLAGS dan LDFLAGS seperti ini:

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

tapi tidak ada yang berubah - itu masih hanya membangun biner x86_64. Apakah ada cara untuk membuat homebrew build baik perpustakaan lengkung ganda atau perpustakaan i386? Saya memiliki arsitektur kernel yang disetel ke x86_64, jika itu penting.

StasM
sumber
versi mac yang Anda gunakan? Saya tidak bisa membuatnya bekerja di Mac 10.8.1 saya. Bisakah Anda menempelkan skrip minuman hasil modifikasi di sini sebagai referensi? Terima kasih banyak.
Kane

Jawaban:

5

Anda dapat mencoba yang berikut ini:

brew edit mysql-connector-c

dan kemudian memodifikasi inisialisasi di blok "instal".

Meskipun saya tidak mencoba ini, Anda seharusnya melakukan sesuatu seperti ini:

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

Anda dapat memeriksa contoh di sini: Masalah dengan homebrew, tidak dapat menginstal apa pun ...

Walty Yeung
sumber
Jadi apa yang akan saya taruh di sana? Definisi CFLAGS?
StasM
Link yang diberikan mengatakan: ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386 agak berlebihan.
harrymc
tampaknya berfungsi, perpustakaan sekarang i386. Terima kasih!
StasM
@harrymc dan StasM, versi mac mana yang Anda gunakan? Saya tidak bisa membuatnya bekerja di Mac 10.8.1 saya. Bisakah Anda menempelkan skrip minuman hasil modifikasi di sini sebagai referensi? Terima kasih.
Kane
@Kane Mine adalah 10.6.8.
StasM
5

Mengalami masalah serupa menginstal DevIL. Tampaknya Homebrew sedang mencoba membersihkan parameter perintah yang diberikan ke alat, setidaknya pada ML:

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

Ini berhasil bagi saya untuk mengedit rumus seperti pada jawaban Walty untuk menentukan CFLAGS dan CXXFLAGS, tetapi jalankan install dengan lingkungan standar sebagai gantinya:

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

Beberapa Rumus memiliki opsi universal yang memungkinkan Anda mengkompilasi untuk i386 dan x86_64 secara bersamaan:

$ brew options sdl
--universal
        Build a universal binary

Tidak mysql-connector-cmenawarkannya sebagai opsi tetapi saya merasa sangat mudah untuk menambahkan opsi ke formula lain yang sedang saya kerjakan: https://github.com/mxcl/homebrew/pull/18713/files

drewish
sumber