Files
        @ b4e9e12a6e2f
    
        
              Branch filter: 
        
    Location: libtransport.git/msvc-deps/curl/MacOSX-Framework
        
            
            b4e9e12a6e2f
            5.0 KiB
            text/plain
        
        
    
    Merge branch 'master' of github.com:hanzz/libtransport
    | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | #!/bin/bash
# This script performs all of the steps needed to build a
# universal binary libcurl.framework for Mac OS X 10.4 or greater.
#
# Hendrik Visage:
#  Generalizations added since  Snowleopard (10.6) do not include
# the 10.4u SDK.
#
# Also note:
# 10.5 is the *ONLY* SDK that support PPC64 :( -- 10.6 do not have ppc64 support
#If you need to have PPC64 support then change below to 1
PPC64_NEEDED=0
# For me the default is to develop for the platform I am on, and if you
#desire compatibility with older versions then change USE_OLD to 1 :)
USE_OLD=0
VERSION=`/usr/bin/sed -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' include/curl/curlver.h`
FRAMEWORK_VERSION=Versions/Release-$VERSION
#I also wanted to "copy over" the system, and thus the reason I added the
# version to Versions/Release-7.20.1 etc.
# now a simple rsync -vaP libcurl.framework /Library/Frameworks will install it
# and setup the right paths to this version, leaving the system version
# "intact", so you can "fix" it later with the links to Versions/A/...
OLD_SDK=`ls  /Developer/SDKs|head -1`
NEW_SDK=`ls -r /Developer/SDKs|head -1`
if test "0"$USE_OLD -gt 0
then
 SDK32=$OLD_SDK
else
 SDK32=$NEW_SDK
fi
MACVER=`echo $SDK32|sed -e s/[a-zA-Z]//g -e s/.\$//`
SDK32_DIR='/Developer/SDKs/'$SDK32
MINVER32='-mmacosx-version-min='$MACVER
ARCHES32='-arch i386 -arch ppc'
if test $PPC64_NEEDED -gt 0
then
  SDK64=10.5
  ARCHES64='-arch x86_64 -arch ppc64'
  SDK64=`ls  /Developer/SDKs|grep 10.5|head -1`
else
 ARCHES64='-arch x86_64'
 #We "know" that 10.4 and earlier do not support 64bit
 OLD_SDK64=`ls  /Developer/SDKs|egrep -v "10.[0-4]"|head -1`
 NEW_SDK64=`ls -r /Developer/SDKs|egrep -v "10.[0-4]"|head -1`
 if test $USE_OLD -gt 0
  then
   SDK64=$OLD_SDK64
  else
   SDK64=$NEW_SDK64
  fi
fi
SDK64_DIR='/Developer/SDKs/'$SDK64
MACVER64=`echo $SDK64|sed -e s/[a-zA-Z]//g -e s/.\$//`
MINVER64='-mmacosx-version-min='$MACVER64
if test ! -z $SDK32; then
  echo "----Configuring libcurl for 32 bit universal framework..."
  make clean
  ./configure --disable-dependency-tracking --disable-static --with-gssapi \
    CFLAGS="-Os -isysroot $SDK32_DIR $ARCHES32 $MINVER32" \
    LDFLAGS="-Wl,-syslibroot,$SDK32_DIR $ARCHES32 $MINVER32 -Wl,-headerpad_max_install_names" \
    CC=$CC
  echo "----Building 32 bit libcurl..."
  make
  echo "----Creating 32 bit framework..."
  rm -r libcurl.framework
  mkdir -p libcurl.framework/${FRAMEWORK_VERSION}/Resources
  cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl
  install_name_tool -id @executable_path/../Frameworks/libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl
  /usr/bin/sed -e "s/7\.12\.3/$VERSION/" lib/libcurl.plist >libcurl.framework/${FRAMEWORK_VERSION}/Resources/Info.plist
  mkdir -p libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl
  cp include/curl/*.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl
  pushd libcurl.framework
  ln -fs ${FRAMEWORK_VERSION}/libcurl libcurl
  ln -fs ${FRAMEWORK_VERSION}/Resources Resources
  ln -fs ${FRAMEWORK_VERSION}/Headers Headers
  cd Versions
  ln -fs ${FRAMEWORK_VERSION} Current
  echo TEsting for SDK64
  if test -d $SDK64_DIR; then
  echo entering...
    popd
    make clean
    echo "----Configuring libcurl for 64 bit universal framework..."
    ./configure --disable-dependency-tracking --disable-static --with-gssapi \
      CFLAGS="-Os -isysroot $SDK64_DIR $ARCHES64 $MINVER64" \
      LDFLAGS="-Wl,-syslibroot,$SDK64_DIR $ARCHES64 $MINVER64 -Wl,-headerpad_max_install_names" \
      CC=$CC
    echo "----Building 64 bit libcurl..."
    make
    echo "----Appending 64 bit framework to 32 bit framework..."
    cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
    install_name_tool -id @executable_path/../Frameworks/libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
    cp libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl32
    pwd
    lipo libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 -create -output libcurl.framework/${FRAMEWORK_VERSION}/libcurl
    rm libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
    cp libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild32.h
    cp include/curl/curlbuild.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild64.h
    cat >libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild.h <<EOF
#ifdef __LP64__
#include "curl/curlbuild64.h"
#else
#include "curl/curlbuild32.h"
#endif
EOF
  fi
  pwd
  lipo -info libcurl.framework/${FRAMEWORK_VERSION}/libcurl
  echo "libcurl.framework is built and can now be included in other projects."
  echo "Copy libcurl.framework to your bundle's Contents/Frameworks folder, ~/Library/Frameworks or /Library/Frameworks."
else
  echo "Building libcurl.framework requires Mac OS X 10.4 or later with the MacOSX10.4/5/6 SDK installed."
fi
 |