[svn] / tags / branch-release-1-0 / xvidcore / build / generic / configure.in Repository:
ViewVC logotype

Annotation of /tags/branch-release-1-0/xvidcore/build/generic/configure.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 851 - (view) (download)
Original Path: trunk/xvidcore/build/generic/configure.in

1 : edgomez 824 dnl ==========================================================================
2 :     dnl
3 :     dnl Autoconf script for XviD
4 :     dnl
5 :     dnl Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr>
6 :     dnl
7 :     dnl ==========================================================================
8 :    
9 : edgomez 851 AC_INIT([XviD], [1.0.0 cvs-snapshot], [xvid-devel@xvid.org])
10 : edgomez 824 AC_CONFIG_SRCDIR(configure.in)
11 :    
12 :     dnl NASM version requirement
13 :     minimum_nasm_patch_version=34
14 :     nasm_prog="nasm"
15 :    
16 :     dnl Default CFLAGS -- Big impact on overall speed
17 :     our_cflags_defaults="-Wall"
18 :     our_cflags_defaults="$our_cflags_defaults -O2"
19 :     our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"
20 :     our_cflags_defaults="$our_cflags_defaults -ffast-math"
21 :     our_cflags_defaults="$our_cflags_defaults -funroll-loops"
22 :     our_cflags_defaults="$our_cflags_defaults -fschedule-insns"
23 :     our_cflags_defaults="$our_cflags_defaults -fschedule-insns2"
24 :    
25 :     dnl ==========================================================================
26 :     dnl Features - configure options
27 :     dnl ==========================================================================
28 :    
29 :     FEATURES=""
30 :     DIVX4COMPAT_SOURCES=""
31 : edgomez 830 DIVX4_ENCORE=""
32 :     DIVX4_DECORE=""
33 : edgomez 824
34 :     dnl BIGLUT aka old VLC code
35 :     AC_ARG_ENABLE(oldvlc,
36 :     AC_HELP_STRING([--enable-oldvlc],
37 :     [Enable old VLC code (Needs much more memory ~10MB)]),
38 :     [if test "$enable_oldvlc" = "yes" ; then
39 :     FEATURES="$FEATURES -DBIGLUT"
40 :     fi])
41 :    
42 :     dnl Internal Debug
43 :     AC_ARG_ENABLE(idebug,
44 :     AC_HELP_STRING([--enable-idebug],
45 :     [Enable internal debug function]),
46 :     [if test "$enable_idebug" = "yes" ; then
47 :     FEATURES="$FEATURES -D_DEBUG"
48 :     fi])
49 :    
50 :     dnl Internal Profile
51 :     AC_ARG_ENABLE(iprofile,
52 :     AC_HELP_STRING([--enable-iprofile],
53 :     [Enable internal profiling]),
54 :     [if test "$enable_iprofile" = "yes" ; then
55 :     FEATURES="$FEATURES -D_PROFILING_"
56 :     fi])
57 :    
58 :     dnl Assembly code
59 :     AC_ARG_ENABLE(assembly,
60 :     AC_HELP_STRING([--disable-assembly],
61 :     [Disable assembly code]),
62 :     [if test "$enable_assembly" = "no" ; then
63 :     assembly="no"
64 :     else
65 :     if test "$enable_assembly" = "yes" ; then
66 :     assembly="yes"
67 :     fi
68 :     fi],
69 :     [assembly="yes"])
70 :    
71 :     dnl Internal Debug
72 :     AC_ARG_ENABLE(divx4compat,
73 :     AC_HELP_STRING([--enable-divx4compat],
74 :     [Enable DivX4 compatibility API]),
75 :     [if test "$enable_divx4compat" = "yes" ; then
76 :     DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT"
77 : edgomez 830 DIVX4_ENCORE="encore;"
78 :     DIVX4_DECORE="decore;"
79 : edgomez 824 fi])
80 :    
81 :    
82 :     dnl ==========================================================================
83 :     dnl Default install prefix and checks build type
84 :     dnl ==========================================================================
85 :    
86 :     AC_PREFIX_DEFAULT("/usr/local")
87 :     AC_CANONICAL_BUILD
88 :     AC_CANONICAL_HOST
89 :     AC_CANONICAL_TARGET
90 :    
91 :     dnl ==========================================================================
92 :     dnl Check for the C compiler (could be passed on command line)
93 :     dnl ==========================================================================
94 :    
95 :     dnl
96 :     dnl First we test if CFLAGS have been passed on command line
97 :     dnl I do that because autoconf defaults (-g -O2) suck and they would kill
98 :     dnl performance. To prevent that we define a good defult CFLAGS at the end
99 :     dnl of the script if and only if CFLAGS has not been passed on the command
100 :     dnl line
101 :     dnl
102 :     AC_MSG_CHECKING(whether to use default CFLAGS)
103 :     if test x"$CFLAGS" = x"" ; then
104 :     force_default_cc_options="yes"
105 :     AC_MSG_RESULT([yes])
106 :     else
107 :     force_default_cc_options="no"
108 :     AC_MSG_RESULT([no])
109 :     fi
110 :    
111 :     dnl Now we can safely check for the C compiler
112 :     AC_PROG_CC
113 :    
114 :     dnl ==========================================================================
115 :     dnl Check for the install program
116 :     dnl ==========================================================================
117 :    
118 :     AC_PROG_INSTALL
119 :    
120 :     dnl ==========================================================================
121 : edgomez 830 dnl Check for the ranlib program to generate static library index
122 :     dnl ==========================================================================
123 :    
124 :     AC_PROG_RANLIB
125 :    
126 :     dnl ==========================================================================
127 : edgomez 824 dnl
128 :     dnl This part looks for:
129 :     dnl
130 :     dnl ARCHITECTURE : The platform architecture
131 :     dnl - IA32 for mmx, mmx-ext, mmx2, sse assembly
132 :     dnl - IA64
133 :     dnl - PPC for PowerPC assembly routines
134 :     dnl - GENERIC for plain C sources only
135 :     dnl
136 :     dnl BUS: Address bus size (in bits)
137 :     dnl - 32
138 :     dnl - 64
139 :     dnl
140 :     dnl ENDIANNESS: I think you can guess what this thing means :-)
141 :     dnl - LITTLE_ENDIAN
142 :     dnl - BIG_ENDIAN
143 :     dnl
144 :     dnl ==========================================================================
145 :    
146 :     dnl
147 :     dnl Looking what sources have to be compiled according to the CPU type
148 :     dnl
149 :    
150 :     ARCHITECTURE=""
151 :    
152 :     AC_MSG_CHECKING([for whether to use assembly code])
153 :     if test x"$assembly" = x"yes" ; then
154 :     AC_MSG_RESULT([yes])
155 :     AC_MSG_CHECKING([for architecture type])
156 :     case "$target_cpu" in
157 :     i[[3456]]86)
158 :     AC_MSG_RESULT(ia32)
159 :     ARCHITECTURE="IA32"
160 :     ;;
161 :     powerpc)
162 :     AC_MSG_RESULT(PowerPC)
163 : edgomez 827 dnl ATM the ppc port is out of date
164 :     dnl ARCHITECTURE="PPC"
165 :     ARCHITECTURE="GENERIC"
166 : edgomez 824 ;;
167 :     ia64)
168 :     AC_MSG_RESULT(ia64)
169 :     ARCHITECTURE="IA64"
170 :     ;;
171 :     *)
172 :     AC_MSG_RESULT($target_cpu)
173 :     ARCHITECTURE="GENERIC"
174 :     ;;
175 :     esac
176 :     else
177 :     AC_MSG_RESULT([no])
178 :     ARCHITECTURE="GENERIC"
179 :     fi
180 :    
181 :     dnl
182 :     dnl Testing address bus length
183 :     dnl
184 :     BUS=""
185 :    
186 :     AC_CHECK_SIZEOF([int *])
187 :     case "$ac_cv_sizeof_int_p" in
188 :     4)
189 :     BUS="32BIT"
190 :     ;;
191 :     8)
192 :     BUS="64BIT"
193 :     ;;
194 :     *)
195 :     AC_MSG_ERROR([XviD supports only 32/64 bit architectures])
196 :     ;;
197 :     esac
198 :    
199 :     dnl
200 :     dnl Testing endianness
201 :     dnl
202 :     ENDIANNESS=""
203 :    
204 :     AC_C_BIGENDIAN(ENDIANNESS="BIG_ENDIAN", ENDIANNESS="LITTLE_ENDIAN")
205 :    
206 :     dnl ==========================================================================
207 :     dnl
208 :     dnl Check for OS specific variables
209 :     dnl - SHARED_EXTENSION, STATIC_EXTENSION, OBJECT_EXTENSION
210 :     dnl
211 :     dnl ==========================================================================
212 :    
213 :     AC_MSG_CHECKING(for build extensions)
214 :     SHARED_EXTENSION=""
215 :     STATIC_EXTENSION=""
216 :     OBJECT_EXTENSION=""
217 :     case "$target_os" in
218 :     *bsd*|linux*|beos|irix*|solaris*)
219 :     AC_MSG_RESULT([.so .a .o])
220 :     STATIC_EXTENSION="a"
221 :     SHARED_EXTENSION="so"
222 :     OBJECT_EXTENSION="o"
223 :     ;;
224 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)
225 :     AC_MSG_RESULT([.dll .lib .obj])
226 :     STATIC_EXTENSION="lib"
227 :     SHARED_EXTENSION="dll"
228 :     OBJECT_EXTENSION="obj"
229 :     ;;
230 :     darwin*|raphsody*)
231 :     AC_MSG_RESULT([.dynlib .a .o])
232 :     STATIC_EXTENSION="a"
233 :     SHARED_EXTENSION="dylib"
234 :     OBJECT_EXTENSION="o"
235 :     ;;
236 :     *)
237 :     AC_MSG_RESULT([Unknown OS - Using .so .a .o])
238 :     STATIC_EXTENSION="a"
239 :     SHARED_EXTENSION="so"
240 :     OBJECT_EXTENSION="o"
241 :     ;;
242 :     esac
243 :    
244 :     AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
245 : edgomez 830 SPECIFIC_LDFLAGS=""
246 :     SPECIFIC_CFLAGS=""
247 : edgomez 824 case "$target_os" in
248 :     *bsd*|linux*|irix*|solaris*)
249 :     AC_MSG_RESULT([-shared -lc -lm])
250 : edgomez 830 SPECIFIC_LDFLAGS="-shared -lc -lm"
251 :     SPECIFIC_CFLAGS="-fPIC"
252 : edgomez 824 ;;
253 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)
254 :     AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])
255 : edgomez 830 SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
256 :     SPECIFIC_CFLAGS="-mno-cygwin"
257 : edgomez 824 ;;
258 :     darwin*|raphsody*)
259 : edgomez 830 AC_MSG_RESULT([-dynamiclib -flat_namespace])
260 :     SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace"
261 :     SPECIFIC_CFLAGS="-fPIC -fno-common"
262 : edgomez 824 ;;
263 :     beos)
264 :     AC_MSG_RESULT([-nostart])
265 : edgomez 830 SPECIFIC_LDFLAGS="-nostart"
266 :     SPECIFIC_CFLAGS="-fPIC"
267 : edgomez 824 ;;
268 :     *)
269 :     AC_MSG_RESULT([Unknown OS - -shared -lc -lm])
270 : edgomez 830 SPECIFIC_LDFLAGS=""
271 :     SPECIFIC_CFLAGS=""
272 : edgomez 824 ;;
273 :     esac
274 :    
275 :     dnl ==========================================================================
276 :     dnl
277 :     dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
278 :     dnl
279 :     dnl ==========================================================================
280 :    
281 :     AS=""
282 :     AFLAGS=""
283 :     ASSEMBLY_EXTENSION=""
284 :     GENERIC_SOURCES="SRC_GENERIC"
285 :     ASSEMBLY_SOURCES=""
286 :    
287 :     dnl
288 :     dnl IA32
289 :     dnl
290 :    
291 :     if test "$ARCHITECTURE" = "IA32" ; then
292 :    
293 :     dnl
294 :     dnl Checking nasm existence
295 :     dnl
296 :     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
297 :     if test "$ac_nasm" = "yes" ; then
298 :    
299 :     dnl
300 :     dnl Checking nasm patch version
301 :     dnl
302 :     AC_MSG_CHECKING([for nasm patch version])
303 :     nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
304 :     AC_MSG_RESULT([$nasm_patch])
305 :    
306 :     if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then
307 :     AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])
308 :     ARCHITECTURE="GENERIC"
309 :     else
310 :    
311 :     dnl
312 :     dnl Checking nasm format - win32 or elf
313 :     dnl
314 :     AC_MSG_CHECKING([for nasm object format])
315 :     case "$target_os" in
316 :     *bsd*|linux*|beos|irix*|solaris*)
317 :     AC_MSG_RESULT([elf])
318 :     NASM_FORMAT="elf"
319 :     PREFIX=""
320 :     ;;
321 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)
322 :     AC_MSG_RESULT([win32])
323 :     NASM_FORMAT="win32"
324 :     PREFIX="-DPREFIX"
325 :     ;;
326 :     esac
327 :    
328 :     AS=nasm
329 :     AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"
330 :     ASSEMBLY_EXTENSION="asm"
331 :     ASSEMBLY_SOURCES="SRC_IA32"
332 :     fi
333 :    
334 :     else
335 :     AC_MSG_WARN([nasm not found - Compiling generic sources only])
336 :     ARCHITECTURE="GENERIC"
337 :     fi
338 :    
339 :     fi
340 :    
341 :     dnl
342 :     dnl PPC
343 :     dnl
344 :    
345 :     if test "$ARCHITECTURE" = "PPC" ; then
346 :     AS="\$(CC)"
347 :     AFLAGS="-c"
348 :     ASSEMBLY_EXTENSION="s"
349 :     ASSEMBLY_SOURCES="SRC_PPC"
350 :     AC_MSG_CHECKING([for Altivec support])
351 :     cat > conftest.S << EOF
352 :     .text
353 :     vxor 0,0,0
354 :     EOF
355 :     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then
356 :     AC_MSG_RESULT(yes)
357 : edgomez 830 SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"
358 : edgomez 824 ASSEMBLY_SOURCES="SRC_ALTIVEC"
359 :     else
360 :     AC_MSG_RESULT(no)
361 :     fi
362 :     rm -f conftest.*
363 :     fi
364 :    
365 :     dnl
366 :     dnl IA64
367 :     dnl
368 :    
369 :     if test "$ARCHITECTURE" = "IA64" ; then
370 :     AS="\$(CC)"
371 :     AFLAGS="-c"
372 :     ASSEMBLY_EXTENSION="s"
373 :     ASSEMBLY_SOURCES="SRC_IA64"
374 : edgomez 830
375 :     case `basename $CC` in
376 :     *ecc*)
377 :     DCT_IA64_SOURCES="idct_ia64_ecc.s"
378 :    
379 :     dnl If the compiler is ecc, then i don't know its options
380 :     dnl fallback to "no options"
381 :     if test "$force_default_cc_options" = "yes" ; then
382 :     our_cflags_defaults=""
383 :     fi
384 :     ;;
385 :     *)
386 :     DCT_IA64_SOURCES="idct_ia64_gcc.s"
387 :     ;;
388 :     esac
389 :    
390 : edgomez 824 fi
391 :    
392 :     dnl ==========================================================================
393 :     dnl
394 :     dnl Check for header files
395 :     dnl
396 :     dnl ==========================================================================
397 :    
398 :     AC_CHECK_HEADERS(
399 :     stdio.h \
400 :     signal.h \
401 :     , , AC_MSG_ERROR(Missing header file))
402 :    
403 :     dnl ==========================================================================
404 :     dnl
405 : edgomez 830 dnl Now we can set CFLAGS if needed
406 :     dnl
407 :     dnl ==========================================================================
408 :    
409 :     if test "$force_default_cc_options" = "yes" ; then
410 :     CFLAGS="$our_cflags_defaults"
411 :     fi
412 :    
413 :     dnl ==========================================================================
414 :     dnl
415 : edgomez 824 dnl Substitions
416 :     dnl
417 :     dnl ==========================================================================
418 :    
419 :     AC_SUBST(FEATURES)
420 :     AC_SUBST(ARCHITECTURE)
421 :     AC_SUBST(BUS)
422 :     AC_SUBST(ENDIANNESS)
423 :     AC_SUBST(SHARED_EXTENSION)
424 :     AC_SUBST(STATIC_EXTENSION)
425 :     AC_SUBST(OBJECT_EXTENSION)
426 :     AC_SUBST(NASM_FORMAT)
427 :     AC_SUBST(AS)
428 :     AC_SUBST(AFLAGS)
429 :     AC_SUBST(ASSEMBLY_EXTENSION)
430 :     AC_SUBST(GENERIC_SOURCES)
431 :     AC_SUBST(ASSEMBLY_SOURCES)
432 :     AC_SUBST(CC)
433 :     AC_SUBST(CFLAGS)
434 : edgomez 830 AC_SUBST(SPECIFIC_LDFLAGS)
435 :     AC_SUBST(SPECIFIC_CFLAGS)
436 : edgomez 824 AC_SUBST(DIVX4COMPAT_SOURCES)
437 : edgomez 830 AC_SUBST(DCT_IA64_SOURCES)
438 :     AC_SUBST(DIVX4_ENCORE)
439 :     AC_SUBST(DIVX4_DECORE)
440 :     AC_SUBST(RANLIB)
441 : edgomez 824
442 :     dnl ==========================================================================
443 :     dnl
444 :     dnl Output files
445 :     dnl
446 :     dnl ==========================================================================
447 :    
448 :     AC_CONFIG_FILES(platform.inc)
449 : edgomez 830 AC_CONFIG_FILES(libxvidcore.def)
450 : edgomez 824
451 :     AC_OUTPUT

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4