123 lines · 5.9 KB · Text
RawDownload
#!/bin/sh## This script will automates the steps used to producing a static osx# package of SoX.## It requires to already have several external libraries already installed# under /usr/local/10.9.  The external libraries must be static only or else# it will expect dylib versions to already exist on external boxes.## This goes out of its way to use the oldest available SDK for greater# compatibility.## Various notes:## The following command lines were used to generate the static external# libraries SoX ships with.## brew install libtool## cd libpng-1.6.15# ./configure --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" --disable-shared --enable-static;make;sudo make install## cd ../wavpack-4.70.0# ./configure --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" --disable-shared --enable-static;make;sudo make install## cd ../flac-1.3.1# ./configure --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" CXXFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9" --disable-shared --enable-static;make;sudo make install## cd ../libogg-1.3.2# ./configure --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" --disable-shared --enable-static;make;sudo make install## cd ../libvorbis-1.3.4# ./configure --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" --disable-shared --enable-static;make;sudo make install## When compiling with newer versions of OS X, Carbon.h does not exist and# doesn't need to be included by app.  Edit programs/sndfile-play.c and# delete/comment out line 61.# cd ../libsndfile-1.0.25# ./configure --disable-sqlite --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" CXXFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9" --disable-shared --enable-static;make;sudo make install## cd ../libid3tag-0.15.1b# ./configure --prefix=/usr/local/10.9 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" --disable-shared --enable-static;make;sudo make install## To get MP3 header files used to enable MP3 support (no libraries used):## brew install mad## or compile and install:## cd ../libmad-0.15.1b# ./configure CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" LDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" --enable-shared --disable-static;make;sudo make install# MacOSXSDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk [ ! -x configure ] && autoreconf -i # Some versions of autoconf (2.63?) seem to get easily confused about# CPP variable. If you see warning messages about header files# rejected by preprocessor then its most likely from that.# Force the value of CPP=cpp works around that bug.if [ $# -ne 0 -o ! -r Makefile ]; then  ./configure \    --disable-shared \    --with-libltdl \    --enable-dl-lame --enable-dl-mad \    --enable-dl-amrnb --enable-dl-amrwb \    CPP=cpp\    CPPFLAGS="-I/usr/local/10.9/include -I/usr/local/include" \    CFLAGS="-isysroot ${MacOSXSDK}" \    LDFLAGS="-L/usr/local/10.9/lib -isysroot ${MacOSXSDK}" \    $*fi make -s all txt || exit 1 dylib_need_to_ship=`otool -L src/sox | grep -v CoreAudio.framework | grep -v libz | grep -v libiconv | grep -v libSystem | grep -v libgcc_s | grep -v src/sox` # Make sure we are only relying on OS dynamic libraries.  If not# then app won't run unless user's box looks just like this one# (unlikely).  We could ship some dylibs but that would require# using rpath just right (@loader_path) and thats not easy to# get right.if [ ! "${dylib_need_to_ship}x" = "x" ]; then    echo "Non-OS dylib's detected:${dylib_need_to_ship}"    exit 1fi dir=sox-`grep Version: sox.pc | cut -d ' ' -f 2`rm -rf $dir $dir-macosx.zipmkdir -p $dir # Judgement call.  If filename ends in .txt then user can view# by double clicking in Finder.for f in LICENSE.GPL README.osx; do  cp -p $f $dir/$f.txtdone for f in ChangeLog README; do  cp -p $f $dir/$fdone binaries=src/sox # TODO: Distribute wget binary#[ -r "../wget-1.11.4/wget" ] && binaries+=" ../wget-1.11.4/wget" cp -p \  $binaries \  sox.txt \  soxformat.txt \  soxi.txt \  libsox.txt \  $dir (cd $dir; ln -s sox soxi; ln -s sox play; ln -s sox rec) #if test -r "../wget-1.11.4/wget"; then#  cp ../wget-1.11.4/wget.ini $dir#fi zip --symlinks -r $dir-macosx.zip $dirrm -rf $dir

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t