123 lines · 3.9 KB · Text
RawDownload
#!/bin/sh## This script will automates the steps used to producing a static win32# package of SoX.## It requires cygwin with gcc and zip packages installed.  Also, it# requires to already have several external libraries already installed# under /usr/local.## And last, it will optional package a wget compiled with VC++ instead# of cygwin version (which has no DLL's to distribute) if found# in wget-1.11.4 directory.  If not found, it will distribute the# cygwin version and various DLL's it requires.## Various notes:## Script makes use of "-static" option to tell compiler to prefer static# external libraries so that we do not need to distribute DLL's.## Libtool will get confused with this flag for external libraries# that have a libtool lib*.la file and support shared libraries as# well as static libraries (but usually only if that library# further depends on other external libraries with lib*.la files).# Libtool may ignore -static option or it may link first external# library as static but other dependent libraries as shared (usually# because it follows $dependency_libs and that ignores -static option).## Work arounds include to only install static libraries, delete the lib*.la# file, or edit the lib*.la file and set dlnames and library_names variables# to empty string ("").## The following command lines were used to generate the static external# libraries SoX ships with.## libpng.la will have libtool issue because depends on libz# which has a libz.la file.  Must edit libpng.la to# prevent needing to distribute cygzlib1.dll.# cd libpng-1.2.41# ./configure --disable-shared --enable-static;make;sudo make install## cd ../wavpack-4.60.1# ./configure --disable-shared --enable-static;make;sudo make install## cd ../flac-1.2.1# ./configure --disable-shared --enable-static;make;sudo make install## cd ../libogg-1.1.3# ./configure --disable-shared --enable-static;make;sudo make install## cd ../libvorbis-1.2.0# ./configure --disable-shared --enable-static;make;sudo make install## cd ../libsndfile-1.0.20# ./configure --disable-shared --enable-static;make;sudo make install## cd ../libid3tag-0.15.1b# ./configure --disable-shared --enable-static;make;sudo make install## To get MP3 header files used to enable MP3 support (no libraries used):## cd ../libmad# ./configure --enable-shared --disable-static;make;sudo make install [ ! -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.# 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 \    --disable-shared \    --with-libltdl \    --enable-dl-lame --enable-dl-mad --enable-dl-amrnb --enable-dl-amrwb \    CC=gcc CPP=cpp\    CPPFLAGS=-I/usr/local/include \    LDFLAGS="-L/usr/local/lib" \    SNDFILE_LIBS="-lsndfile -lFLAC -lvorbisenc -lvorbisfile -lvorbis -logg" \    $*fi make -s all pdf txt || exit 1 dir=sox-`grep Version: sox.pc | cut -d ' ' -f 2`rm -rf $dir $dir-cygwin32.zipmkdir -p $dir for f in ChangeLog LICENSE.GPL README README.win32; do  cp -p $f $dir/$f.txt  unix2dos $dir/$f.txtdone binaries=src/sox [ ! -r "../wget-1.11.4/wget.exe" -a -r /usr/bin/wget ] && binaries+=" /usr/bin/wget" binaries=$(for f in `cygcheck $binaries|dos2unix`    do cygpath -u $f; done|sort|uniq|grep -v ^/cygdrive/) cp -p \  $binaries \  sox.pdf \  soxformat.pdf \  soxi.pdf \  scripts/batch-example.bat \  $dir 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 $direlse  if test -r /usr/bin/wget -a -r /etc/wgetrc; then    cp -p /etc/wgetrc $dir/wget.ini    chmod +r $dir/wget.ini  fifi zip -r $dir-cygwin32.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