[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 900, Wed Feb 26 23:28:38 2003 UTC revision 2199, Thu May 2 15:04:57 2024 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], [1.0.0 cvs-snapshot], [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 Do not forget to increase that when needed.  dnl Do not forget to increase that when needed.
15  API_MAJOR="3"  API_MAJOR="4"
16  API_MINOR="0"  API_MINOR="4"
17    
18  dnl NASM version requirement  dnl NASM/YASM version requirement
19  minimum_nasm_patch_version=34  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 -fomit-frame-pointer"  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"  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=""  
 DIVX4_ENCORE=""  
 DIVX4_DECORE=""  
   
 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 59  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 72  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                       DIVX4_ENCORE="encore;"                    else
84                       DIVX4_DECORE="decore;"                       if test "$enable_pthread" = "yes" ; then
85                    fi])                          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 126  Line 141 
141  dnl ==========================================================================  dnl ==========================================================================
142    
143  AC_PROG_RANLIB  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 ==========================================================================  dnl ==========================================================================
159  dnl  dnl
# Line 162  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 196  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 219  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 .a .obj])          AC_MSG_RESULT([.dll .a .obj])
260          STATIC_EXTENSION="a"          STATIC_EXTENSION="a"
261          SHARED_EXTENSION="dll"          SHARED_EXTENSION="dll"
262          OBJECT_EXTENSION="obj"          OBJECT_EXTENSION="obj"
263          ;;          ;;
264       darwin*|raphsody*)       darwin*)
265          AC_MSG_RESULT([.dynlib .a .o])          if test x"$macosx_module" = x"yes"; then
266          STATIC_EXTENSION="a"             AC_MSG_RESULT([.so .a .o])
267               SHARED_EXTENSION="so"
268            else
269               AC_MSG_RESULT([.dylib .a .o])
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 245  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  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
299  SPECIFIC_CFLAGS=""  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([-Wl,-soname,libxvidcore.so -shared -lc -lm])          AC_MSG_RESULT([ok])
308          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
309          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
310          SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION) -shared -lc -lm"          SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
311            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
312            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
313          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
314          ;;          ;;
315       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       *bsd*|irix*)
316          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          AC_MSG_RESULT([ok])
317          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
318          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
319          SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
320          SPECIFIC_CFLAGS="-mno-cygwin"          SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
321            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
322            SPECIFIC_CFLAGS="-fPIC"
323          ;;          ;;
324       darwin*|raphsody*)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*)
325          AC_MSG_RESULT([-dynamiclib -flat_namespace])          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)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
335          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
336          SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace"          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            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
343          SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"          SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
344            if test x"$macosx_module" = x"no"; then
345               AC_MSG_RESULT([dylib options])
346               SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
347               SPECIFIC_LDFLAGS="-Wl,-read_only_relocs,suppress -dynamiclib -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"
348            else
349               AC_MSG_RESULT([module options])
350               PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
351               SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
352               SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
353            fi
354          ;;          ;;
355       beos)       beos)
356            AC_MSG_RESULT([ok])
357          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
358          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
         AC_MSG_RESULT([-nostart])  
359          SPECIFIC_LDFLAGS="-nostart"          SPECIFIC_LDFLAGS="-nostart"
360          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
361          ;;          ;;
362         amigaos)
363            { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
364     $as_echo "ok" >&6; }
365            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
366            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
367            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
368            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
369            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
370            SPECIFIC_CFLAGS="-fPIC"
371            ;;
372       *)       *)
373          AC_MSG_RESULT([Unknown OS - -shared -lc -lm])          AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
374          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
375          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
376          SPECIFIC_LDFLAGS=""          SPECIFIC_LDFLAGS=""
# Line 286  Line 378 
378          ;;          ;;
379  esac  esac
380    
381    if test x"$PRE_SHARED_LIB" = x; then
382      PRE_SHARED_LIB=$SHARED_LIB
383    fi
384    
385    if test x"$IMPORT_LIB" = x; then
386      IMPORT_LIB=$SHARED_LIB
387    fi
388    
389  dnl ==========================================================================  dnl ==========================================================================
390  dnl  dnl
391  dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES  dnl Assembler stuff
392    dnl  - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
393  dnl  dnl
394  dnl ==========================================================================  dnl ==========================================================================
395    
# Line 302  Line 403 
403  dnl IA32  dnl IA32
404  dnl  dnl
405    
406  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
407    
408     dnl     dnl
409     dnl Checking nasm existence     dnl Checking for nasm compatible programs
410     dnl     dnl
    AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])  
    if test "$ac_nasm" = "yes" ; then  
411    
412       found_nasm_comp_prog="no"
413       chosen_asm_prog=""
414    
415       dnl Check for yasm first
416       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
417       if test "$ac_yasm" = "yes" ; then
418        dnl        dnl
419        dnl Checking nasm patch version         dnl Checking yasm version
420        dnl        dnl
421        AC_MSG_CHECKING([for nasm patch version])         AC_MSG_CHECKING([for yasm version])
422        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`         yasm_major=`$yasm_prog --version | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 2`
423        AC_MSG_RESULT([$nasm_patch])         if test -z $yasm_major ; then
424              yasm_major=-1
425           fi
426           AC_MSG_RESULT([$yasm_major])
427    
428        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then         dnl Actually, yasm >= 0.7.99.2161 should be ok
429          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])         dnl But I'm too lazy to check also the patch version...
430          ARCHITECTURE="GENERIC"         if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
431             AC_MSG_WARN([yasm version is too old])
432        else        else
433             found_nasm_comp_prog="yes"
434             chosen_asm_prog="$yasm_prog"
435           fi
436       fi
437    
438       dnl Check for nasm (not buggy version)
439       if test "$found_nasm_comp_prog" = "no" ; then
440           AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
441           if test "$ac_nasm" = "yes" ; then
442               dnl
443               dnl Checking nasm version
444               dnl
445               AC_MSG_CHECKING([for nasm version])
446               nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
447               nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
448               if test -z $nasm_minor ; then
449                  nasm_minor=-1
450               fi
451               if test -z $nasm_major ; then
452                  nasm_major=-1
453               fi
454               AC_MSG_RESULT([$nasm_major])
455    
456               dnl need nasm 2.x for SSE3/4 and X86_64
457               if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
458                 AC_MSG_WARN([nasm version is too old])
459               else
460                 found_nasm_comp_prog="yes"
461                   chosen_asm_prog="$nasm_prog"
462               fi
463           fi
464       fi
465    
466           dnl           dnl
467           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
468           dnl           dnl
469           AC_MSG_CHECKING([for nasm object format])     if test "$found_nasm_comp_prog" = "yes" ; then
470           AC_MSG_CHECKING([for asm object format])
471           case "$target_os" in           case "$target_os" in
472                *bsd*|linux*|beos|irix*|solaris*)             *bsd*|linux*|beos|irix*|solaris*|gnu*|*qnx*)
473                   if test "$ARCHITECTURE" = "X86_64" ; then
474                       AC_MSG_RESULT([elf64])
475                       NASM_FORMAT="elf64"
476                   else
477                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
478                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
479                   fi
480                   MARK_FUNCS="-DMARK_FUNCS"
481                    PREFIX=""                    PREFIX=""
482                    ;;                    ;;
483                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)             [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
484                   if test "$ARCHITECTURE" = "X86_64" ; then
485                       AC_MSG_RESULT([win64])
486                       NASM_FORMAT="win64"
487                   else
488                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
489                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
490                   fi
491                   PREFIX="-DWINDOWS"
492                   if test "$GCC" = "yes" ; then
493                       echo 'int main(void) {return 0;}' > conftest.c
494                       $CC -S -o conftest conftest.c
495                       if test `$EGREP -c '_main:' conftest` -eq 0 ; then
496                           PREFIX="$PREFIX -DNO_PREFIX"
497                       fi
498                       rm -f conftest*
499                   fi
500                   MARK_FUNCS=""
501                   ;;
502               *darwin*)
503                   if test "$ARCHITECTURE" = "X86_64" ; then
504                       AC_MSG_RESULT([macho64])
505                       NASM_FORMAT="macho64"
506                   else
507                       AC_MSG_RESULT([macho32])
508                       NASM_FORMAT="macho32"
509                   fi
510                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
511                   MARK_FUNCS=""
512                    ;;                    ;;
513            esac            esac
514    
515            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"  
516            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
517            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
518           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
519           if test "$ARCHITECTURE" = "X86_64" ; then
520                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
521         fi         fi
   
522     else     else
523          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
524          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
525     fi     fi
   
526  fi  fi
527    
528  dnl  dnl
529  dnl PPC  dnl PPC
530  dnl  dnl
531    dnl With the PPC platform we do not use assembly language, we better keep with
532    dnl intrinsic altivec functions and types as they are supported by both Apple
533    dnl and GNU gcc with very slight changes to code which can be sumed up by:
534    dnl
535    dnl Apple:
536    dnl  - compile with the option -arch ppc -faltivec
537    dnl  - define vectors with parentheses vec = (0,0,0,0)
538    dnl GNU
539    dnl  - compile with -maltivec -mabi=altivec
540    dnl  - include <altivec.h> before using intrincic
541    dnl  - define vectors with vec = {0,0,0,0}
542    dnl
543    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
544    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
545    dnl   a -DHAVE_ALTIVEC_H
546    dnl * The vector definition is handled in portab.h thx to
547    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
548    dnl
549    PPC_ALTIVEC_SOURCES=""
550  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
551     AS="\$(CC)"     AS="\$(CC)"
552     AFLAGS="-c"     AFLAGS=""
553     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
554     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
555     AC_MSG_CHECKING([for Altivec support])  
556     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
557           .text  cat > conftest.c << EOF
558           vxor 0,0,0  #include <altivec.h>
559    int main() { return(0); }
560  EOF  EOF
561     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 || \
562          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
563          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
564          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
565          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
566     else     else
567          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
568            TEMP_ALTIVEC=""
569       fi
570    
571       AC_MSG_CHECKING([for Altivec compiler support])
572    cat > conftest.c << EOF
573    #ifdef HAVE_ALTIVEC_H
574    #include <altivec.h>
575    #endif
576    
577    int main()
578    {
579      vector unsigned int vartest2 = (vector unsigned int)(0);
580      vector unsigned int vartest3 = (vector unsigned int)(1);
581      vartest2 = vec_add(vartest2, vartest3);
582      return(0);
583    }
584    EOF
585       if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
586            AC_MSG_RESULT([yes (Apple)])
587            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
588            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
589       else
590    cat > conftest.c << EOF
591    #ifdef HAVE_ALTIVEC_H
592    #include <altivec.h>
593    #endif
594    
595    int main()
596    {
597      vector unsigned int vartest2 = (vector unsigned int){0};
598      vector unsigned int vartest3 = (vector unsigned int){1};
599      vartest2 = vec_add(vartest2, vartest3);
600      return(0);
601    }
602    EOF
603       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
604            AC_MSG_RESULT([yes (GNU)])
605            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
606            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
607            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
608       else
609            AC_MSG_RESULT([no (ppc support won't be compiled in)])
610            dnl Only C code can be compiled :-(
611            ARCHITECTURE="GENERIC"
612     fi     fi
613       fi
614    
615     rm -f conftest.*     rm -f conftest.*
616  fi  fi
617    
# Line 388  Line 627 
627    
628     case `basename $CC` in     case `basename $CC` in
629          *ecc*)          *ecc*)
630                  DCT_IA64_SOURCES="idct_ia64_ecc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
631    
632                  dnl If the compiler is ecc, then i don't know its options                  dnl If the compiler is ecc, then i don't know its options
633                  dnl fallback to "no options"                  dnl fallback to "no options"
# Line 397  Line 636 
636                  fi                  fi
637                  ;;                  ;;
638          *)          *)
639                  DCT_IA64_SOURCES="idct_ia64_gcc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
640                  ;;                  ;;
641     esac     esac
642    
# Line 412  Line 651 
651  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
652          stdio.h \          stdio.h \
653          signal.h \          signal.h \
654            stdlib.h \
655            string.h \
656            assert.h \
657            math.h \
658          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
659    
660  dnl ==========================================================================  dnl ==========================================================================
661  dnl  dnl
662    dnl Check for pthread
663    dnl
664    dnl ==========================================================================
665    
666    if test x"$pthread" = x"yes" ; then
667            case "$target_os" in
668                mingw32*)
669                    AC_CHECK_HEADER(
670                        [pthread.h],
671                        [AC_CHECK_LIB(
672                            [pthreadGC2],
673                            [pthread_create],
674                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
675                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthreadGC2"],
676                            [AC_CHECK_LIB(
677                                [pthread],
678                                [pthread_create],
679                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
680                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
681                                AC_MSG_WARN(Pthread not supported. No SMP support))])],
682                        AC_MSG_WARN(Pthread not supported. No SMP support))
683                    ;;
684                *)
685                    AC_CHECK_HEADER(
686                        [pthread.h],
687                        [AC_CHECK_LIB(
688                            [pthread],
689                            [pthread_create],
690                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
691                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
692                                [AC_CHECK_LIB(
693                                [c],
694                                [pthread_create],
695                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
696                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS"],
697                                    AC_MSG_WARN(Pthread not supported. No SMP support))])],
698                        AC_MSG_WARN(Pthread not supported. No SMP support))
699                    ;;
700            esac
701    else
702       AC_MSG_WARN(Pthread support disabled. No SMP support)
703    fi
704    
705    dnl ==========================================================================
706    dnl
707  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
708  dnl  dnl
709  dnl ==========================================================================  dnl ==========================================================================
# Line 426  Line 714 
714    
715  dnl ==========================================================================  dnl ==========================================================================
716  dnl  dnl
717    dnl Profiling stuff goes here
718    dnl  - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
719    dnl  - removes incompatible options from CFLAGS
720    dnl
721    dnl ==========================================================================
722    
723    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
724    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
725    
726    if test "$enable_gnuprofile" = "yes" ; then
727       CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
728    fi
729    
730    dnl ==========================================================================
731    dnl Some gcc flags can't be used for gcc >= 3.4.0
732    dnl ==========================================================================
733    
734    if test "$GCC" = "yes" ; then
735    
736            GCC_MAJOR=`$CC -dumpversion | cut -d . -f 1`
737            GCC_MINOR=`$CC -dumpversion | cut -d . -f 2`
738    
739            # GCC 4.x
740            if test "${GCC_MAJOR}" -gt 3 ; then
741                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
742                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
743                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
744                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
745                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
746            fi
747    
748            # GCC 3.4.x
749            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
750                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
751            fi
752    fi
753    
754    
755    dnl ==========================================================================
756    dnl
757  dnl Substitions  dnl Substitions
758  dnl  dnl
759  dnl ==========================================================================  dnl ==========================================================================
# Line 445  Line 773 
773  AC_SUBST(ASSEMBLY_SOURCES)  AC_SUBST(ASSEMBLY_SOURCES)
774  AC_SUBST(CC)  AC_SUBST(CC)
775  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
776    AC_SUBST(LDFLAGS)
777  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
778  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
 AC_SUBST(DIVX4COMPAT_SOURCES)  
779  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
780  AC_SUBST(DIVX4_ENCORE)  AC_SUBST(PPC_ALTIVEC_SOURCES)
781  AC_SUBST(DIVX4_DECORE)  AC_SUBST(LN_S)
782  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
783    AC_SUBST(AR)
784  AC_SUBST(API_MAJOR)  AC_SUBST(API_MAJOR)
785  AC_SUBST(API_MINOR)  AC_SUBST(API_MINOR)
786  AC_SUBST(STATIC_LIB)  AC_SUBST(STATIC_LIB)
787    AC_SUBST(PRE_SHARED_LIB)
788    AC_SUBST(SO_API_MAJOR_LINK)
789    AC_SUBST(SO_LINK)
790  AC_SUBST(SHARED_LIB)  AC_SUBST(SHARED_LIB)
791    AC_SUBST(IMPORT_LIB)
792    AC_SUBST(ALTIVEC_CFLAGS)
793    
794  dnl ==========================================================================  dnl ==========================================================================
795  dnl  dnl
# Line 464  Line 798 
798  dnl ==========================================================================  dnl ==========================================================================
799    
800  AC_CONFIG_FILES(platform.inc)  AC_CONFIG_FILES(platform.inc)
 AC_CONFIG_FILES(libxvidcore.def)  
801    
802  AC_OUTPUT  AC_OUTPUT

Legend:
Removed from v.900  
changed lines
  Added in v.2199

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