Advertisement
AOphagen

Build Libtiff on Mac for iOS (working version)

Jun 28th, 2013
844
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2. # build.sh
  3.  
  4. GLOBAL_OUTDIR="`pwd`/dependencies"
  5. LOCAL_OUTDIR="./outdir"
  6. TIFF_LIB="`pwd`/tiff-3.9.6"
  7.  
  8. IOS_BASE_SDK="6.1"
  9. IOS_DEPLOY_TGT="6.1"
  10.  
  11. setenv_all()
  12. {
  13. # Add internal libs
  14. export CFLAGS="-O2 $CFLAGS -I$GLOBAL_OUTDIR/include -L$GLOBAL_OUTDIR/lib"
  15.  
  16. export CXX="$DEVROOT/usr/bin/llvm-g++"
  17. export CC="$DEVROOT/usr/bin/llvm-gcc"
  18.  
  19. export LD=$DEVROOT/usr/bin/ld
  20. export AR=$DEVROOT/usr/bin/ar
  21. export AS=$DEVROOT/usr/bin/as
  22. export NM=$DEVROOT/usr/bin/nm
  23. export RANLIB=$DEVROOT/usr/bin/ranlib
  24. export LDFLAGS="-L$SDKROOT/usr/lib/ -L$GLOBAL_OUTDIR/lib -lz"
  25.  
  26. export CPPFLAGS=$CFLAGS
  27. export CXXFLAGS=$CFLAGS
  28. }
  29.  
  30. setenv_armv7()
  31. {
  32. unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS
  33.  
  34. export DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
  35. export SDKROOT=$DEVROOT/SDKs/iPhoneOS$IOS_BASE_SDK.sdk
  36.  
  37. export CFLAGS="-arch armv7 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT -I$SDKROOT/usr/include/"
  38.  
  39. setenv_all
  40. }
  41.  
  42. setenv_i386()
  43. {
  44. unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS
  45.  
  46. export DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
  47. export SDKROOT=$DEVROOT/SDKs/iPhoneSimulator$IOS_BASE_SDK.sdk
  48.  
  49. export CFLAGS="-arch i386 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT"
  50.  
  51. setenv_all
  52. }
  53.  
  54. create_outdir_lipo()
  55. {
  56. for lib_i386 in `find $LOCAL_OUTDIR/i386 -name "lib*\.a"`; do
  57. lib_armv7=`echo $lib_i386 | sed "s/i386/armv7/g"`
  58. lib=`echo $lib_i386 | sed "s/i386//g"`
  59. lipo -arch armv7 $lib_armv7 -arch i386 $lib_i386 -create -output $lib
  60. done
  61. }
  62.  
  63. #######################
  64. # LIBTIFF
  65. #######################
  66.  
  67. cd $TIFF_LIB
  68. rm -rf $LOCAL_OUTDIR
  69. mkdir -p $LOCAL_OUTDIR/armv7 $LOCAL_OUTDIR/i386
  70.  
  71. make clean 2> /dev/null
  72. make distclean 2> /dev/null
  73. echo "SETENV_i386"
  74. setenv_i386
  75. echo "CONFIGURE"
  76. ./configure --enable-shared=no --prefix=`pwd`/$LOCAL_OUTDIR/i386
  77. echo "MAKE"
  78. make -j4
  79. echo "MAKE INSTALL"
  80. make install
  81.  
  82. make clean 2> /dev/null
  83. make distclean 2> /dev/null
  84. echo "SETENV_ARMV7"
  85. setenv_armv7
  86. echo "CONFIGURE"
  87. ./configure --host=arm-apple-darwin7 --enable-shared=no --prefix=`pwd`/$LOCAL_OUTDIR/armv7
  88. echo "MAKE"
  89. make -j4
  90. echo "MAKE INSTALL"
  91. make install
  92.  
  93. # since we're installing the libraries into LOCAL_OUTDIR/<arch>/lib
  94. # create_outdir_lipo will try to put them in LOCAL_OUTDIR/lib
  95. mkdir -p $LOCAL_OUTDIR/lib
  96. create_outdir_lipo
  97. mkdir -p $GLOBAL_OUTDIR/include
  98. cp -rvf $LOCAL_OUTDIR/i386/include/*.h $GLOBAL_OUTDIR/include
  99. mkdir -p $GLOBAL_OUTDIR/lib
  100. cp -rvf $LOCAL_OUTDIR/lib/lib*.a $GLOBAL_OUTDIR/lib
  101. cd ..
  102.  
  103. echo "Finished!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement