compiling libpng as universal binary for Mac OSX

Човек дори и добре да живее все някога опира до компилации на проекти с отворен код с цел последващо вграждане. Преди няколко дена ми се наложи да компилирам и libpng за да го вградя като статична библиотека в проект. Понеже проекта е universal binary (i386 и x86_64) ми трябва обаче и библиотеката да поддържа и двете архитектури. Компилация само за x86_64 или i386 не ми вършеше работа.
Затова се разтърсих и намерих следния скрипт:

./configure CFLAGS=”-arch i386 -arch ppc” CXXFLAGS=”-arch i386 -arch ppc” –disable-dependency-tracking

Понеже на мен ppc не ми трябваше просто го замених с x86_64 и скрипта изглеждаше така:

./configure CFLAGS=”-arch i386 -arch x86_64″ CXXFLAGS=”-arch i386 -arch x86_64″ –disable-dependency-tracking

После правим един бърз make и резултатния файл се намира тук .libs/libpng12.a За всеки случай пишем:

$lipo -info .libs/libpng.a
Architectures in the fat file: .libs/libpng.a are: i386 x86_64

И резултата е че имаме универсална библиотека с поддръжка на i386 и x86_64!