[svn] / branches / dev-api-4 / xvidcore / build / generic / configure.in Repository:
ViewVC logotype

Annotation of /branches/dev-api-4/xvidcore/build/generic/configure.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1024 - (view) (download)

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

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