[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 1382, Mon Mar 22 22:36:25 2004 UTC revision 1788, Fri Nov 23 10:44:11 2007 UTC
# Line 2  Line 2 
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 rc3], [xvid-devel@xvid.org])  AC_PREREQ([2.50])
10    
11    AC_INIT([XviD], [1.1.0-beta2], [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="4"  API_MAJOR="4"
16  API_MINOR="0"  API_MINOR="1"
17    
18  dnl NASM version requirement  dnl NASM version requirement
19  minimum_nasm_patch_version=34  minimum_nasm_patch_version=34
20    minimum_nasm_minor_version=99
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"
# Line 160  Line 165 
165            AC_MSG_RESULT(ia32)            AC_MSG_RESULT(ia32)
166                  ARCHITECTURE="IA32"                  ARCHITECTURE="IA32"
167                  ;;                  ;;
168              x86_64)
169                    AC_MSG_RESULT(x86_64)
170                    ARCHITECTURE="X86_64"
171                    ;;
172                  powerpc)                  powerpc)
173                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
174                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
175                  ;;                  ;;
176                  ia64)                  ia64)
177                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 260  Line 267 
267  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
268  PRE_SHARED_LIB=""  PRE_SHARED_LIB=""
269  case "$target_os" in  case "$target_os" in
270       *bsd*|linux*|irix*|solaris*)       linux*|solaris*)
271            AC_MSG_RESULT([ok])
272            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
273            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
274            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])          AC_MSG_RESULT([ok])
279          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
280          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
# Line 325  Line 339 
339  dnl IA32  dnl IA32
340  dnl  dnl
341    
342  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
343    
344     dnl     dnl
345     dnl Checking nasm existence     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     dnl     dnl
349    
350       found_nasm_comp_prog="no"
351       chosen_asm_prog=""
352    
353       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    
360       dnl if yasm hasn't been found, then check for nasm (not buggy version)
361       if test "$found_nasm_comp_prog" = "no" -a "$ARCHITECTURE" != "X86_64" ; then
362     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
363     if test "$ac_nasm" = "yes" ; then     if test "$ac_nasm" = "yes" ; then
   
364        dnl        dnl
365        dnl Checking nasm patch version        dnl Checking nasm patch version
366        dnl        dnl
367        AC_MSG_CHECKING([for nasm patch version])        AC_MSG_CHECKING([for nasm patch version])
368        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`             nasm_patch=`$nasm_prog -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
369               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        if test -z $nasm_patch ; then        if test -z $nasm_patch ; then
372          nasm_patch=-1          nasm_patch=-1
373        fi        fi
374               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        AC_MSG_RESULT([$nasm_patch])        AC_MSG_RESULT([$nasm_patch])
381    
   
382        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then
383          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])                if test "$nasm_minor" -lt "$minimum_nasm_minor_version" ; then
384          ARCHITECTURE="GENERIC"                   if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
385                        AC_MSG_WARN([nasm version is too old])
386                     else
387                       found_nasm_comp_prog="yes"
388                               chosen_asm_prog="$nasm_prog"
389                     fi
390                  else
391                     found_nasm_comp_prog="yes"
392                         chosen_asm_prog="$nasm_prog"
393                  fi
394        else        else
395                   found_nasm_comp_prog="yes"
396                           chosen_asm_prog="$nasm_prog"
397               fi
398           fi
399       fi
400    
401           dnl           dnl
402           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
403           dnl           dnl
404           AC_MSG_CHECKING([for nasm object format])     if test "$found_nasm_comp_prog" = "yes" ; then
405           AC_MSG_CHECKING([for asm object format])
406           case "$target_os" in           case "$target_os" in
407                *bsd*|linux*|beos|irix*|solaris*)                *bsd*|linux*|beos|irix*|solaris*)
408                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
409                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
410                   MARK_FUNCS="-DMARK_FUNCS"
411                    PREFIX=""                    PREFIX=""
412                    ;;                    ;;
413                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
414                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
415                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
416                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
417                   MARK_FUNCS=""
418                   ;;
419               *darwin*)
420                   AC_MSG_RESULT([macho])
421                   NASM_FORMAT="macho"
422                   PREFIX="-DPREFIX"
423                   MARK_FUNCS=""
424                    ;;                    ;;
425            esac            esac
426    
427            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX"  
428            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
429            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
430           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
431           if test "$ARCHITECTURE" = "X86_64" ; then
432                   AFLAGS=${AFLAGS}" -m amd64"
433         fi         fi
   
434     else     else
435          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
436          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
437     fi     fi
   
438  fi  fi
439    
440  dnl  dnl
441  dnl PPC  dnl PPC
442  dnl  dnl
443    dnl With the PPC platform we do not use assembly language, we better keep with
444    dnl intrinsic altivec functions and types as they are supported by both Apple
445    dnl and GNU gcc with very slight changes to code which can be sumed up by:
446    dnl
447    dnl Apple:
448    dnl  - compile with the option -faltivec
449    dnl  - define vectors with parentheses vec = (0,0,0,0)
450    dnl GNU
451    dnl  - compile with -maltivec -mabi=altivec
452    dnl  - include <altivec.h> before using intrincic
453    dnl  - define vectors with vec = {0,0,0,0}
454    dnl
455    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
456    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
457    dnl   a -DHAVE_ALTIVEC_H
458    dnl * The vector definition is handled in portab.h thx to
459    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
460    dnl
461    PPC_ALTIVEC_SOURCES=""
462  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
463     AS="\$(CC)"     AS="\$(CC)"
464     AFLAGS="-c"     AFLAGS=""
465     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
466     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
467     AC_MSG_CHECKING([for Altivec support])  
468     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
469           .text  cat > conftest.c << EOF
470           vxor 0,0,0  #include <altivec.h>
471    int main() { return(0); }
472  EOF  EOF
473     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then     if $CC -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
474          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
475          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
476          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
477          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
478     else     else
479          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
480            TEMP_ALTIVEC=""
481     fi     fi
482    
483       AC_MSG_CHECKING([for Altivec compiler support])
484    cat > conftest.c << EOF
485    #ifdef HAVE_ALTIVEC_H
486    #include <altivec.h>
487    #endif
488    
489    int main()
490    {
491      vector unsigned int vartest2 = (vector unsigned int)(0);
492      vector unsigned int vartest3 = (vector unsigned int)(1);
493      vartest2 = vec_add(vartest2, vartest3);
494      return(0);
495    }
496    EOF
497       if $CC $TEMP_ALTIVEC -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
498            AC_MSG_RESULT([yes (Apple)])
499            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
500            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
501       else
502    cat > conftest.c << EOF
503    #ifdef HAVE_ALTIVEC_H
504    #include <altivec.h>
505    #endif
506    
507    int main()
508    {
509      vector unsigned int vartest2 = (vector unsigned int){0};
510      vector unsigned int vartest3 = (vector unsigned int){1};
511      vartest2 = vec_add(vartest2, vartest3);
512      return(0);
513    }
514    EOF
515       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
516            AC_MSG_RESULT([yes (GNU)])
517            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
518            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
519       else
520            AC_MSG_RESULT([no (ppc support won't be compiled in)])
521            dnl Only C code can be compiled :-(
522            ARCHITECTURE="GENERIC"
523       fi
524       fi
525    
526     rm -f conftest.*     rm -f conftest.*
527  fi  fi
528    
# Line 439  Line 562 
562  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
563          stdio.h \          stdio.h \
564          signal.h \          signal.h \
565            stdlib.h \
566            string.h \
567            assert.h \
568            math.h \
569          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
570    
571  dnl ==========================================================================  dnl ==========================================================================
572  dnl  dnl
573    dnl Check for pthread
574    dnl
575    dnl ==========================================================================
576    
577    AC_CHECK_HEADER(
578            pthread.h,
579            AC_CHECK_LIB(
580                    pthread,
581                    pthread_create,
582                    AC_CHECK_LIB(
583                            pthread,
584                            pthread_join,
585                            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
586                            SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread",
587                            AC_MSG_WARN(Pthread not supported. No SMP support)),
588                    AC_MSG_WARN(Pthread not supported. No SMP support)),
589            AC_MSG_WARN(Pthread not supported. No SMP support))
590    
591    dnl ==========================================================================
592    dnl
593  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
594  dnl  dnl
595  dnl ==========================================================================  dnl ==========================================================================
# Line 467  Line 614 
614  fi  fi
615    
616  dnl ==========================================================================  dnl ==========================================================================
617    dnl Some gcc flags can't be used for gcc >= 3.4.0
618    dnl ==========================================================================
619    
620    if test "$GCC" = "yes" ; then
621    cat << EOF > test.c
622    #include <stdio.h>
623    int main(int argc, char **argv)
624    {
625            if (*argv[[1]] == 'M') {
626                    printf("%d", __GNUC__);
627            }
628            if (*argv[[1]] == 'm') {
629                    printf("%d", __GNUC_MINOR__);
630            }
631            return 0;
632    }
633    EOF
634            $CC -o gcc-ver test.c
635    
636            GCC_MAJOR=`./gcc-ver M`
637            GCC_MINOR=`./gcc-ver m`
638    
639            rm -f test.c
640            rm -f gcc-ver
641    
642            # GCC 4.x
643            if test "${GCC_MAJOR}" -gt 3 ; then
644                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
645                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
646                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
647                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
648                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
649            fi
650    
651            # GCC 3.4.x
652            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
653                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
654            fi
655    fi
656    
657    
658    dnl ==========================================================================
659  dnl  dnl
660  dnl Substitions  dnl Substitions
661  dnl  dnl
# Line 490  Line 679 
679  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
680  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
681  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
682    AC_SUBST(PPC_ALTIVEC_SOURCES)
683  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
684  AC_SUBST(API_MAJOR)  AC_SUBST(API_MAJOR)
685  AC_SUBST(API_MINOR)  AC_SUBST(API_MINOR)

Legend:
Removed from v.1382  
changed lines
  Added in v.1788

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