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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1847 - (view) (download)
Original Path: trunk/xvidcore/build/generic/configure.in

1 : edgomez 824 dnl ==========================================================================
2 :     dnl
3 : Isibaar 1797 dnl Autoconf script for Xvid
4 : edgomez 824 dnl
5 : edgomez 1451 dnl Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>
6 : edgomez 824 dnl
7 :     dnl ==========================================================================
8 :    
9 : edgomez 1451 AC_PREREQ([2.50])
10 :    
11 : Isibaar 1821 AC_INIT([Xvid], [1.3.0], [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 : Isibaar 1845 API_MINOR="3"
17 : edgomez 900
18 : Isibaar 1845 dnl NASM/YASM version requirement
19 :     minimum_yasm_minor_version=7
20 : Isibaar 1797 minimum_nasm_minor_version=0
21 : Isibaar 1788 minimum_nasm_major_version=2
22 : edgomez 824 nasm_prog="nasm"
23 : Isibaar 1845 yasm_prog="yasm"
24 : edgomez 824
25 :     dnl Default CFLAGS -- Big impact on overall speed
26 :     our_cflags_defaults="-Wall"
27 :     our_cflags_defaults="$our_cflags_defaults -O2"
28 : edgomez 1382 our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
29 :     our_cflags_defaults="$our_cflags_defaults -finline-functions"
30 :     our_cflags_defaults="$our_cflags_defaults -ffast-math"
31 : edgomez 824 our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"
32 :    
33 :     dnl ==========================================================================
34 :     dnl Features - configure options
35 :     dnl ==========================================================================
36 :    
37 :     FEATURES=""
38 :    
39 :     dnl Internal Debug
40 :     AC_ARG_ENABLE(idebug,
41 :     AC_HELP_STRING([--enable-idebug],
42 :     [Enable internal debug function]),
43 :     [if test "$enable_idebug" = "yes" ; then
44 :     FEATURES="$FEATURES -D_DEBUG"
45 :     fi])
46 :    
47 :     dnl Internal Profile
48 :     AC_ARG_ENABLE(iprofile,
49 :     AC_HELP_STRING([--enable-iprofile],
50 :     [Enable internal profiling]),
51 :     [if test "$enable_iprofile" = "yes" ; then
52 :     FEATURES="$FEATURES -D_PROFILING_"
53 :     fi])
54 :    
55 : edgomez 1382 dnl GNU Profiling options
56 :     AC_ARG_ENABLE(gnuprofile,
57 :     AC_HELP_STRING([--enable-gnuprofile],
58 :     [Enable profiling informations for gprof]),
59 :     [if test "$enable_gnuprofile" = "yes" ; then
60 :     GNU_PROF_CFLAGS="-pg -fprofile-arcs -ftest-coverage"
61 :     GNU_PROF_LDFLAGS="-pg"
62 :     fi])
63 :    
64 : edgomez 824 dnl Assembly code
65 :     AC_ARG_ENABLE(assembly,
66 :     AC_HELP_STRING([--disable-assembly],
67 :     [Disable assembly code]),
68 :     [if test "$enable_assembly" = "no" ; then
69 :     assembly="no"
70 :     else
71 :     if test "$enable_assembly" = "yes" ; then
72 :     assembly="yes"
73 :     fi
74 :     fi],
75 :     [assembly="yes"])
76 :    
77 : edgomez 1024 dnl Build as a module not a shared lib on darwin
78 :     AC_ARG_ENABLE(macosx_module,
79 :     AC_HELP_STRING([--enable-macosx_module],
80 :     [Build as a module on MacOS X]),
81 :     [if test "$enable_macosx_module" = "yes" ; then
82 :     macosx_module="yes"
83 :     else
84 :     macosx_module="no"
85 : edgomez 1382 fi],
86 :     [macosx_module="no"])
87 : edgomez 1024
88 : edgomez 824 dnl ==========================================================================
89 :     dnl Default install prefix and checks build type
90 :     dnl ==========================================================================
91 :    
92 :     AC_PREFIX_DEFAULT("/usr/local")
93 :     AC_CANONICAL_BUILD
94 :     AC_CANONICAL_HOST
95 :     AC_CANONICAL_TARGET
96 :    
97 :     dnl ==========================================================================
98 :     dnl Check for the C compiler (could be passed on command line)
99 :     dnl ==========================================================================
100 :    
101 :     dnl
102 :     dnl First we test if CFLAGS have been passed on command line
103 :     dnl I do that because autoconf defaults (-g -O2) suck and they would kill
104 :     dnl performance. To prevent that we define a good defult CFLAGS at the end
105 :     dnl of the script if and only if CFLAGS has not been passed on the command
106 :     dnl line
107 :     dnl
108 :     AC_MSG_CHECKING(whether to use default CFLAGS)
109 :     if test x"$CFLAGS" = x"" ; then
110 :     force_default_cc_options="yes"
111 :     AC_MSG_RESULT([yes])
112 :     else
113 :     force_default_cc_options="no"
114 :     AC_MSG_RESULT([no])
115 :     fi
116 :    
117 :     dnl Now we can safely check for the C compiler
118 :     AC_PROG_CC
119 :    
120 :     dnl ==========================================================================
121 :     dnl Check for the install program
122 :     dnl ==========================================================================
123 :    
124 :     AC_PROG_INSTALL
125 :    
126 :     dnl ==========================================================================
127 : edgomez 830 dnl Check for the ranlib program to generate static library index
128 :     dnl ==========================================================================
129 :    
130 :     AC_PROG_RANLIB
131 :    
132 :     dnl ==========================================================================
133 : edgomez 824 dnl
134 :     dnl This part looks for:
135 :     dnl
136 :     dnl ARCHITECTURE : The platform architecture
137 :     dnl - IA32 for mmx, mmx-ext, mmx2, sse assembly
138 :     dnl - IA64
139 :     dnl - PPC for PowerPC assembly routines
140 :     dnl - GENERIC for plain C sources only
141 :     dnl
142 :     dnl BUS: Address bus size (in bits)
143 :     dnl - 32
144 :     dnl - 64
145 :     dnl
146 :     dnl ENDIANNESS: I think you can guess what this thing means :-)
147 :     dnl - LITTLE_ENDIAN
148 :     dnl - BIG_ENDIAN
149 :     dnl
150 :     dnl ==========================================================================
151 :    
152 :     dnl
153 :     dnl Looking what sources have to be compiled according to the CPU type
154 :     dnl
155 :    
156 :     ARCHITECTURE=""
157 :    
158 :     AC_MSG_CHECKING([for whether to use assembly code])
159 :     if test x"$assembly" = x"yes" ; then
160 :     AC_MSG_RESULT([yes])
161 :     AC_MSG_CHECKING([for architecture type])
162 :     case "$target_cpu" in
163 :     i[[3456]]86)
164 :     AC_MSG_RESULT(ia32)
165 :     ARCHITECTURE="IA32"
166 : edgomez 1586 ;;
167 :     x86_64)
168 :     AC_MSG_RESULT(x86_64)
169 :     ARCHITECTURE="X86_64"
170 : edgomez 824 ;;
171 :     powerpc)
172 :     AC_MSG_RESULT(PowerPC)
173 : edgomez 1412 ARCHITECTURE="PPC"
174 : edgomez 824 ;;
175 :     ia64)
176 :     AC_MSG_RESULT(ia64)
177 :     ARCHITECTURE="IA64"
178 :     ;;
179 :     *)
180 :     AC_MSG_RESULT($target_cpu)
181 :     ARCHITECTURE="GENERIC"
182 :     ;;
183 :     esac
184 :     else
185 :     AC_MSG_RESULT([no])
186 :     ARCHITECTURE="GENERIC"
187 :     fi
188 :    
189 :     dnl
190 :     dnl Testing address bus length
191 :     dnl
192 :     BUS=""
193 :    
194 :     AC_CHECK_SIZEOF([int *])
195 :     case "$ac_cv_sizeof_int_p" in
196 :     4)
197 :     BUS="32BIT"
198 :     ;;
199 :     8)
200 :     BUS="64BIT"
201 :     ;;
202 :     *)
203 : Isibaar 1797 AC_MSG_ERROR([Xvid supports only 32/64 bit architectures])
204 : edgomez 824 ;;
205 :     esac
206 :    
207 :     dnl
208 :     dnl Testing endianness
209 :     dnl
210 :     ENDIANNESS=""
211 :    
212 :     AC_C_BIGENDIAN(ENDIANNESS="BIG_ENDIAN", ENDIANNESS="LITTLE_ENDIAN")
213 :    
214 :     dnl ==========================================================================
215 :     dnl
216 :     dnl Check for OS specific variables
217 :     dnl - SHARED_EXTENSION, STATIC_EXTENSION, OBJECT_EXTENSION
218 :     dnl
219 :     dnl ==========================================================================
220 :    
221 :     AC_MSG_CHECKING(for build extensions)
222 :     SHARED_EXTENSION=""
223 :     STATIC_EXTENSION=""
224 :     OBJECT_EXTENSION=""
225 :     case "$target_os" in
226 :     *bsd*|linux*|beos|irix*|solaris*)
227 :     AC_MSG_RESULT([.so .a .o])
228 :     STATIC_EXTENSION="a"
229 :     SHARED_EXTENSION="so"
230 :     OBJECT_EXTENSION="o"
231 :     ;;
232 : edgomez 1382 [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
233 : edgomez 900 AC_MSG_RESULT([.dll .a .obj])
234 :     STATIC_EXTENSION="a"
235 : edgomez 824 SHARED_EXTENSION="dll"
236 :     OBJECT_EXTENSION="obj"
237 :     ;;
238 :     darwin*|raphsody*)
239 : edgomez 1024 if test x"$macosx_module" = x"yes"; then
240 :     AC_MSG_RESULT([.so .a .o])
241 :     SHARED_EXTENSION="so"
242 :     else
243 :     AC_MSG_RESULT([.dynlib .a .o])
244 :     SHARED_EXTENSION="dylib"
245 :     fi
246 : edgomez 824 STATIC_EXTENSION="a"
247 :     OBJECT_EXTENSION="o"
248 :     ;;
249 :     *)
250 :     AC_MSG_RESULT([Unknown OS - Using .so .a .o])
251 :     STATIC_EXTENSION="a"
252 :     SHARED_EXTENSION="so"
253 :     OBJECT_EXTENSION="o"
254 :     ;;
255 :     esac
256 :    
257 : edgomez 1382 dnl ==========================================================================
258 :     dnl
259 :     dnl Determines best options for CC and LD
260 :     dnl - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
261 :     dnl
262 :     dnl ==========================================================================
263 :    
264 : edgomez 824 AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
265 : edgomez 830 SPECIFIC_LDFLAGS=""
266 :     SPECIFIC_CFLAGS=""
267 : edgomez 1382 PRE_SHARED_LIB=""
268 : edgomez 824 case "$target_os" in
269 : Skal 1617 linux*|solaris*)
270 : edgomez 1382 AC_MSG_RESULT([ok])
271 : edgomez 900 STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
272 :     SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
273 : Skal 1617 SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
274 :     SPECIFIC_CFLAGS="-fPIC"
275 :     ;;
276 :     *bsd*|irix*)
277 :     AC_MSG_RESULT([ok])
278 :     STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
279 :     SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
280 : edgomez 1006 SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
281 : edgomez 830 SPECIFIC_CFLAGS="-fPIC"
282 : edgomez 824 ;;
283 : edgomez 1382 [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
284 :     AC_MSG_RESULT([ok])
285 :     STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)"
286 :     SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)"
287 : edgomez 900 SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
288 : edgomez 830 SPECIFIC_CFLAGS="-mno-cygwin"
289 : edgomez 824 ;;
290 :     darwin*|raphsody*)
291 : edgomez 900 STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
292 :     SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
293 : edgomez 1024 if test x"$macosx_module" = x"no"; then
294 :     AC_MSG_RESULT([dylib options])
295 :     SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
296 : edgomez 1382 SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"
297 : edgomez 1024 else
298 : edgomez 1382 AC_MSG_RESULT([module options])
299 :     PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
300 :     SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
301 :     SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
302 : edgomez 1024 fi
303 : edgomez 824 ;;
304 :     beos)
305 : edgomez 1382 AC_MSG_RESULT([ok])
306 : edgomez 900 STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
307 :     SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
308 : edgomez 830 SPECIFIC_LDFLAGS="-nostart"
309 :     SPECIFIC_CFLAGS="-fPIC"
310 : edgomez 824 ;;
311 :     *)
312 : edgomez 1382 AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
313 : edgomez 1535 STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
314 : edgomez 900 SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
315 : edgomez 830 SPECIFIC_LDFLAGS=""
316 :     SPECIFIC_CFLAGS=""
317 : edgomez 824 ;;
318 :     esac
319 :    
320 : edgomez 1382 if test x"$PRE_SHARED_LIB" = x; then
321 :     PRE_SHARED_LIB=$SHARED_LIB
322 :     fi
323 :    
324 : edgomez 824 dnl ==========================================================================
325 :     dnl
326 : edgomez 1382 dnl Assembler stuff
327 :     dnl - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
328 : edgomez 824 dnl
329 :     dnl ==========================================================================
330 :    
331 :     AS=""
332 :     AFLAGS=""
333 :     ASSEMBLY_EXTENSION=""
334 :     GENERIC_SOURCES="SRC_GENERIC"
335 :     ASSEMBLY_SOURCES=""
336 :    
337 :     dnl
338 :     dnl IA32
339 :     dnl
340 :    
341 : edgomez 1586 if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
342 : edgomez 824
343 :     dnl
344 : edgomez 1535 dnl Checking for nasm compatible programs
345 : edgomez 824 dnl
346 :    
347 : edgomez 1535 found_nasm_comp_prog="no"
348 :     chosen_asm_prog=""
349 : edgomez 824
350 : Isibaar 1845 dnl Check for yasm first
351 :     AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
352 :     if test "$ac_yasm" = "yes" ; then
353 :     dnl
354 :     dnl Checking yasm version
355 :     dnl
356 :     AC_MSG_CHECKING([for yasm version])
357 :     yasm_minor=`$yasm_prog --version | cut -d '.' -f 2 | cut -d ' ' -f 1`
358 :     if test -z $yasm_minor ; then
359 :     yasm_minor=-1
360 :     fi
361 :     AC_MSG_RESULT([$yasm_minor])
362 :    
363 :     dnl Actually, yasm >= 0.6.2 should be ok
364 :     dnl But I'm too lazy to check also the patch version...
365 :     if test "$yasm_minor" -lt "$minimum_yasm_minor_version" ; then
366 :     AC_MSG_WARN([yasm version is too old])
367 :     else
368 :     found_nasm_comp_prog="yes"
369 :     chosen_asm_prog="$yasm_prog"
370 :     fi
371 :     fi
372 :    
373 : Isibaar 1797 dnl Check for nasm (not buggy version)
374 : Isibaar 1794 if test "$found_nasm_comp_prog" = "no" ; then
375 : edgomez 1535 AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
376 :     if test "$ac_nasm" = "yes" ; then
377 :     dnl
378 : Isibaar 1797 dnl Checking nasm version
379 : edgomez 1535 dnl
380 : Isibaar 1797 AC_MSG_CHECKING([for nasm version])
381 : Isibaar 1788 nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
382 :     nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
383 :     if test -z $nasm_minor ; then
384 :     nasm_minor=-1
385 :     fi
386 :     if test -z $nasm_major ; then
387 :     nasm_major=-1
388 :     fi
389 : Isibaar 1797 AC_MSG_RESULT([$nasm_major])
390 : edgomez 824
391 : Isibaar 1794 dnl need nasm 2.x for SSE3/4 and X86_64
392 :     if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
393 :     AC_MSG_WARN([nasm version is too old])
394 : edgomez 1535 else
395 : Isibaar 1794 found_nasm_comp_prog="yes"
396 :     chosen_asm_prog="$nasm_prog"
397 : edgomez 1535 fi
398 : edgomez 824 fi
399 : edgomez 1535 fi
400 : edgomez 824
401 : edgomez 1535 dnl
402 :     dnl Ok now sort what object format we must use
403 :     dnl
404 :     if test "$found_nasm_comp_prog" = "yes" ; then
405 :     AC_MSG_CHECKING([for asm object format])
406 :     case "$target_os" in
407 :     *bsd*|linux*|beos|irix*|solaris*)
408 : Isibaar 1797 if test "$ARCHITECTURE" = "X86_64" ; then
409 :     AC_MSG_RESULT([elf64])
410 :     NASM_FORMAT="elf64"
411 :     else
412 :     AC_MSG_RESULT([elf])
413 :     NASM_FORMAT="elf"
414 :     fi
415 : edgomez 1535 MARK_FUNCS="-DMARK_FUNCS"
416 :     PREFIX=""
417 :     ;;
418 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
419 : Isibaar 1797 if test "$ARCHITECTURE" = "X86_64" ; then
420 :     AC_MSG_RESULT([win64])
421 :     NASM_FORMAT="win64"
422 :     else
423 :     AC_MSG_RESULT([win32])
424 :     NASM_FORMAT="win32"
425 :     fi
426 :     PREFIX="-DWINDOWS"
427 : edgomez 1535 MARK_FUNCS=""
428 :     ;;
429 : Isibaar 1768 *darwin*)
430 :     AC_MSG_RESULT([macho])
431 :     NASM_FORMAT="macho"
432 :     PREFIX="-DPREFIX"
433 :     MARK_FUNCS=""
434 :     ;;
435 : edgomez 1535 esac
436 :    
437 :     AS="$chosen_asm_prog"
438 : edgomez 1586 ASSEMBLY_EXTENSION="asm"
439 : Isibaar 1797 AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
440 : edgomez 1586 ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
441 :     if test "$ARCHITECTURE" = "X86_64" ; then
442 : Isibaar 1797 AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
443 : edgomez 1586 fi
444 : edgomez 1535 else
445 :     AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
446 :     ARCHITECTURE="GENERIC"
447 : edgomez 824 fi
448 :     fi
449 :    
450 :     dnl
451 :     dnl PPC
452 :     dnl
453 : edgomez 1412 dnl With the PPC platform we do not use assembly language, we better keep with
454 :     dnl intrinsic altivec functions and types as they are supported by both Apple
455 :     dnl and GNU gcc with very slight changes to code which can be sumed up by:
456 :     dnl
457 :     dnl Apple:
458 : Isibaar 1847 dnl - compile with the option -arch ppc -faltivec
459 : edgomez 1412 dnl - define vectors with parentheses vec = (0,0,0,0)
460 :     dnl GNU
461 :     dnl - compile with -maltivec -mabi=altivec
462 :     dnl - include <altivec.h> before using intrincic
463 :     dnl - define vectors with vec = {0,0,0,0}
464 :     dnl
465 :     dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
466 :     dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
467 :     dnl a -DHAVE_ALTIVEC_H
468 :     dnl * The vector definition is handled in portab.h thx to
469 :     dnl HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
470 :     dnl
471 :     PPC_ALTIVEC_SOURCES=""
472 : edgomez 824 if test "$ARCHITECTURE" = "PPC" ; then
473 :     AS="\$(CC)"
474 : edgomez 1412 AFLAGS=""
475 :     ASSEMBLY_EXTENSION=".s"
476 :     ASSEMBLY_SOURCES=""
477 :    
478 :     AC_MSG_CHECKING([for altivec.h])
479 :     cat > conftest.c << EOF
480 :     #include <altivec.h>
481 :     int main() { return(0); }
482 : edgomez 824 EOF
483 : Isibaar 1847 if $CC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
484 : edgomez 1412 $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
485 : edgomez 824 AC_MSG_RESULT(yes)
486 : edgomez 1412 SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
487 :     TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
488 : edgomez 824 else
489 :     AC_MSG_RESULT(no)
490 : edgomez 1412 TEMP_ALTIVEC=""
491 : edgomez 824 fi
492 : edgomez 1412
493 :     AC_MSG_CHECKING([for Altivec compiler support])
494 :     cat > conftest.c << EOF
495 :     #ifdef HAVE_ALTIVEC_H
496 :     #include <altivec.h>
497 :     #endif
498 :    
499 :     int main()
500 :     {
501 :     vector unsigned int vartest2 = (vector unsigned int)(0);
502 :     vector unsigned int vartest3 = (vector unsigned int)(1);
503 :     vartest2 = vec_add(vartest2, vartest3);
504 :     return(0);
505 :     }
506 :     EOF
507 : Isibaar 1847 if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
508 : edgomez 1412 AC_MSG_RESULT([yes (Apple)])
509 : Isibaar 1847 SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
510 : edgomez 1412 PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
511 :     else
512 :     cat > conftest.c << EOF
513 :     #ifdef HAVE_ALTIVEC_H
514 :     #include <altivec.h>
515 :     #endif
516 :    
517 :     int main()
518 :     {
519 :     vector unsigned int vartest2 = (vector unsigned int){0};
520 :     vector unsigned int vartest3 = (vector unsigned int){1};
521 :     vartest2 = vec_add(vartest2, vartest3);
522 :     return(0);
523 :     }
524 :     EOF
525 :     if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
526 :     AC_MSG_RESULT([yes (GNU)])
527 :     SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
528 :     PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
529 :     else
530 :     AC_MSG_RESULT([no (ppc support won't be compiled in)])
531 :     dnl Only C code can be compiled :-(
532 :     ARCHITECTURE="GENERIC"
533 :     fi
534 :     fi
535 :    
536 : edgomez 824 rm -f conftest.*
537 :     fi
538 :    
539 :     dnl
540 :     dnl IA64
541 :     dnl
542 :    
543 :     if test "$ARCHITECTURE" = "IA64" ; then
544 :     AS="\$(CC)"
545 :     AFLAGS="-c"
546 :     ASSEMBLY_EXTENSION="s"
547 :     ASSEMBLY_SOURCES="SRC_IA64"
548 : edgomez 830
549 :     case `basename $CC` in
550 :     *ecc*)
551 : edgomez 1382 DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
552 : edgomez 830
553 :     dnl If the compiler is ecc, then i don't know its options
554 :     dnl fallback to "no options"
555 :     if test "$force_default_cc_options" = "yes" ; then
556 :     our_cflags_defaults=""
557 :     fi
558 :     ;;
559 :     *)
560 : edgomez 1382 DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
561 : edgomez 830 ;;
562 :     esac
563 :    
564 : edgomez 824 fi
565 :    
566 :     dnl ==========================================================================
567 :     dnl
568 :     dnl Check for header files
569 :     dnl
570 :     dnl ==========================================================================
571 :    
572 :     AC_CHECK_HEADERS(
573 :     stdio.h \
574 :     signal.h \
575 : edgomez 1451 stdlib.h \
576 :     string.h \
577 :     assert.h \
578 :     math.h \
579 : edgomez 824 , , AC_MSG_ERROR(Missing header file))
580 :    
581 :     dnl ==========================================================================
582 :     dnl
583 : syskin 1694 dnl Check for pthread
584 :     dnl
585 :     dnl ==========================================================================
586 :    
587 :     AC_CHECK_HEADER(
588 :     pthread.h,
589 :     AC_CHECK_LIB(
590 :     pthread,
591 :     pthread_create,
592 :     AC_CHECK_LIB(
593 :     pthread,
594 :     pthread_join,
595 :     SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
596 :     SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread",
597 :     AC_MSG_WARN(Pthread not supported. No SMP support)),
598 :     AC_MSG_WARN(Pthread not supported. No SMP support)),
599 :     AC_MSG_WARN(Pthread not supported. No SMP support))
600 :    
601 :     dnl ==========================================================================
602 :     dnl
603 : edgomez 830 dnl Now we can set CFLAGS if needed
604 :     dnl
605 :     dnl ==========================================================================
606 :    
607 :     if test "$force_default_cc_options" = "yes" ; then
608 :     CFLAGS="$our_cflags_defaults"
609 :     fi
610 :    
611 :     dnl ==========================================================================
612 :     dnl
613 : edgomez 1382 dnl Profiling stuff goes here
614 :     dnl - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
615 :     dnl - removes incompatible options from CFLAGS
616 :     dnl
617 :     dnl ==========================================================================
618 :    
619 :     SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
620 :     SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
621 :    
622 :     if test "$enable_gnuprofile" = "yes" ; then
623 :     CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
624 :     fi
625 :    
626 :     dnl ==========================================================================
627 : Skal 1615 dnl Some gcc flags can't be used for gcc >= 3.4.0
628 :     dnl ==========================================================================
629 :    
630 :     if test "$GCC" = "yes" ; then
631 :     cat << EOF > test.c
632 :     #include <stdio.h>
633 :     int main(int argc, char **argv)
634 :     {
635 :     if (*argv[[1]] == 'M') {
636 :     printf("%d", __GNUC__);
637 :     }
638 :     if (*argv[[1]] == 'm') {
639 :     printf("%d", __GNUC_MINOR__);
640 :     }
641 :     return 0;
642 :     }
643 :     EOF
644 :     $CC -o gcc-ver test.c
645 :    
646 :     GCC_MAJOR=`./gcc-ver M`
647 :     GCC_MINOR=`./gcc-ver m`
648 :    
649 :     rm -f test.c
650 :     rm -f gcc-ver
651 :    
652 :     # GCC 4.x
653 : Skal 1617 if test "${GCC_MAJOR}" -gt 3 ; then
654 : Skal 1615 CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
655 :     CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
656 :     CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
657 :     CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
658 :     CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
659 :     fi
660 :    
661 :     # GCC 3.4.x
662 : Skal 1617 if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
663 : Skal 1615 CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
664 :     fi
665 :     fi
666 :    
667 :    
668 :     dnl ==========================================================================
669 : edgomez 1382 dnl
670 : edgomez 824 dnl Substitions
671 :     dnl
672 :     dnl ==========================================================================
673 :    
674 :     AC_SUBST(FEATURES)
675 :     AC_SUBST(ARCHITECTURE)
676 :     AC_SUBST(BUS)
677 :     AC_SUBST(ENDIANNESS)
678 :     AC_SUBST(SHARED_EXTENSION)
679 :     AC_SUBST(STATIC_EXTENSION)
680 :     AC_SUBST(OBJECT_EXTENSION)
681 :     AC_SUBST(NASM_FORMAT)
682 :     AC_SUBST(AS)
683 :     AC_SUBST(AFLAGS)
684 :     AC_SUBST(ASSEMBLY_EXTENSION)
685 :     AC_SUBST(GENERIC_SOURCES)
686 :     AC_SUBST(ASSEMBLY_SOURCES)
687 :     AC_SUBST(CC)
688 :     AC_SUBST(CFLAGS)
689 : edgomez 830 AC_SUBST(SPECIFIC_LDFLAGS)
690 :     AC_SUBST(SPECIFIC_CFLAGS)
691 :     AC_SUBST(DCT_IA64_SOURCES)
692 : edgomez 1412 AC_SUBST(PPC_ALTIVEC_SOURCES)
693 : edgomez 830 AC_SUBST(RANLIB)
694 : edgomez 900 AC_SUBST(API_MAJOR)
695 :     AC_SUBST(API_MINOR)
696 :     AC_SUBST(STATIC_LIB)
697 : edgomez 1382 AC_SUBST(PRE_SHARED_LIB)
698 : edgomez 900 AC_SUBST(SHARED_LIB)
699 : edgomez 824
700 :     dnl ==========================================================================
701 :     dnl
702 :     dnl Output files
703 :     dnl
704 :     dnl ==========================================================================
705 :    
706 :     AC_CONFIG_FILES(platform.inc)
707 :    
708 :     AC_OUTPUT

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