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

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