[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 1794 - (view) (download)
Original Path: trunk/xvidcore/build/generic/configure.in

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

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