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

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