Skip to content

Instantly share code, notes, and snippets.

@mlshvdv
Created April 25, 2019 13:15
Show Gist options
  • Select an option

  • Save mlshvdv/27dc8c9a0e23e0787953a8649b5b7eec to your computer and use it in GitHub Desktop.

Select an option

Save mlshvdv/27dc8c9a0e23e0787953a8649b5b7eec to your computer and use it in GitHub Desktop.
Build SoX binary on Ubuntu/Debian script
#!/bin/bash
sudo apt install build-essential cmake g++
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev libgcrypt20-dev libargon2-0-dev libqrencode-dev zlib1g-dev
sudo apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev libykpers-1-dev libsodium-dev libcurl4-openssl-dev libogg-dev
mkdir src && cd src
# now grab sox and its dependencies
mkdir -p deps
mkdir -p deps/unpacked
mkdir -p deps/built
mkdir -p deps/built/libmad
mkdir -p deps/built/sox
mkdir -p deps/built/lame
mkdir -p deps/built/libvorbis
mkdir -p deps/built/flac
wget -O deps/sox-14.4.2.tar.bz2 "http://downloads.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsox%2Ffiles%2Fsox%2F14.4.2%2F&ts=1416316415&use_mirror=heanet"
wget -O deps/libmad-0.15.1b.tar.gz "http://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmad%2Ffiles%2Flibmad%2F0.15.1b%2F&ts=1416316482&use_mirror=heanet"
wget -O deps/lame-3.99.5.tar.gz "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1416316457&use_mirror=kent"
wget -O deps/libogg-1.3.3.tar.gz "http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz"
wget -O deps/libvorbis-1.3.5.tar.xz "http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz"
wget -O deps/flac-1.3.2.tar.xz "https://superb-dca2.dl.sourceforge.net/project/flac/flac-src/flac-1.3.2.tar.xz"
# unpack the dependencie
pushd deps/unpacked
tar xvfp ../sox-14.4.2.tar.bz2
tar xvfp ../libmad-0.15.1b.tar.gz
tar xvfp ../lame-3.99.5.tar.gz
tar xvfp ../libogg-1.3.3.tar.gz
tar xvfp ../libvorbis-1.3.5.tar.xz
tar xvfp ../flac-1.3.2.tar.xz
popd
# build libmad, statically
pushd deps/unpacked/libmad-0.15.1b
./configure --disable-shared --enable-static --prefix=$(realpath ../../built/libmad)
# Patch makefile to remove -fforce-mem
sed s/-fforce-mem//g < Makefile > Makefile.patched
cp Makefile.patched Makefile
make
make install
popd
# build lame, statically
pushd deps/unpacked/lame-3.99.5
./configure --disable-shared --enable-static --prefix=$(realpath ../../built/lame)
make
make install
popd
# build libogg, statically
pushd deps/unpacked/libogg-1.3.3
./configure --disable-shared --enable-static --prefix=$(realpath ../../built/libogg)
make
make install
popd
# build libvorbis, statically
pushd deps/unpacked/libvorbis-1.3.5
./configure --disable-shared --enable-static --prefix=$(realpath ../../built/libvorbis)
make
make install
popd
# build flac, statically
pushd deps/unpacked/flac-1.3.2
./configure --disable-shared --enable-static --prefix=$(realpath ../../built/flac)
make
make install
popd
# build sox, statically
pushd deps/unpacked/sox-14.4.2
./configure --disable-shared --enable-static --prefix=$(realpath ../../built/sox) \
LDFLAGS="-L$(realpath ../../built/libmad/lib) -L$(realpath ../../built/lame/lib) -L$(realpath ../../built/libogg/lib) -L$(realpath ../../built/libvorbis/lib) -L$(realpath ../../built/flac/lib)" \
CPPFLAGS="-I$(realpath ../../built/libmad/include) -I$(realpath ../../built/lame/include) -I$(realpath ../../built/libogg/include) -I$(realpath ../../built/libvorbis/include) -I$(realpath ../../built/flac/include)" \
--with-mad --with-lame --with-libvorbis --with-flac --with-libogg --with-oggvorbis --without-oss --without-sndfile --without-gomp
make -s
make install
popd
cp deps/built/sox/bin/sox .
rm -rf deps/built
rm -rf deps/unpacked
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment