Commit | Line | Data |
---|---|---|
de6d9b64 FB |
1 | #!/bin/sh |
2 | ||
3d204385 NK |
3 | TMPC="ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" |
4 | TMPO="ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" | |
5 | TMPS="ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" | |
045ed63f | 6 | TMPH="ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" |
3d204385 | 7 | |
57514323 | 8 | if test ! -z "$TMPDIR" ; then |
3d204385 NK |
9 | TMPC="${TMPDIR}/${TMPC}" |
10 | TMPCPP="${TMPDIR}/${TMPCPP}" | |
11 | TMPO="${TMPDIR}/${TMPO}" | |
12 | TMPS="${TMPDIR}/${TMPS}" | |
045ed63f | 13 | TMPH="${TMPDIR}/${TMPH}" |
57514323 | 14 | elif test ! -z "$TEMPDIR" ; then |
3d204385 NK |
15 | TMPC="${TEMPDIR}/${TMPC}" |
16 | TMPCPP="${TEMPDIR}/${TMPCPP}" | |
17 | TMPO="${TEMPDIR}/${TMPO}" | |
18 | TMPS="${TEMPDIR}/${TMPS}" | |
045ed63f | 19 | TMPH="${TEMPDIR}/${TMPH}" |
3d204385 NK |
20 | else |
21 | TMPC="/tmp/${TMPC}" | |
22 | TMPCPP="/tmp/${TMPCPP}" | |
23 | TMPO="/tmp/${TMPO}" | |
24 | TMPS="/tmp/${TMPS}" | |
045ed63f | 25 | TMPH="/tmp/${TMPH}" |
3d204385 NK |
26 | fi |
27 | ||
de6d9b64 FB |
28 | # default parameters |
29 | prefix="/usr/local" | |
30 | cc="gcc" | |
31 | ar="ar" | |
32 | cpu=`uname -m` | |
33 | case "$cpu" in | |
ef0bc4c9 | 34 | i386|i486|i586|i686|i86pc|BePC) |
de6d9b64 FB |
35 | cpu="x86" |
36 | mmx="yes" | |
37 | ;; | |
6ed7422a FB |
38 | armv4l) |
39 | cpu="armv4l" | |
40 | mmx="no" | |
41 | ;; | |
91d1f1a4 NK |
42 | alpha) |
43 | cpu="alpha" | |
44 | mmx="no" | |
45 | ;; | |
de6d9b64 FB |
46 | *) |
47 | mmx="no" | |
48 | ;; | |
49 | esac | |
50 | gprof="no" | |
6ed7422a | 51 | grab="yes" |
a6741398 | 52 | mp3lame="no" |
57514323 | 53 | a52bin="no" |
daf8e955 | 54 | win32="no" |
ef0bc4c9 | 55 | extralibs="-lm" |
c02dbee1 | 56 | simpleidct="yes" |
ef0bc4c9 FR |
57 | |
58 | # OS specific | |
59 | targetos=`uname -s` | |
60 | case $targetos in | |
61 | BeOS) | |
62 | prefix="/boot/home/config" | |
63 | # helps building libavcodec | |
64 | grab="no" | |
65 | CFLAGS="-O2 -DPIC" | |
66 | # no need for libm, but the inet stuff | |
67 | # Check for BONE | |
68 | if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then | |
69 | extralibs="-lbind -lsocket" | |
70 | else | |
71 | echo "Not sure building for net_server will succeed... good luck." | |
72 | extralibs="-lsocket" | |
73 | fi ;; | |
74 | *) ;; | |
75 | esac | |
de6d9b64 | 76 | |
57514323 | 77 | if test "$1" = "-h" -o "$1" = "--help" ; then |
de6d9b64 FB |
78 | cat << EOF |
79 | ||
80 | Usage: configure [options] | |
81 | Options: [defaults in brackets after descriptions] | |
82 | ||
83 | --help print this message | |
84 | EOF | |
85 | echo " --prefix=PREFIX install in PREFIX [$prefix]" | |
86 | echo " --cc=CC use C compiler CC [$cc]" | |
87 | echo " --cpu=CPU force cpu to CPU [$cpu]" | |
88 | echo " --disable-mmx disable mmx usage" | |
89 | echo " --enable-gprof enable profiling with gprof [$gprof]" | |
6ed7422a | 90 | echo " --disable-grab disable audio/video grabbing code" |
c02dbee1 | 91 | echo " --disable-simple_idct disable simple IDCT routines [default=no]" |
57514323 | 92 | echo " --enable-mp3lame enable mp3 encoding via libmp3lame [default=no]" |
daf8e955 | 93 | echo " --enable-win32 enable win32 cross compile" |
57514323 | 94 | echo " --enable-a52bin open liba52.so.0 at runtime [default=no]" |
0319c531 | 95 | echo " --enable-shared build shared libraries [default=no]" |
de6d9b64 FB |
96 | exit 1 |
97 | fi | |
98 | ||
0319c531 | 99 | lshared=no |
de6d9b64 FB |
100 | for opt do |
101 | case "$opt" in | |
102 | --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` | |
103 | ;; | |
104 | --cc=*) cc=`echo $opt | cut -d '=' -f 2` | |
105 | ;; | |
106 | --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` | |
107 | ;; | |
108 | --disable-mmx) mmx="no" | |
109 | ;; | |
110 | --enable-gprof) gprof="yes" | |
111 | ;; | |
6ed7422a FB |
112 | --disable-grab) grab="no" |
113 | ;; | |
57514323 ZK |
114 | --enable-a52bin) a52bin="yes" ; extralibs="-ldl $extralibs" |
115 | ;; | |
a6741398 J |
116 | --enable-mp3lame) mp3lame="yes" |
117 | ;; | |
c02dbee1 | 118 | --disable-simple_idct) simpleidct="no" |
045ed63f | 119 | ;; |
daf8e955 FB |
120 | --enable-win32) win32="yes" |
121 | ;; | |
0319c531 NK |
122 | --enable-shared=*) lshared=`echo $opt | cut -d '=' -f 2` |
123 | ;; | |
de6d9b64 FB |
124 | esac |
125 | done | |
126 | ||
daf8e955 FB |
127 | # Checking for CFLAGS |
128 | if test -z "$CFLAGS"; then | |
129 | CFLAGS="-O2" | |
130 | fi | |
131 | ||
57514323 | 132 | if test "$win32" = "yes" ; then |
daf8e955 FB |
133 | cross_prefix="i386-mingw32msvc-" |
134 | cc="${cross_prefix}gcc" | |
135 | ar="${cross_prefix}ar" | |
136 | grab="no" | |
137 | fi | |
138 | ||
3d204385 NK |
139 | # --- |
140 | # check availability of some header files | |
141 | ||
142 | cat > $TMPC << EOF | |
143 | #include <malloc.h> | |
144 | int main( void ) { return 0; } | |
145 | EOF | |
146 | ||
147 | _memalign=no | |
148 | _malloc_h=no | |
149 | if $cc -o $TMPO $TMPC 2> /dev/null ; then | |
150 | _malloc_h=yes | |
151 | _memalign=yes | |
152 | # check for memalign - atmos | |
153 | cat > $TMPC << EOF | |
154 | #include <malloc.h> | |
155 | int main ( void ) { | |
156 | char *string = NULL; | |
157 | string = memalign(64, sizeof(char)); | |
158 | return 0; | |
159 | } | |
160 | EOF | |
161 | $cc -o $TMPO $TMPC 2> /dev/null || _memalign=no | |
162 | fi | |
163 | ||
de6d9b64 FB |
164 | echo "Install prefix $prefix" |
165 | echo "C compiler $cc" | |
166 | echo "CPU $cpu" | |
167 | echo "MMX enabled $mmx" | |
168 | echo "gprof enabled $gprof" | |
6ed7422a | 169 | echo "grab enabled $grab" |
a6741398 | 170 | echo "mp3lame enabled $mp3lame" |
57514323 | 171 | echo "a52 dlopened $a52bin" |
de6d9b64 | 172 | |
980fc7b8 | 173 | echo "Creating config.mak and config.h" |
de6d9b64 | 174 | |
980fc7b8 | 175 | echo "# Automatically generated by configure - do not modify" > config.mak |
045ed63f | 176 | echo "/* Automatically generated by configure - do not modify */" > $TMPH |
de6d9b64 | 177 | |
980fc7b8 | 178 | echo "prefix=$prefix" >> config.mak |
2cc8ae96 | 179 | echo "MAKE=make" >> config.mak |
980fc7b8 FB |
180 | echo "CC=$cc" >> config.mak |
181 | echo "AR=$ar" >> config.mak | |
a9b3f630 | 182 | echo "OPTFLAGS=$CFLAGS" >> config.mak |
57514323 | 183 | if test "$cpu" = "x86" ; then |
980fc7b8 | 184 | echo "TARGET_ARCH_X86=yes" >> config.mak |
045ed63f | 185 | echo "#define ARCH_X86 1" >> $TMPH |
de6d9b64 | 186 | fi |
57514323 | 187 | if test "$cpu" = "armv4l" ; then |
6ed7422a | 188 | echo "TARGET_ARCH_ARMV4L=yes" >> config.mak |
045ed63f | 189 | echo "#define ARCH_ARMV4L 1" >> $TMPH |
6ed7422a | 190 | fi |
57514323 | 191 | if test "$cpu" = "alpha" ; then |
91d1f1a4 | 192 | echo "TARGET_ARCH_ALPHA=yes" >> config.mak |
045ed63f | 193 | echo "#define ARCH_ALPHA 1" >> $TMPH |
91d1f1a4 | 194 | fi |
57514323 | 195 | if test "$mmx" = "yes" ; then |
980fc7b8 | 196 | echo "TARGET_MMX=yes" >> config.mak |
045ed63f | 197 | echo "#define HAVE_MMX 1" >> $TMPH |
de6d9b64 | 198 | fi |
57514323 | 199 | if test "$gprof" = "yes" ; then |
980fc7b8 | 200 | echo "TARGET_GPROF=yes" >> config.mak |
045ed63f | 201 | echo "#define HAVE_GPROF 1" >> $TMPH |
de6d9b64 | 202 | fi |
57514323 | 203 | if test "$lshared" = "yes" ; then |
0319c531 NK |
204 | echo "BUILD_SHARED=yes" >> config.mak |
205 | else | |
206 | echo "BUILD_SHARED=no" >> config.mak | |
207 | fi | |
ef0bc4c9 | 208 | echo "EXTRALIBS=$extralibs" >> config.mak |
0319c531 NK |
209 | echo -n "VERSION=" >>config.mak |
210 | head VERSION >>config.mak | |
211 | echo "" >>config.mak | |
d771bcae | 212 | # if you do not want to use encoders, disable that. |
045ed63f | 213 | echo "#define CONFIG_ENCODERS 1" >> $TMPH |
d771bcae FB |
214 | echo "CONFIG_ENCODERS=yes" >> config.mak |
215 | ||
216 | # if you do not want to use decoders, disable that. | |
045ed63f | 217 | echo "#define CONFIG_DECODERS 1" >> $TMPH |
d771bcae FB |
218 | echo "CONFIG_DECODERS=yes" >> config.mak |
219 | ||
d2b7bcd2 | 220 | # special AC3 stuff in case you already have it |
d771bcae | 221 | # without libavcodec. |
045ed63f | 222 | echo "#define CONFIG_AC3 1" >> $TMPH |
d771bcae FB |
223 | echo "CONFIG_AC3=yes" >> config.mak |
224 | ||
57514323 ZK |
225 | if test "$a52bin" = "yes" ; then |
226 | echo "#define CONFIG_A52BIN 1" >> $TMPH | |
227 | echo "CONFIG_A52BIN=yes" >> config.mak | |
228 | else | |
229 | echo "CONFIG_A52BIN=no" >> config.mak | |
230 | fi | |
231 | ||
232 | if test "$grab" = "yes" ; then | |
045ed63f | 233 | echo "#define CONFIG_GRAB 1" >> $TMPH |
6ed7422a FB |
234 | echo "CONFIG_GRAB=yes" >> config.mak |
235 | fi | |
daf8e955 | 236 | |
57514323 | 237 | if test "$mp3lame" = "yes" ; then |
045ed63f | 238 | echo "#define CONFIG_MP3LAME 1" >> $TMPH |
a6741398 J |
239 | echo "CONFIG_MP3LAME=yes" >> config.mak |
240 | fi | |
241 | ||
57514323 | 242 | if test "$win32" = "yes" ; then |
045ed63f | 243 | echo "#define CONFIG_WIN32 1" >> $TMPH |
daf8e955 FB |
244 | echo "CONFIG_WIN32=yes" >> config.mak |
245 | fi | |
3d204385 | 246 | |
57514323 | 247 | if test "$_malloc_h" = "yes" ; then |
045ed63f | 248 | echo "#define HAVE_MALLOC_H 1" >> $TMPH |
3d204385 | 249 | else |
045ed63f | 250 | echo "#undef HAVE_MALLOC_H" >> $TMPH |
3d204385 NK |
251 | fi |
252 | ||
57514323 | 253 | if test "$_memalign" = "yes" ; then |
045ed63f ZK |
254 | echo "#define HAVE_MEMALIGN 1" >> $TMPH |
255 | else | |
256 | echo "#undef HAVE_MEMALIGN" >> $TMPH | |
257 | fi | |
258 | ||
57514323 | 259 | if test "$simpleidct" = "yes" ; then |
045ed63f ZK |
260 | echo "#define SIMPLE_IDCT 1" >> $TMPH |
261 | fi | |
262 | ||
a7c02e25 | 263 | diff $TMPH config.h >/dev/null 2>&1 |
045ed63f ZK |
264 | if test $? -ne 0 ; then |
265 | mv -f $TMPH config.h | |
3d204385 | 266 | else |
045ed63f | 267 | echo "config.h is unchanged" |
3d204385 NK |
268 | fi |
269 | ||
045ed63f | 270 | rm -f $TMPO $TMPC $TMPS $TMPH |