Skip to content

Instantly share code, notes, and snippets.

@catesandrew
Created June 6, 2011 16:02
Show Gist options
  • Save catesandrew/1010538 to your computer and use it in GitHub Desktop.
Save catesandrew/1010538 to your computer and use it in GitHub Desktop.
build out audio dev
#!/bin/sh
set -e
function download() {
url=$1
base=$(basename $1)
if [[ ! -e $base ]]; then
echo "curling $url"
curl -O -L $url
fi
}
function downloadSF() {
url=$1
base=$(basename $1)
if [[ ! -e $base ]]; then
echo "curling $url"
curl -f -L $url > $base
fi
}
# Speex audio: libspeex, git clone git://git.xiph.org/speex.git (needs Ogg)
# GSM audio: libgsm, http://user.cs.tu-berlin.de/~jutta/gsm/gsm-1.0.13.tar.gz
# NUT format: libnut, svn co svn://svn.mplayerhq.hu/nut/src/trunk/ nut
# Schroedinger video: libschroedinger, http://diracvideo.org/download/schroedinger/ (requires liboil, http://liboil.freedesktop.org/download/)
#'taglib' 'http://developer.kde.org/~wheeler/files/src/taglib-1.6.3.tar.gz',
#'dvdcss' 'http://download.videolan.org/pub/videolan/libdvdcss/1.2.10/libdvdcss-1.2.10.tar.bz2'
#'exif' "$sourceforge/sourceforge/libexif/libexif-0.6.20.tar.bz2", '--disable-docs' ]
# AMR-NarrowBand audio: libamr-nb, http://www.penguin.cz/~utx/amr
# download http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
# bzip2 -d amrnb-7.0.0.2.tar.bz2
# tar xvf amrnb-7.0.0.2.tar
# rm amrnb-7.0.0.2.tar
# cd amrnb-7.0.0.2
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf amrnb-7.0.0.2
# AMR-WideBand audio: libamr-wb, http://www.penguin.cz/~utx/amr
# download http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.4.tar.bz2
# bzip2 -d amrwb-7.0.0.4.tar.bz2
# tar xvf amrwb-7.0.0.4.tar
# rm amrwb-7.0.0.4.tar
# cd amrwb-7.0.0.4
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf amrwb-7.0.0.4
# libmad
# TODO: Doesn't work
# downloadSF http://downloads.sourceforge.net/sourceforge/mad/libmad-0.15.1b.tar.gz
# tar xzvf libmad-0.15.1b.tar.gz
# rm libmad-0.15.1b.tar.gz
# cd libmad-0.15.1b
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf libmad-0.15.1b
# XviD format: libxvid, http://downloads.xvid.org/downloads/xvid_latest.tar.gz
# TODO
# Ogg format: libogg, http://downloads.xiph.org/releases/ogg/
# download http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz
# tar xzvf libogg-1.2.2.tar.gz
# rm libogg-1.2.2.tar.gz
# cd libogg-1.2.2
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf libogg-1.2.2
# Ogg Vorbis audio: libvorbis, http://downloads.xiph.org/releases/vorbis/ (needs Ogg)
# download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz
# tar xzvf libvorbis-1.3.2.tar.gz
# rm libvorbis-1.3.2.tar.gz
# cd libvorbis-1.3.2
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
#rm -Rf libvorbis-1.3.2
# FLAC audio: libflac, http://sourceforge.net/projects/flac/files/flac-src/
# TODO: doesn't work
# downloadSF http://downloads.sourceforge.net/sourceforge/flac/flac-1.2.1.tar.gz
# tar xzvf flac-1.2.1.tar.gz
# rm flac-1.2.1.tar.gz
# cd flac-1.2.1
# # Workaround Intel problem - Missing _FLAC__lpc_restore_signal_asm_ia32
# # --disable-asm-optimizations
# ./configure --disable-dependency-tracking --disable-asm-optimizations --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf flac-1.2.1
# Theora video: libtheora, svn co http://svn.xiph.org/trunk/theora theora (needs Ogg and Vorbis)
# TODO: Doesn't work, needs automake 1.11
# if [ ! -d theora ]; then
# svn co http://svn.xiph.org/trunk/theora theora
# fi
# cd theora
# if [ ! -d autotools ]
# then
# mkdir autotools
# aclocal -I /usr/local/share/aclocal/
# autoheader -I /usr/local/share/aclocal/
# glibtoolize --automake --copy
# automake --add-missing --copy
# autoconf -I /usr/local/share/aclocal/
# fi
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf theora
# download http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz
# tar xzvf gettext-0.18.1.1.tar.gz
# rm gettext-0.18.1.1.tar.gz
# cd gettext-0.18.1.1
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# make distclean
# cd ..
# rm -Rf gettext-0.18.1.1
# downloadSF http://downloads.sourceforge.net/sourceforge/lame/lame-3.98.4.tar.gz
# tar xzvf lame-3.98.4.tar.gz
# rm lame-3.98.4.tar.gz
# cd lame-3.98.4
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# downloadSF http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz
# tar xzvf faad2-2.6.1.tar.gz
# rm faad2-2.6.1.tar.gz
# cd faad2
# if [ ! -d autotools ]
# then
# cat configure.in | sed 's/DNL AC_PROG_CXX/AC_PROG_CXX/g' > configure.in
# mkdir autotools
# aclocal -I `pwd .` -I /usr/local/share/aclocal/
# autoheader -I `pwd .` -I /usr/local/share/aclocal/
# glibtoolize --automake --copy
# automake --add-missing --copy
# autoconf -I `pwd .` -I /usr/local/share/aclocal/
# fi
# ./configure --disable-dependency-tracking --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
# rm -Rf faad2
# downloadSF http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
# tar xzvf faac-1.28.tar.gz
# rm faac-1.28.tar.gz
# cd faac-1.28
# if [ ! -d autotools ]
# then
# cat configure.in | sed 's/DNL AC_PROG_CXX/AC_PROG_CXX/g' > configure.in
# mkdir autotools
# aclocal -I `pwd .` -I /usr/local/share/aclocal/
# autoheader -I `pwd .` -I /usr/local/share/aclocal/
# libtoolize --automake
# automake --add-missing
# autoconf -I `pwd .` -I /usr/local/share/aclocal/
# fi
## It's a bit confusing but the configuration option
## --with-mp4v2 compile libmp4v2
## means to build the embedded libmp4v2 source and without
## means to look for an external library which it does by looking in mp4.h etc.
# ./configure --disable-dependency-tracking --without-mp4v2 --prefix=/usr/local CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-L /usr/local/lib"
# make
# sudo make install
# cd ..
# rm -Rf faac-1.28
# if [ ! -d SDL ]
# then
# hg clone http://hg.libsdl.org/SDL
# fi
# cd SDL
# ./autogen.sh
#./configure --disable-dependency-tracking --prefix=/usr/local --disable-mmx --enable-pthreads CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-L/usr/local/lib" LIBS="-liconv"
# make
# sudo make install
# cd ..
# rm -Rf SDL
# if [ ! -d x264 ]
# then
# git clone git://git.videolan.org/x264.git
# fi
# cd x264
# ./configure --prefix=/usr/local --extra-cflags="-arch i386 -arch x86_64"
# make
# sudo make install
# sudo make install-lib-static
# cd ..
# if [ ! -d ffmpeg ]
# then
# git clone git://git.videolan.org/ffmpeg.git
# fi
# cd ffmpeg
# git pull origin master
# ./configure --prefix=/usr/local --disable-mmx --enable-pthreads --enable-gpl --enable-libx264 --arch=x86_64 --enable-libfaac --enable-nonfree --disable-muxers --disable-encoders --enable-muxer=avi --enable-muxer=mpeg1vcd --enable-muxer=mpeg2dvd --enable-muxer=mpeg2svcd --enable-muxer=wav --enable-muxer=mp3 --enable-muxer=flac --enable-encoder=ac3 --enable-encoder=mp2 --enable-encoder=libmp3lame --enable-encoder=flac --enable-encoder=wav --disable-protocols --enable-protocol=file --enable-protocol=pipe --disable-bsfs --enable-libmp3lame --disable-shared --enable-encoder=mpeg4 --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-muxer=image2 --enable-encoder=mjpeg --disable-bzlib --disable-network --enable-encoder=pcm_s16le --disable-filters --enable-filter=pad --enable-filter=scale --enable-filter=crop --enable-filter=setdar --enable-muxer=pcm_s16le
# --extra-ldflags="-l m"
# ./configure --arch=x86_64 --disable-mmx --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-nonfree --enable-pthreads --enable-shared --prefix=/usr/local
# make clean
# make
# sudo make install
# sudo make install-libs
# sudo make install-libavcodec-shared
# sudo make install-libavfilter-shared
# sudo make install-libavutil-shared
# sudo make install-libswscale-shared
# sudo make install-libavdevice-shared
# sudo make install-libavformat-shared
# sudo make install-libpostproc-shared
# make distclean
# cd ..
# # download http://txt2tags.googlecode.com/files/txt2tags-2.6.tgz
# # tar xzvf txt2tags-2.6.tgz
# # rm txt2tags-2.6.tgz
# # cd txt2tags-2.6
# # sudo cp txt2tags /usr/local/bin
# # sudo mv doc/manpage.man /usr/local/share/man/man1/txt2tags.1
# # cd ..
# if [ ! -d txt2tags ]
# then
# svn checkout http://txt2tags.googlecode.com/svn/trunk/ txt2tags
# fi
# cd txt2tags
# sudo cp txt2tags /usr/local/bin
# cd ./doc/English
# txt2tags -t man manpage.t2t
# sudo mv manpage.man /usr/local/share/man/man1/txt2tags.1
# cd ..
# cd ..
# rm -Rf txt2tags
#
#
# if [ ! -d tovid ]
# then
# svn checkout http://tovid.googlecode.com/svn/trunk/tovid/ tovid
# fi
# cd tovid
# ./setup.py build
# ./setup.py build_tovid_init
# ./setup.py build_docs
# sudo ./setup.py install --prefix=/usr/local
# cd ..
#
#
# download http://www.ijg.org/files/jpegsrc.v8c.tar.gz
# tar xzvf jpegsrc.v8c.tar.gz
# rm jpegsrc.v8c.tar.gz
# cd jpeg-8c
# CFLAGS="-arch i386 -arch x86_64" ./configure --disable-dependency-tracking --prefix=/usr/local
# make
# sudo make install
# cd ..
# rm -Rf jpeg-8c
#
#
# downloadSF http://downloads.sourceforge.net/sourceforge/mjpeg/mjpegtools-2.0.0.tar.gz
# tar xzvf mjpegtools-2.0.0.tar.gz
# rm mjpegtools-2.0.0.tar.gz
# cd mjpegtools-2.0.0
# CFLAGS="-arch i386 -arch x86_64" ./configure --disable-dependency-tracking --prefix=/usr/local --enable-simd-accel --without-x
# make
# sudo make install
# cd ..
# rm -Rf mjpegtools-2.0.0
#
#
# download http://www.microbrew.org/tools/md5sha1sum/md5sha1sum-0.9.5.tar.gz
# tar xzvf md5sha1sum-0.9.5.tar.gz
# rm md5sha1sum-0.9.5.tar.gz
# cd md5sha1sum-0.9.5
# ./configure --prefix=/usr/local
# make
# sudo make install
# cd ..
# rm -Rf md5sha1sum-0.9.5
#
#
# if [ ! -d mplayer ]
# then
# git clone git://git.mplayerhq.hu/mplayer
# fi
# if [ ! -d libdvdread4 ]
# then
# svn co svn://svn.mplayerhq.hu/dvdnav/trunk/libdvdread/src libdvdread4
# svn export ./libdvdread4 ./mplayer/libdvdread4/
# fi
# if [ ! -d libdvdnav ]
# then
# svn co svn://svn.mplayerhq.hu/dvdnav/trunk/libdvdnav/src libdvdnav
# svn export ./libdvdnav ./mplayer/libdvdnav/
# fi
# cp -R ./ffmpeg/libavcodec/ ./mplayer/libavcodec/
# cp -R ./ffmpeg/libavutil/ ./mplayer/libavutil/
# cp -R ./ffmpeg/libavformat/ ./mplayer/libavformat/
# cp -R ./ffmpeg/libpostproc/ ./mplayer/libpostproc/
# # edit config.mak. change CC to equal gcc instead of cc
# cd mplayer
# ./configure --prefix=/usr/local --cc=gcc --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --datadir=/usr/local/share/mplayer --confdir=/usr/local/etc/mplayer --mandir=/usr/local/share/man --disable-png --disable-jpeg --target=x86_64-Darwin --disable-liblzo --disable-theora --disable-libvorbis --disable-mad --disable-smb --disable-live --disable-x11 --disable-qtx --disable-dvdnav --disable-dvdread --disable-cdparanoia --disable-freetype --disable-fontconfig --disable-fribidi --disable-enca --disable-libcdio --disable-xvid --disable-x264 --disable-speex --disable-faac --disable-libdv --disable-toolame --disable-twolame --disable-xmms --disable-musepack --disable-sdl --disable-aa --disable-caca --disable-x11 --disable-gl --disable-arts --disable-esd --disable-lirc --disable-mng --disable-libdirac-lavc --disable-libschroedinger-lavc --disable-liba52 --disable-gif --disable-dvdnav --disable-dvdread
# make
# sudo make install
# cd ..
# if [ ! -d sox ]
# TODO
# then
# git clone git://sox.git.sourceforge.net/gitroot/sox/sox
# fi
# cd sox
# autoreconf -fiv
# ./configure --prefix=/usr/local --disable-dependency-tracking --target=x86_64-apple-darwin10.7.0 --host=x86_64-apple-darwin10.7.0 --build=x86_64-apple-darwin10.7.0 CFLAGS="-arch i386 -arch x86_64"
# make
# sudo make install
# cd ..
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment