-
Notifications
You must be signed in to change notification settings - Fork 48
/
cygbuild
executable file
·123 lines (111 loc) · 3.94 KB
/
cygbuild
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/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.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/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 $dir
else
if test -r /usr/bin/wget -a -r /etc/wgetrc; then
cp -p /etc/wgetrc $dir/wget.ini
chmod +r $dir/wget.ini
fi
fi
zip -r $dir-cygwin32.zip $dir
rm -rf $dir