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

Annotation of /branches/release-1_0-branch/xvidcore/build/generic/configure.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1445 - (view) (download)

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

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