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