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

Diff of /trunk/xvidcore/build/generic/configure.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 827, Sun Feb 9 23:08:56 2003 UTC revision 2146, Tue Oct 18 22:01:59 2016 UTC
# Line 1  Line 1 
1  dnl ==========================================================================  dnl ==========================================================================
2  dnl  dnl
3  dnl Autoconf script for XviD  dnl Autoconf script for Xvid
4  dnl  dnl
5  dnl Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr>  dnl Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>
6  dnl  dnl
7  dnl ==========================================================================  dnl ==========================================================================
8    
9  AC_INIT([XviD], [0.9.1 (wip)], [xvid-devel@xvid.org])  AC_PREREQ([2.50])
10    
11    AC_INIT([Xvid], [1.4.0], [xvid-devel@xvid.org])
12  AC_CONFIG_SRCDIR(configure.in)  AC_CONFIG_SRCDIR(configure.in)
13    
14  dnl NASM version requirement  dnl Do not forget to increase that when needed.
15  minimum_nasm_patch_version=34  API_MAJOR="4"
16    API_MINOR="4"
17    
18    dnl NASM/YASM version requirement
19    minimum_yasm_major_version=1
20    minimum_nasm_minor_version=0
21    minimum_nasm_major_version=2
22  nasm_prog="nasm"  nasm_prog="nasm"
23    yasm_prog="yasm"
24    
25  dnl Default CFLAGS -- Big impact on overall speed  dnl Default CFLAGS -- Big impact on overall speed
26  our_cflags_defaults="-Wall"  our_cflags_defaults="-Wall"
27  our_cflags_defaults="$our_cflags_defaults -O2"  our_cflags_defaults="$our_cflags_defaults -O2"
28  our_cflags_defaults="$our_cflags_defaults -fPIC"  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
29  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"  our_cflags_defaults="$our_cflags_defaults -finline-functions"
30  our_cflags_defaults="$our_cflags_defaults -ffast-math"  our_cflags_defaults="$our_cflags_defaults -ffast-math"
31  our_cflags_defaults="$our_cflags_defaults -funroll-loops"  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"
 our_cflags_defaults="$our_cflags_defaults -fschedule-insns"  
 our_cflags_defaults="$our_cflags_defaults -fschedule-insns2"  
32    
33  dnl ==========================================================================  dnl ==========================================================================
34  dnl Features - configure options  dnl Features - configure options
35  dnl ==========================================================================  dnl ==========================================================================
36    
37  FEATURES=""  FEATURES=""
 DIVX4COMPAT_SOURCES=""  
   
 dnl BIGLUT aka old VLC code  
 AC_ARG_ENABLE(oldvlc,  
                 AC_HELP_STRING([--enable-oldvlc],  
                                  [Enable old VLC code (Needs much more memory ~10MB)]),  
                 [if test "$enable_oldvlc" = "yes" ; then  
                     FEATURES="$FEATURES -DBIGLUT"  
                  fi])  
38    
39  dnl Internal Debug  dnl Internal Debug
40  AC_ARG_ENABLE(idebug,  AC_ARG_ENABLE(idebug,
# Line 54  Line 52 
52                       FEATURES="$FEATURES -D_PROFILING_"                       FEATURES="$FEATURES -D_PROFILING_"
53                    fi])                    fi])
54    
55    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  dnl Assembly code  dnl Assembly code
65  AC_ARG_ENABLE(assembly,  AC_ARG_ENABLE(assembly,
66                  AC_HELP_STRING([--disable-assembly],                  AC_HELP_STRING([--disable-assembly],
# Line 67  Line 74 
74                    fi],                    fi],
75                   [assembly="yes"])                   [assembly="yes"])
76    
77  dnl Internal Debug  dnl pthread code
78  AC_ARG_ENABLE(divx4compat,  AC_ARG_ENABLE(pthread,
79                  AC_HELP_STRING([--enable-divx4compat],                  AC_HELP_STRING([--disable-pthread],
80                                   [Enable DivX4 compatibility API]),                                   [Disable pthread dependent code]),
81                   [if test "$enable_divx4compat" = "yes" ; then                   [if test "$enable_pthread" = "no" ; then
82                       DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT"                       pthread="no"
83                    fi])                    else
84                         if test "$enable_pthread" = "yes" ; then
85                            pthread="yes"
86                         fi
87                      fi],
88                     [pthread="yes"])
89    
90    dnl Build as a module not a shared lib on darwin
91    AC_ARG_ENABLE(macosx_module,
92                    AC_HELP_STRING([--enable-macosx_module],
93                                     [Build as a module on MacOS X]),
94                     [if test "$enable_macosx_module" = "yes" ; then
95                         macosx_module="yes"
96                      else
97                         macosx_module="no"
98                      fi],
99                      [macosx_module="no"])
100    
101  dnl ==========================================================================  dnl ==========================================================================
102  dnl Default install prefix and checks build type  dnl Default install prefix and checks build type
# Line 99  Line 121 
121  AC_MSG_CHECKING(whether to use default CFLAGS)  AC_MSG_CHECKING(whether to use default CFLAGS)
122  if test  x"$CFLAGS" = x"" ; then  if test  x"$CFLAGS" = x"" ; then
123     force_default_cc_options="yes"     force_default_cc_options="yes"
    CFLAGS="$our_cflags_defaults"  
124     AC_MSG_RESULT([yes])     AC_MSG_RESULT([yes])
125  else  else
126     force_default_cc_options="no"     force_default_cc_options="no"
# Line 116  Line 137 
137  AC_PROG_INSTALL  AC_PROG_INSTALL
138    
139  dnl ==========================================================================  dnl ==========================================================================
140    dnl Check for the ranlib program to generate static library index
141    dnl ==========================================================================
142    
143    AC_PROG_RANLIB
144    AC_CHECK_TOOL([AR], [ar], [ar-not-found])
145    
146    dnl ==========================================================================
147    dnl Check for the egrep program
148    dnl ==========================================================================
149    
150    AC_PROG_EGREP
151    
152    dnl ==========================================================================
153    dnl Check how the system supports symlinks.
154    dnl ==========================================================================
155    
156    AC_PROG_LN_S
157    
158    dnl ==========================================================================
159  dnl  dnl
160  dnl This part looks for:  dnl This part looks for:
161  dnl  dnl
# Line 150  Line 190 
190            AC_MSG_RESULT(ia32)            AC_MSG_RESULT(ia32)
191                  ARCHITECTURE="IA32"                  ARCHITECTURE="IA32"
192                  ;;                  ;;
193              x86_64)
194                    AC_MSG_RESULT(x86_64)
195                    ARCHITECTURE="X86_64"
196                    ;;
197                  powerpc)                  powerpc)
198                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
199                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
200                  ;;                  ;;
201                  ia64)                  ia64)
202                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 184  Line 226 
226          BUS="64BIT"          BUS="64BIT"
227          ;;          ;;
228       *)       *)
229          AC_MSG_ERROR([XviD supports only 32/64 bit architectures])          AC_MSG_ERROR([Xvid supports only 32/64 bit architectures])
230          ;;          ;;
231  esac  esac
232    
# Line 207  Line 249 
249  STATIC_EXTENSION=""  STATIC_EXTENSION=""
250  OBJECT_EXTENSION=""  OBJECT_EXTENSION=""
251  case "$target_os" in  case "$target_os" in
252       *bsd*|linux*|beos|irix*|solaris*)       *bsd*|linux*|beos|irix*|solaris*|gnu*|*qnx*)
253          AC_MSG_RESULT([.so .a .o])          AC_MSG_RESULT([.so .a .o])
254          STATIC_EXTENSION="a"          STATIC_EXTENSION="a"
255          SHARED_EXTENSION="so"          SHARED_EXTENSION="so"
256          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
257          ;;          ;;
258       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
259          AC_MSG_RESULT([.dll .lib .obj])          AC_MSG_RESULT([.dll .a .obj])
260          STATIC_EXTENSION="lib"          STATIC_EXTENSION="a"
261          SHARED_EXTENSION="dll"          SHARED_EXTENSION="dll"
262          OBJECT_EXTENSION="obj"          OBJECT_EXTENSION="obj"
263          ;;          ;;
264       darwin*|raphsody*)       darwin*)
265            if test x"$macosx_module" = x"yes"; then
266               AC_MSG_RESULT([.so .a .o])
267               SHARED_EXTENSION="so"
268            else
269          AC_MSG_RESULT([.dynlib .a .o])          AC_MSG_RESULT([.dynlib .a .o])
         STATIC_EXTENSION="a"  
270          SHARED_EXTENSION="dylib"          SHARED_EXTENSION="dylib"
271            fi
272            STATIC_EXTENSION="a"
273            OBJECT_EXTENSION="o"
274            ;;
275         amigaos)
276            { $as_echo "$as_me:${as_lineno-$LINENO}: result: .so .a .o" >&5
277     $as_echo ".so .a .o" >&6; }
278            STATIC_EXTENSION="a"
279            SHARED_EXTENSION="so"
280          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
281          ;;          ;;
282       *)       *)
# Line 233  Line 287 
287          ;;          ;;
288  esac  esac
289    
290    dnl ==========================================================================
291    dnl
292    dnl Determines best options for CC and LD
293    dnl  - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
294    dnl
295    dnl ==========================================================================
296    
297  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
298  OS_LDFLAGS=""  SPECIFIC_LDFLAGS=""
299    SPECIFIC_CFLAGS=""
300    ALTIVEC_CFLAGS=""
301    PRE_SHARED_LIB=""
302    SO_API_MAJOR_LINK=""
303    SO_LINK=""
304    IMPORT_LIB=""
305  case "$target_os" in  case "$target_os" in
306       *bsd*|linux*|irix*|solaris*)       linux*|solaris*|gnu*|*qnx*)
307          AC_MSG_RESULT([-shared -lc -lm])          AC_MSG_RESULT([ok])
308          OS_LDFLAGS="-shared -lc -lm"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
309          ;;          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
310       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)          SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
311          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
312          OS_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
313          CFLAGS="$CFLAGS -mno-cygwin"          SPECIFIC_CFLAGS="-fPIC"
314          ;;          ;;
315       darwin*|raphsody*)       *bsd*|irix*)
316          AC_MSG_RESULT([-dynamiclib])          AC_MSG_RESULT([ok])
317          OS_LDFLAGS="-dynamiclib"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
318          CFLAGS="$CFLAGS -fno-common"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
319            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
320            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
321            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
322            SPECIFIC_CFLAGS="-fPIC"
323            ;;
324         [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*)
325            AC_MSG_RESULT([ok])
326            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
327            SHARED_LIB="cygxvidcore.\$(SHARED_EXTENSION)"
328            IMPORT_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(STATIC_EXTENSION)"
329            SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
330            SPECIFIC_CFLAGS=""
331            ;;
332         mingw32*|mks*)
333            AC_MSG_RESULT([ok])
334            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
335            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
336            IMPORT_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(STATIC_EXTENSION)"
337            SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
338            SPECIFIC_CFLAGS=""
339            ;;
340         darwin*)
341            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
342            SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
343            if test x"$macosx_module" = x"no"; then
344               AC_MSG_RESULT([dylib options])
345               SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
346               SPECIFIC_LDFLAGS="-Wl,-read_only_relocs,suppress -dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"
347            else
348               AC_MSG_RESULT([module options])
349               PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
350               SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
351               SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
352            fi
353          ;;          ;;
354       beos)       beos)
355          AC_MSG_RESULT([-nostart])          AC_MSG_RESULT([ok])
356          OS_LDFLAGS="-nostart"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
357            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
358            SPECIFIC_LDFLAGS="-nostart"
359            SPECIFIC_CFLAGS="-fPIC"
360            ;;
361         amigaos)
362            { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
363     $as_echo "ok" >&6; }
364            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
365            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
366            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
367            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
368            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
369            SPECIFIC_CFLAGS="-fPIC"
370          ;;          ;;
371       *)       *)
372          AC_MSG_RESULT([Unknown OS - -shared -lc -lm])          AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
373          OS_LDFLAGS=""      STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
374            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
375            SPECIFIC_LDFLAGS=""
376            SPECIFIC_CFLAGS=""
377          ;;          ;;
378  esac  esac
379    
380    if test x"$PRE_SHARED_LIB" = x; then
381      PRE_SHARED_LIB=$SHARED_LIB
382    fi
383    
384    if test x"$IMPORT_LIB" = x; then
385      IMPORT_LIB=$SHARED_LIB
386    fi
387    
388  dnl ==========================================================================  dnl ==========================================================================
389  dnl  dnl
390  dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES  dnl Assembler stuff
391    dnl  - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
392  dnl  dnl
393  dnl ==========================================================================  dnl ==========================================================================
394    
# Line 276  Line 402 
402  dnl IA32  dnl IA32
403  dnl  dnl
404    
405  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
406    
407     dnl     dnl
408     dnl Checking nasm existence     dnl Checking for nasm compatible programs
409       dnl
410    
411       found_nasm_comp_prog="no"
412       chosen_asm_prog=""
413    
414       dnl Check for yasm first
415       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
416       if test "$ac_yasm" = "yes" ; then
417     dnl     dnl
418           dnl Checking yasm version
419           dnl
420           AC_MSG_CHECKING([for yasm version])
421           yasm_major=`$yasm_prog --version | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 2`
422           if test -z $yasm_major ; then
423              yasm_major=-1
424           fi
425           AC_MSG_RESULT([$yasm_major])
426    
427           dnl Actually, yasm >= 0.7.99.2161 should be ok
428           dnl But I'm too lazy to check also the patch version...
429           if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
430             AC_MSG_WARN([yasm version is too old])
431           else
432             found_nasm_comp_prog="yes"
433             chosen_asm_prog="$yasm_prog"
434           fi
435       fi
436    
437       dnl Check for nasm (not buggy version)
438       if test "$found_nasm_comp_prog" = "no" ; then
439     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
440     if test "$ac_nasm" = "yes" ; then     if test "$ac_nasm" = "yes" ; then
   
441        dnl        dnl
442        dnl Checking nasm patch version             dnl Checking nasm version
443        dnl        dnl
444        AC_MSG_CHECKING([for nasm patch version])             AC_MSG_CHECKING([for nasm version])
445        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`             nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
446        AC_MSG_RESULT([$nasm_patch])             nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
447               if test -z $nasm_minor ; then
448                  nasm_minor=-1
449               fi
450               if test -z $nasm_major ; then
451                  nasm_major=-1
452               fi
453               AC_MSG_RESULT([$nasm_major])
454    
455        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then             dnl need nasm 2.x for SSE3/4 and X86_64
456          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])             if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
457          ARCHITECTURE="GENERIC"               AC_MSG_WARN([nasm version is too old])
458        else        else
459                 found_nasm_comp_prog="yes"
460                   chosen_asm_prog="$nasm_prog"
461               fi
462           fi
463       fi
464    
465           dnl           dnl
466           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
467           dnl           dnl
468           AC_MSG_CHECKING([for nasm object format])     if test "$found_nasm_comp_prog" = "yes" ; then
469           AC_MSG_CHECKING([for asm object format])
470           case "$target_os" in           case "$target_os" in
471                *bsd*|linux*|beos|irix*|solaris*)             *bsd*|linux*|beos|irix*|solaris*|gnu*|*qnx*)
472                   if test "$ARCHITECTURE" = "X86_64" ; then
473                       AC_MSG_RESULT([elf64])
474                       NASM_FORMAT="elf64"
475                   else
476                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
477                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
478                   fi
479                   MARK_FUNCS="-DMARK_FUNCS"
480                    PREFIX=""                    PREFIX=""
481                    ;;                    ;;
482                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)             [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
483                   if test "$ARCHITECTURE" = "X86_64" ; then
484                       AC_MSG_RESULT([win64])
485                       NASM_FORMAT="win64"
486                   else
487                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
488                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
489                   fi
490                   PREFIX="-DWINDOWS"
491                   if test "$GCC" = "yes" ; then
492                       echo 'int main(void) {return 0;}' > conftest.c
493                       $CC -S -o conftest conftest.c
494                       if test `$EGREP -c '_main:' conftest` -eq 0 ; then
495                           PREFIX="$PREFIX -DNO_PREFIX"
496                       fi
497                       rm -f conftest*
498                   fi
499                   MARK_FUNCS=""
500                   ;;
501               *darwin*)
502                   if test "$ARCHITECTURE" = "X86_64" ; then
503                       AC_MSG_RESULT([macho64])
504                       NASM_FORMAT="macho64"
505                   else
506                       AC_MSG_RESULT([macho32])
507                       NASM_FORMAT="macho32"
508                   fi
509                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
510                   MARK_FUNCS=""
511                    ;;                    ;;
512            esac            esac
513    
514            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"  
515            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
516            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
517           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
518           if test "$ARCHITECTURE" = "X86_64" ; then
519                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
520         fi         fi
   
521     else     else
522          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
523          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
524     fi     fi
   
525  fi  fi
526    
527  dnl  dnl
528  dnl PPC  dnl PPC
529  dnl  dnl
530    dnl With the PPC platform we do not use assembly language, we better keep with
531    dnl intrinsic altivec functions and types as they are supported by both Apple
532    dnl and GNU gcc with very slight changes to code which can be sumed up by:
533    dnl
534    dnl Apple:
535    dnl  - compile with the option -arch ppc -faltivec
536    dnl  - define vectors with parentheses vec = (0,0,0,0)
537    dnl GNU
538    dnl  - compile with -maltivec -mabi=altivec
539    dnl  - include <altivec.h> before using intrincic
540    dnl  - define vectors with vec = {0,0,0,0}
541    dnl
542    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
543    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
544    dnl   a -DHAVE_ALTIVEC_H
545    dnl * The vector definition is handled in portab.h thx to
546    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
547    dnl
548    PPC_ALTIVEC_SOURCES=""
549  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
550     AS="\$(CC)"     AS="\$(CC)"
551     AFLAGS="-c"     AFLAGS=""
552     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
553     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
554     AC_MSG_CHECKING([for Altivec support])  
555     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
556           .text  cat > conftest.c << EOF
557           vxor 0,0,0  #include <altivec.h>
558    int main() { return(0); }
559  EOF  EOF
560     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then     if $CC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
561          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
562          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
563          CFLAGS="$CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
564          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
565     else     else
566          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
567            TEMP_ALTIVEC=""
568       fi
569    
570       AC_MSG_CHECKING([for Altivec compiler support])
571    cat > conftest.c << EOF
572    #ifdef HAVE_ALTIVEC_H
573    #include <altivec.h>
574    #endif
575    
576    int main()
577    {
578      vector unsigned int vartest2 = (vector unsigned int)(0);
579      vector unsigned int vartest3 = (vector unsigned int)(1);
580      vartest2 = vec_add(vartest2, vartest3);
581      return(0);
582    }
583    EOF
584       if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
585            AC_MSG_RESULT([yes (Apple)])
586            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
587            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
588       else
589    cat > conftest.c << EOF
590    #ifdef HAVE_ALTIVEC_H
591    #include <altivec.h>
592    #endif
593    
594    int main()
595    {
596      vector unsigned int vartest2 = (vector unsigned int){0};
597      vector unsigned int vartest3 = (vector unsigned int){1};
598      vartest2 = vec_add(vartest2, vartest3);
599      return(0);
600    }
601    EOF
602       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
603            AC_MSG_RESULT([yes (GNU)])
604            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
605            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
606            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
607       else
608            AC_MSG_RESULT([no (ppc support won't be compiled in)])
609            dnl Only C code can be compiled :-(
610            ARCHITECTURE="GENERIC"
611       fi
612     fi     fi
613    
614     rm -f conftest.*     rm -f conftest.*
615  fi  fi
616    
# Line 359  Line 623 
623     AFLAGS="-c"     AFLAGS="-c"
624     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION="s"
625     ASSEMBLY_SOURCES="SRC_IA64"     ASSEMBLY_SOURCES="SRC_IA64"
626    
627       case `basename $CC` in
628            *ecc*)
629                    DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
630    
631                    dnl If the compiler is ecc, then i don't know its options
632                    dnl fallback to "no options"
633                    if test "$force_default_cc_options" = "yes" ; then
634                       our_cflags_defaults=""
635                    fi
636                    ;;
637            *)
638                    DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
639                    ;;
640       esac
641    
642  fi  fi
643    
644  dnl ==========================================================================  dnl ==========================================================================
# Line 370  Line 650 
650  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
651          stdio.h \          stdio.h \
652          signal.h \          signal.h \
653            stdlib.h \
654            string.h \
655            assert.h \
656            math.h \
657          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
658    
659  dnl ==========================================================================  dnl ==========================================================================
660  dnl  dnl
661    dnl Check for pthread
662    dnl
663    dnl ==========================================================================
664    
665    if test x"$pthread" = x"yes" ; then
666            case "$target_os" in
667                mingw32*)
668                    AC_CHECK_HEADER(
669                        [pthread.h],
670                        [AC_CHECK_LIB(
671                            [pthreadGC2],
672                            [pthread_create],
673                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
674                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthreadGC2"],
675                            [AC_CHECK_LIB(
676                                [pthread],
677                                [pthread_create],
678                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
679                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
680                                AC_MSG_WARN(Pthread not supported. No SMP support))])],
681                        AC_MSG_WARN(Pthread not supported. No SMP support))
682                    ;;
683                *)
684                    AC_CHECK_HEADER(
685                        [pthread.h],
686                        [AC_CHECK_LIB(
687                            [pthread],
688                            [pthread_create],
689                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
690                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
691                                [AC_CHECK_LIB(
692                                [c],
693                                [pthread_create],
694                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
695                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS"],
696                                    AC_MSG_WARN(Pthread not supported. No SMP support))])],
697                        AC_MSG_WARN(Pthread not supported. No SMP support))
698                    ;;
699            esac
700    else
701       AC_MSG_WARN(Pthread support disabled. No SMP support)
702    fi
703    
704    dnl ==========================================================================
705    dnl
706    dnl Now we can set CFLAGS if needed
707    dnl
708    dnl ==========================================================================
709    
710    if test "$force_default_cc_options" = "yes" ; then
711       CFLAGS="$our_cflags_defaults"
712    fi
713    
714    dnl ==========================================================================
715    dnl
716    dnl Profiling stuff goes here
717    dnl  - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
718    dnl  - removes incompatible options from CFLAGS
719    dnl
720    dnl ==========================================================================
721    
722    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
723    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
724    
725    if test "$enable_gnuprofile" = "yes" ; then
726       CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
727    fi
728    
729    dnl ==========================================================================
730    dnl Some gcc flags can't be used for gcc >= 3.4.0
731    dnl ==========================================================================
732    
733    if test "$GCC" = "yes" ; then
734    
735            GCC_MAJOR=`$CC -dumpversion | cut -d . -f 1`
736            GCC_MINOR=`$CC -dumpversion | cut -d . -f 2`
737    
738            # GCC 4.x
739            if test "${GCC_MAJOR}" -gt 3 ; then
740                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
741                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
742                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
743                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
744                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
745            fi
746    
747            # GCC 3.4.x
748            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
749                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
750            fi
751    fi
752    
753    
754    dnl ==========================================================================
755    dnl
756  dnl Substitions  dnl Substitions
757  dnl  dnl
758  dnl ==========================================================================  dnl ==========================================================================
# Line 393  Line 772 
772  AC_SUBST(ASSEMBLY_SOURCES)  AC_SUBST(ASSEMBLY_SOURCES)
773  AC_SUBST(CC)  AC_SUBST(CC)
774  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
775  AC_SUBST(OS_LDFLAGS)  AC_SUBST(LDFLAGS)
776  AC_SUBST(DIVX4COMPAT_SOURCES)  AC_SUBST(SPECIFIC_LDFLAGS)
777    AC_SUBST(SPECIFIC_CFLAGS)
778    AC_SUBST(DCT_IA64_SOURCES)
779    AC_SUBST(PPC_ALTIVEC_SOURCES)
780    AC_SUBST(LN_S)
781    AC_SUBST(RANLIB)
782    AC_SUBST(AR)
783    AC_SUBST(API_MAJOR)
784    AC_SUBST(API_MINOR)
785    AC_SUBST(STATIC_LIB)
786    AC_SUBST(PRE_SHARED_LIB)
787    AC_SUBST(SO_API_MAJOR_LINK)
788    AC_SUBST(SO_LINK)
789    AC_SUBST(SHARED_LIB)
790    AC_SUBST(IMPORT_LIB)
791    AC_SUBST(ALTIVEC_CFLAGS)
792    
793  dnl ==========================================================================  dnl ==========================================================================
794  dnl  dnl

Legend:
Removed from v.827  
changed lines
  Added in v.2146

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