libpngのUniversal Binaryを作成 - 環境変数CFLAGSとLDFLAGSに適切な値を渡し、configureで単純にUniversal Binary
- Technical Note TN2137:“configure”ベースのオープンソースプロジェクトからのUniversal Binaryのビルドを参考にやってみたが、makeでエラーになってしまう。
CFLAGSとLDFLAGSを設定
Macintosh:libpng-1.2.12 kuru$ export CFLAGS="-O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc" Macintosh:libpng-1.2.12 kuru$ export LDFLAGS="-arch i386 -arch ppc"
configure
Macintosh:libpng-1.2.12 kuru$ configure --disable-dependency-tracking checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o . . . configure: WARNING: *** You have not enabled versioned symbols. configure: pkgconfig directory is ${libdir}/pkgconfig configure: creating ./config.status config.status: creating Makefile config.status: creating libpng.pc config.status: creating libpng-config config.status: creating config.h config.status: executing depfiles commands
make
makeするとエラーになってしまう。
Macintosh:libpng-1.2.12 kuru$ make make all-am /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c -o libpng12_la-png.lo `test -f 'png.c' || echo './'`png.c mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c png.c -fno-common -DPIC -o .libs/libpng12_la-png.o gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c png.c -o libpng12_la-png.o >/dev/null 2>&1 /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c -o libpng12_la-pngset.lo `test -f 'pngset.c' || echo './'`pngset.c gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c pngset.c -fno-common -DPIC -o .libs/libpng12_la-pngset.o ・ ・ ・ ・ ・ gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c pnggccrd.c -fno-common -DPIC -o .libs/libpng12_la-pnggccrd.o gcc -DHAVE_CONFIG_H -I. -I. -I. -DPNG_CONFIGURE_LIBPNG -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -c pnggccrd.c -o libpng12_la-pnggccrd.o >/dev/null 2>&1 rm -f libpng.sym libpng.sym.new gcc -E -DPNG_CONFIGURE_LIBPNG -DPNG_BUILDSYMS ./png.h | \ /usr/bin/sed -n -e 's|^.*PNG_FUNCTION_EXPORT[ ]*\([a-zA-Z0-9_]*\).*$|\1|p' \ -e 's|^.*PNG_DATA_EXPORT[ ]*\([a-zA-Z0-9_]*\).*$|\1|p' \ >libpng.sym.new mv libpng.sym.new libpng.sym /bin/sh ./libtool --tag=CC --mode=link gcc -O -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -arch i386 -arch ppc -o libpng12.la -rpath /usr/local/lib -no-undefined -export-dynamic -version-number 0:12:0 -export-symbols libpng.sym libpng12_la-png.lo libpng12_la-pngset.lo libpng12_la-pngget.lo libpng12_la-pngrutil.lo libpng12_la-pngtrans.lo libpng12_la-pngwutil.lo libpng12_la-pngread.lo libpng12_la-pngrio.lo libpng12_la-pngwio.lo libpng12_la-pngwrite.lo libpng12_la-pngrtran.lo libpng12_la-pngwtran.lo libpng12_la-pngmem.lo libpng12_la-pngerror.lo libpng12_la-pngpread.lo libpng12_la-pnggccrd.lo -lz sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < libpng.sym > .libs/libpng12-symbols.expsym gcc -dynamiclib -o .libs/libpng12.0.12.0.dylib .libs/libpng12_la-png.o .libs/libpng12_la-pngset.o .libs/libpng12_la-pngget.o .libs/libpng12_la-pngrutil.o .libs/libpng12_la-pngtrans.o .libs/libpng12_la-pngwutil.o .libs/libpng12_la-pngread.o .libs/libpng12_la-pngrio.o .libs/libpng12_la-pngwio.o .libs/libpng12_la-pngwrite.o .libs/libpng12_la-pngrtran.o .libs/libpng12_la-pngwtran.o .libs/libpng12_la-pngmem.o .libs/libpng12_la-pngerror.o .libs/libpng12_la-pngpread.o .libs/libpng12_la-pnggccrd.o -lz -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch ppc -arch i386 -arch ppc -install_name /usr/local/lib/libpng12.0.dylib -Wl,-compatibility_version -Wl,13 -Wl,-current_version -Wl,13.0 nmedit -s .libs/libpng12-symbols.expsym .libs/libpng12.0.12.0.dylib nmedit: removing global symbols from a final linked no longer supported. Use -exported_symbols_list at link time when building: /Users/kuru/Documents/00_Atotok/11.atotok-dev/13.Projects/library/libpng-1.2.12/.libs/libpng12.0.12.0.dylib (for architecture i386) nmedit: symbols names listed in: .libs/libpng12-symbols.expsym not in: /Users/kuru/Documents/00_Atotok/11.atotok-dev/13.Projects/library/libpng-1.2.12/.libs/libpng12.0.12.0.dylib (for architecture ppc7400) _png_pass_width make[1]: *** [libpng12.la] Error 1 make: *** [all] Error 2