[svn] / trunk / xvidcore / build / generic / configure.in Repository:
ViewVC logotype

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

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