#!/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.

VERSION=`/usr/bin/sed -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' include/curl/curlver.h`

SDK32='/Developer/SDKs/MacOSX10.4u.sdk'

MINVER32='-mmacosx-version-min=10.4'

ARCHES32='-arch ppc -arch i386'

SDK64='/Developer/SDKs/MacOSX10.5.sdk'

MINVER64='-mmacosx-version-min=10.5'

ARCHES64='-arch ppc64 -arch x86_64'

if test -d $SDK32; then
  echo "----Configuring libcurl for 32 bit universal framework..."
  ./configure --disable-dependency-tracking --disable-static --with-gssapi \
    CFLAGS="-Os -isysroot $SDK32 $ARCHES32 $MINVER32" \
    LDFLAGS="-Wl,-syslibroot,$SDK32 $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/Versions/A/Resources
  cp lib/.libs/libcurl.dylib libcurl.framework/Versions/A/libcurl
  install_name_tool -id @executable_path/../Frameworks/libcurl.framework/Versions/A/libcurl libcurl.framework/Versions/A/libcurl
  /usr/bin/sed -e "s/7\.12\.3/$VERSION/" lib/libcurl.plist >libcurl.framework/Versions/A/Resources/Info.plist
  mkdir -p libcurl.framework/Versions/A/Headers/curl
  cp include/curl/*.h libcurl.framework/Versions/A/Headers/curl
  pushd libcurl.framework
  ln -fs Versions/A/libcurl libcurl
  ln -fs Versions/A/Resources Resources
  ln -fs Versions/A/Headers Headers
  cd Versions
  ln -fs A Current
  
  if test -d $SDK64; then
    popd
    make clean
    echo "----Configuring libcurl for 64 bit universal framework..."
    ./configure --disable-dependency-tracking --disable-static --with-gssapi \
      CFLAGS="-Os -isysroot $SDK64 $ARCHES64 $MINVER64" \
      LDFLAGS="-Wl,-syslibroot,$SDK64 $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/Versions/A/libcurl64
    install_name_tool -id @executable_path/../Frameworks/libcurl.framework/Versions/A/libcurl libcurl.framework/Versions/A/libcurl64
    cp libcurl.framework/Versions/A/libcurl libcurl.framework/Versions/A/libcurl32
    lipo libcurl.framework/Versions/A/libcurl32 libcurl.framework/Versions/A/libcurl64 -create -output libcurl.framework/Versions/A/libcurl
    rm libcurl.framework/Versions/A/libcurl32 libcurl.framework/Versions/A/libcurl64
    cp libcurl.framework/Versions/A/Headers/curl/curlbuild.h libcurl.framework/Versions/A/Headers/curl/curlbuild32.h
    cp include/curl/curlbuild.h libcurl.framework/Versions/A/Headers/curl/curlbuild64.h
    cat >libcurl.framework/Versions/A/Headers/curl/curlbuild.h <<EOF
#ifdef __LP64__
#include "curl/curlbuild64.h"
#else
#include "curl/curlbuild32.h"
#endif
EOF
  fi
  
  lipo -info libcurl.framework/Versions/A/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.4u SDK installed."
fi
