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

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