#!/bin/sh## This script will automates the steps used to producing a win32 package# of SoX.## It is used on a Fedora box with mingw32 cross compiler and wine to# test.## It will optionally package up VC++ version of wget if found in# ../wget-1.11.4.## Various notes:## The following command lines were used to generate the external libraries# SoX ships with.## Needed for libltdl support.# FIXME: Install# cd libtool-2.4.2# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## yum install ming32-libpng mingw32-libpng-static# or# cd libpng-1.6.15# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## yum install mingw32-wavpack# or# cd ../wavpack-4.70.0# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## yum install mingw32-flac# or# Need to disable optional ogg support to prevent duplicate symbols during# link.# Edited Makefile and removed "examples" from SUBDIRS.# cd ../flac-1.3.1# mingw32-configure --disable-ogg --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## yum install mingw32-libogg# or# cd ../libogg-1.3.2# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## yum install mingw32-libvorbis# or# cd ../libvorbis-1.3.4# mingw32-configure --disable-shared --enable-static;mingw-32-make;sudo mingw32-make install## FIXME: Install libsndfile# Compile libsndfile after FLAC and ogg vorbis so that it will include# support for that.# MINGW work around: Can either add -lwsock32 to end of *_LDADD for any# failed program links or modify top leve Makefile and remove# "programs", "examples", "regtests", and "tests" from SUBDIRS.# cd ../libsndfile-1.0.25# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## yum install mingw32-libid3tag# or# libid3tag does not like to be compiled shared on mingw32 cross compiler.# cd ../libid3tag-0.15.1b# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install## To get MP3 header files used to enable MP3 support (no libraries used):## yum install mingw32-libmad# or# MINGW work around: Edit Makefile and remove -fforce-mem from CFLAGS# cd ../libmad-0.15.1b# mingw32-configure --enable-shared --disable-static;mingw32-make;sudo mingw32-make install[ ! -x configure ] && autoreconf -iSYS_ROOT="/usr/i686-w64-mingw32/sys-root"CONFIGURE=mingw32-configureDOC_TARGETS="pdf"DOCS="sox.pdf soxformat.pdf soxi.pdf"TMP_SNDFILE_LIBS="-lsndfile -lFLAC -lvorbisenc -lvorbisfile -lvorbis -logg"STRIP=i686-pc-mingw32-strip# 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.# static versions of libsndfile do not advertise when they have# FLAC or ogg vorbis support. Need to force the link ourselves.if [ $# -ne 0 -o ! -r Makefile ]; then $CONFIGURE \ --with-libltdl \ --enable-dl-lame --enable-dl-mad --enable-dl-amrnb --enable-dl-amrwb \ LDFLAGS="-L/usr/local/lib" CPPFLAGS=-I/usr/local/include \ SNDFILE_LIBS="${TMP_SNDFILE_LIBS}" \ $*fi# Reduce total size of sox.exe by over half.make -s all txt $DOC_TARGETS || exit 1${STRIP} src/.libs/sox.exedir=sox-`grep Version: sox.pc | cut -d ' ' -f 2`rm -rf $dir $dir-win32.zipmkdir -p $dirfor f in ChangeLog LICENSE.GPL README README.win32; do cp -p $f $dir/$f.txt unix2dos $dir/$f.txtdonebinaries=src/.libs/sox.exedlls=`/usr/i686-w64-mingw32/bin/objdump -p src/.libs/libsox-3.dll | grep "DLL Name:" | sed "s|DLL Name: |${SYS_ROOT}/mingw/bin/|" | grep -v KERNEL32.dll | grep -v msvcrt.dll | grep -v USER32.dll | grep -v WINMM.DLL`dlls="$dlls src/.libs/libsox-3.dll"dlls="$dlls ${SYS_ROOT}/mingw/bin/libwinpthread-1.dll"cp -p \ $binaries \ $dlls \ $DOCS \ scripts/batch-example.bat \ $dir# Special case fixup for nsiswrapper. Rename libFLAC-8.dll to libflac-8.dll.mv $dir/libFLAC-8.dll $dir/libflac-8.dllunix2dos $dir/batch-example.batif test -r "../wget-1.11.4/wget.exe"; then cp ../wget-1.11.4/wget.exe $dir cp ../wget-1.11.4/wget.ini $dirfizip -r $dir-win32.zip $dir# Optionally, create windows installer if nsiswrapper exists.if test -r "/usr/bin/nsiswrapper"; then cd ${dir} export PATH=$PATH:. nsiswrapper --run --name $dir --outfile ../${dir}-win32.exe *.exe *.dll *.ini *.txt *.pdf *.bat cd ..firm -rf $dir
#!/bin/sh
#
# This script will automates the steps used to producing a win32 package
# of SoX.
#
# It is used on a Fedora box with mingw32 cross compiler and wine to
# test.
#
# It will optionally package up VC++ version of wget if found in
# ../wget-1.11.4.
#
# Various notes:
#
# The following command lines were used to generate the external libraries
# SoX ships with.
#
# Needed for libltdl support.
# FIXME: Install
# cd libtool-2.4.2
# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# yum install ming32-libpng mingw32-libpng-static
# or
# cd libpng-1.6.15
# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# yum install mingw32-wavpack
# or
# cd ../wavpack-4.70.0
# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# yum install mingw32-flac
# or
# Need to disable optional ogg support to prevent duplicate symbols during
# link.
# Edited Makefile and removed "examples" from SUBDIRS.
# cd ../flac-1.3.1
# mingw32-configure --disable-ogg --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# yum install mingw32-libogg
# or
# cd ../libogg-1.3.2
# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# yum install mingw32-libvorbis
# or
# cd ../libvorbis-1.3.4
# mingw32-configure --disable-shared --enable-static;mingw-32-make;sudo mingw32-make install
#
# FIXME: Install libsndfile
# Compile libsndfile after FLAC and ogg vorbis so that it will include
# support for that.
# MINGW work around: Can either add -lwsock32 to end of *_LDADD for any
# failed program links or modify top leve Makefile and remove
# "programs", "examples", "regtests", and "tests" from SUBDIRS.
# cd ../libsndfile-1.0.25
# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# yum install mingw32-libid3tag
# or
# libid3tag does not like to be compiled shared on mingw32 cross compiler.
# cd ../libid3tag-0.15.1b
# mingw32-configure --disable-shared --enable-static;mingw32-make;sudo mingw32-make install
#
# To get MP3 header files used to enable MP3 support (no libraries used):
#
# yum install mingw32-libmad
# or
# MINGW work around: Edit Makefile and remove -fforce-mem from CFLAGS
# cd ../libmad-0.15.1b
# mingw32-configure --enable-shared --disable-static;mingw32-make;sudo mingw32-make install
[ ! -x configure ] && autoreconf -i
SYS_ROOT="/usr/i686-w64-mingw32/sys-root"
CONFIGURE=mingw32-configure
DOC_TARGETS="pdf"
DOCS="sox.pdf soxformat.pdf soxi.pdf"
TMP_SNDFILE_LIBS="-lsndfile -lFLAC -lvorbisenc -lvorbisfile -lvorbis -logg"
STRIP=i686-pc-mingw32-strip
# 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.
# static versions of libsndfile do not advertise when they have
# FLAC or ogg vorbis support. Need to force the link ourselves.
if [ $# -ne 0 -o ! -r Makefile ]; then
$CONFIGURE \
--with-libltdl \
--enable-dl-lame --enable-dl-mad --enable-dl-amrnb --enable-dl-amrwb \
LDFLAGS="-L/usr/local/lib" CPPFLAGS=-I/usr/local/include \
SNDFILE_LIBS="${TMP_SNDFILE_LIBS}" \
$*
fi
# Reduce total size of sox.exe by over half.
make -s all txt $DOC_TARGETS || exit 1
${STRIP} src/.libs/sox.exe
dir=sox-`grep Version: sox.pc | cut -d ' ' -f 2`
rm -rf $dir $dir-win32.zip
mkdir -p $dir
for f in ChangeLog LICENSE.GPL README README.win32; do
cp -p $f $dir/$f.txt
unix2dos $dir/$f.txt
done
binaries=src/.libs/sox.exe
dlls=`/usr/i686-w64-mingw32/bin/objdump -p src/.libs/libsox-3.dll | grep "DLL Name:" | sed "s|DLL Name: |${SYS_ROOT}/mingw/bin/|" | grep -v KERNEL32.dll | grep -v msvcrt.dll | grep -v USER32.dll | grep -v WINMM.DLL`
dlls="$dlls src/.libs/libsox-3.dll"
dlls="$dlls ${SYS_ROOT}/mingw/bin/libwinpthread-1.dll"
cp -p \
$binaries \
$dlls \
$DOCS \
scripts/batch-example.bat \
$dir
# Special case fixup for nsiswrapper. Rename libFLAC-8.dll to libflac-8.dll.
mv $dir/libFLAC-8.dll $dir/libflac-8.dll
unix2dos $dir/batch-example.bat
if test -r "../wget-1.11.4/wget.exe"; then
cp ../wget-1.11.4/wget.exe $dir
cp ../wget-1.11.4/wget.ini $dir
fi
zip -r $dir-win32.zip $dir
# Optionally, create windows installer if nsiswrapper exists.
if test -r "/usr/bin/nsiswrapper"; then
cd ${dir}
export PATH=$PATH:.
nsiswrapper --run --name $dir --outfile ../${dir}-win32.exe *.exe *.dll *.ini *.txt *.pdf *.bat
cd ..
fi
rm -rf $dir