[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 828, Mon Feb 10 13:54:19 2003 UTC revision 1412, Mon Apr 5 20:36:37 2004 UTC
# Line 6  Line 6 
6  dnl  dnl
7  dnl ==========================================================================  dnl ==========================================================================
8    
9  AC_INIT([XviD], [0.9.1 (wip)], [xvid-devel@xvid.org])  AC_INIT([XviD], [1.0.0 rc4], [xvid-devel@xvid.org])
10  AC_CONFIG_SRCDIR(configure.in)  AC_CONFIG_SRCDIR(configure.in)
11    
12    dnl Do not forget to increase that when needed.
13    API_MAJOR="4"
14    API_MINOR="0"
15    
16  dnl NASM version requirement  dnl NASM version requirement
17  minimum_nasm_patch_version=34  minimum_nasm_patch_version=34
18  nasm_prog="nasm"  nasm_prog="nasm"
# Line 16  Line 20 
20  dnl Default CFLAGS -- Big impact on overall speed  dnl Default CFLAGS -- Big impact on overall speed
21  our_cflags_defaults="-Wall"  our_cflags_defaults="-Wall"
22  our_cflags_defaults="$our_cflags_defaults -O2"  our_cflags_defaults="$our_cflags_defaults -O2"
23  our_cflags_defaults="$our_cflags_defaults -fPIC"  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
24  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"  our_cflags_defaults="$our_cflags_defaults -finline-functions"
25    our_cflags_defaults="$our_cflags_defaults -freduce-all-givs"
26  our_cflags_defaults="$our_cflags_defaults -ffast-math"  our_cflags_defaults="$our_cflags_defaults -ffast-math"
27  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"  
28    
29  dnl ==========================================================================  dnl ==========================================================================
30  dnl Features - configure options  dnl Features - configure options
31  dnl ==========================================================================  dnl ==========================================================================
32    
33  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])  
34    
35  dnl Internal Debug  dnl Internal Debug
36  AC_ARG_ENABLE(idebug,  AC_ARG_ENABLE(idebug,
# Line 54  Line 48 
48                       FEATURES="$FEATURES -D_PROFILING_"                       FEATURES="$FEATURES -D_PROFILING_"
49                    fi])                    fi])
50    
51    dnl GNU Profiling options
52    AC_ARG_ENABLE(gnuprofile,
53                    AC_HELP_STRING([--enable-gnuprofile],
54                                     [Enable profiling informations for gprof]),
55                     [if test "$enable_gnuprofile" = "yes" ; then
56                         GNU_PROF_CFLAGS="-pg -fprofile-arcs -ftest-coverage"
57                         GNU_PROF_LDFLAGS="-pg"
58                      fi])
59    
60  dnl Assembly code  dnl Assembly code
61  AC_ARG_ENABLE(assembly,  AC_ARG_ENABLE(assembly,
62                  AC_HELP_STRING([--disable-assembly],                  AC_HELP_STRING([--disable-assembly],
# Line 67  Line 70 
70                    fi],                    fi],
71                   [assembly="yes"])                   [assembly="yes"])
72    
73  dnl Internal Debug  dnl Build as a module not a shared lib on darwin
74  AC_ARG_ENABLE(divx4compat,  AC_ARG_ENABLE(macosx_module,
75                  AC_HELP_STRING([--enable-divx4compat],                  AC_HELP_STRING([--enable-macosx_module],
76                                   [Enable DivX4 compatibility API]),                                   [Build as a module on MacOS X]),
77                   [if test "$enable_divx4compat" = "yes" ; then                   [if test "$enable_macosx_module" = "yes" ; then
78                       DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT"                       macosx_module="yes"
79                    fi])                    else
80                         macosx_module="no"
81                      fi],
82                      [macosx_module="no"])
83    
84  dnl ==========================================================================  dnl ==========================================================================
85  dnl Default install prefix and checks build type  dnl Default install prefix and checks build type
# Line 99  Line 104 
104  AC_MSG_CHECKING(whether to use default CFLAGS)  AC_MSG_CHECKING(whether to use default CFLAGS)
105  if test  x"$CFLAGS" = x"" ; then  if test  x"$CFLAGS" = x"" ; then
106     force_default_cc_options="yes"     force_default_cc_options="yes"
    CFLAGS="$our_cflags_defaults"  
107     AC_MSG_RESULT([yes])     AC_MSG_RESULT([yes])
108  else  else
109     force_default_cc_options="no"     force_default_cc_options="no"
# Line 116  Line 120 
120  AC_PROG_INSTALL  AC_PROG_INSTALL
121    
122  dnl ==========================================================================  dnl ==========================================================================
123    dnl Check for the ranlib program to generate static library index
124    dnl ==========================================================================
125    
126    AC_PROG_RANLIB
127    
128    dnl ==========================================================================
129  dnl  dnl
130  dnl This part looks for:  dnl This part looks for:
131  dnl  dnl
# Line 152  Line 162 
162                  ;;                  ;;
163                  powerpc)                  powerpc)
164                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
165                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
166                  ;;                  ;;
167                  ia64)                  ia64)
168                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 213  Line 221 
221          SHARED_EXTENSION="so"          SHARED_EXTENSION="so"
222          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
223          ;;          ;;
224       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
225          AC_MSG_RESULT([.dll .lib .obj])          AC_MSG_RESULT([.dll .a .obj])
226          STATIC_EXTENSION="lib"          STATIC_EXTENSION="a"
227          SHARED_EXTENSION="dll"          SHARED_EXTENSION="dll"
228          OBJECT_EXTENSION="obj"          OBJECT_EXTENSION="obj"
229          ;;          ;;
230       darwin*|raphsody*)       darwin*|raphsody*)
231            if test x"$macosx_module" = x"yes"; then
232               AC_MSG_RESULT([.so .a .o])
233               SHARED_EXTENSION="so"
234            else
235          AC_MSG_RESULT([.dynlib .a .o])          AC_MSG_RESULT([.dynlib .a .o])
         STATIC_EXTENSION="a"  
236          SHARED_EXTENSION="dylib"          SHARED_EXTENSION="dylib"
237            fi
238            STATIC_EXTENSION="a"
239          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
240          ;;          ;;
241       *)       *)
# Line 233  Line 246 
246          ;;          ;;
247  esac  esac
248    
249    dnl ==========================================================================
250    dnl
251    dnl Determines best options for CC and LD
252    dnl  - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
253    dnl
254    dnl ==========================================================================
255    
256  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
257  OS_LDFLAGS=""  SPECIFIC_LDFLAGS=""
258    SPECIFIC_CFLAGS=""
259    PRE_SHARED_LIB=""
260  case "$target_os" in  case "$target_os" in
261       *bsd*|linux*|irix*|solaris*)       *bsd*|linux*|irix*|solaris*)
262          AC_MSG_RESULT([-shared -lc -lm])          AC_MSG_RESULT([ok])
263          OS_LDFLAGS="-shared -lc -lm"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
264          ;;          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
265       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)          SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
266          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          SPECIFIC_CFLAGS="-fPIC"
267          OS_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          ;;
268          CFLAGS="$CFLAGS -mno-cygwin"       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
269            AC_MSG_RESULT([ok])
270            STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)"
271            SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)"
272            SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
273            SPECIFIC_CFLAGS="-mno-cygwin"
274          ;;          ;;
275       darwin*|raphsody*)       darwin*|raphsody*)
276          AC_MSG_RESULT([-dynamiclib])          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
277          OS_LDFLAGS="-dynamiclib -flat_namespace"          SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
278          CFLAGS="$CFLAGS -fno-common"          if test x"$macosx_module" = x"no"; then
279               AC_MSG_RESULT([dylib options])
280               SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
281               SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"
282            else
283               AC_MSG_RESULT([module options])
284               PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
285               SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
286               SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
287            fi
288          ;;          ;;
289       beos)       beos)
290          AC_MSG_RESULT([-nostart])          AC_MSG_RESULT([ok])
291          OS_LDFLAGS="-nostart"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
292            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
293            SPECIFIC_LDFLAGS="-nostart"
294            SPECIFIC_CFLAGS="-fPIC"
295          ;;          ;;
296       *)       *)
297          AC_MSG_RESULT([Unknown OS - -shared -lc -lm])          AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
298          OS_LDFLAGS=""          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
299            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
300            SPECIFIC_LDFLAGS=""
301            SPECIFIC_CFLAGS=""
302          ;;          ;;
303  esac  esac
304    
305    if test x"$PRE_SHARED_LIB" = x; then
306      PRE_SHARED_LIB=$SHARED_LIB
307    fi
308    
309  dnl ==========================================================================  dnl ==========================================================================
310  dnl  dnl
311  dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES  dnl Assembler stuff
312    dnl  - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
313  dnl  dnl
314  dnl ==========================================================================  dnl ==========================================================================
315    
# Line 289  Line 336 
336        dnl        dnl
337        AC_MSG_CHECKING([for nasm patch version])        AC_MSG_CHECKING([for nasm patch version])
338        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
339          if test -z $nasm_patch ; then
340            nasm_patch=-1
341          fi
342        AC_MSG_RESULT([$nasm_patch])        AC_MSG_RESULT([$nasm_patch])
343    
344    
345        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then
346          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])
347          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
# Line 306  Line 357 
357                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
358                    PREFIX=""                    PREFIX=""
359                    ;;                    ;;
360                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
361                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
362                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
363                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
# Line 314  Line 365 
365            esac            esac
366    
367            AS=nasm            AS=nasm
368            AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"            AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX"
369            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
370            ASSEMBLY_SOURCES="SRC_IA32"            ASSEMBLY_SOURCES="SRC_IA32"
371         fi         fi
# Line 329  Line 380 
380  dnl  dnl
381  dnl PPC  dnl PPC
382  dnl  dnl
383    dnl With the PPC platform we do not use assembly language, we better keep with
384    dnl intrinsic altivec functions and types as they are supported by both Apple
385    dnl and GNU gcc with very slight changes to code which can be sumed up by:
386    dnl
387    dnl Apple:
388    dnl  - compile with the option -faltivec
389    dnl  - define vectors with parentheses vec = (0,0,0,0)
390    dnl GNU
391    dnl  - compile with -maltivec -mabi=altivec
392    dnl  - include <altivec.h> before using intrincic
393    dnl  - define vectors with vec = {0,0,0,0}
394    dnl
395    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
396    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
397    dnl   a -DHAVE_ALTIVEC_H
398    dnl * The vector definition is handled in portab.h thx to
399    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
400    dnl
401    PPC_ALTIVEC_SOURCES=""
402  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
403     AS="\$(CC)"     AS="\$(CC)"
404     AFLAGS="-c"     AFLAGS=""
405     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
406     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
407     AC_MSG_CHECKING([for Altivec support])  
408     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
409           .text  cat > conftest.c << EOF
410           vxor 0,0,0  #include <altivec.h>
411    int main() { return(0); }
412  EOF  EOF
413     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then     if $CC -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
414          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
415          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
416          CFLAGS="$CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
417          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
418     else     else
419          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
420            TEMP_ALTIVEC=""
421     fi     fi
422    
423       AC_MSG_CHECKING([for Altivec compiler support])
424    cat > conftest.c << EOF
425    #ifdef HAVE_ALTIVEC_H
426    #include <altivec.h>
427    #endif
428    
429    int main()
430    {
431      vector unsigned int vartest2 = (vector unsigned int)(0);
432      vector unsigned int vartest3 = (vector unsigned int)(1);
433      vartest2 = vec_add(vartest2, vartest3);
434      return(0);
435    }
436    EOF
437       if $CC $TEMP_ALTIVEC -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
438            AC_MSG_RESULT([yes (Apple)])
439            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
440            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
441       else
442    cat > conftest.c << EOF
443    #ifdef HAVE_ALTIVEC_H
444    #include <altivec.h>
445    #endif
446    
447    int main()
448    {
449      vector unsigned int vartest2 = (vector unsigned int){0};
450      vector unsigned int vartest3 = (vector unsigned int){1};
451      vartest2 = vec_add(vartest2, vartest3);
452      return(0);
453    }
454    EOF
455       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
456            AC_MSG_RESULT([yes (GNU)])
457            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
458            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
459       else
460            AC_MSG_RESULT([no (ppc support won't be compiled in)])
461            dnl Only C code can be compiled :-(
462            ARCHITECTURE="GENERIC"
463       fi
464       fi
465    
466     rm -f conftest.*     rm -f conftest.*
467  fi  fi
468    
# Line 359  Line 475 
475     AFLAGS="-c"     AFLAGS="-c"
476     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION="s"
477     ASSEMBLY_SOURCES="SRC_IA64"     ASSEMBLY_SOURCES="SRC_IA64"
478    
479       case `basename $CC` in
480            *ecc*)
481                    DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
482    
483                    dnl If the compiler is ecc, then i don't know its options
484                    dnl fallback to "no options"
485                    if test "$force_default_cc_options" = "yes" ; then
486                       our_cflags_defaults=""
487                    fi
488                    ;;
489            *)
490                    DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
491                    ;;
492       esac
493    
494  fi  fi
495    
496  dnl ==========================================================================  dnl ==========================================================================
# Line 374  Line 506 
506    
507  dnl ==========================================================================  dnl ==========================================================================
508  dnl  dnl
509    dnl Now we can set CFLAGS if needed
510    dnl
511    dnl ==========================================================================
512    
513    if test "$force_default_cc_options" = "yes" ; then
514       CFLAGS="$our_cflags_defaults"
515    fi
516    
517    dnl ==========================================================================
518    dnl
519    dnl Profiling stuff goes here
520    dnl  - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
521    dnl  - removes incompatible options from CFLAGS
522    dnl
523    dnl ==========================================================================
524    
525    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
526    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
527    
528    if test "$enable_gnuprofile" = "yes" ; then
529       CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
530    fi
531    
532    dnl ==========================================================================
533    dnl
534  dnl Substitions  dnl Substitions
535  dnl  dnl
536  dnl ==========================================================================  dnl ==========================================================================
# Line 393  Line 550 
550  AC_SUBST(ASSEMBLY_SOURCES)  AC_SUBST(ASSEMBLY_SOURCES)
551  AC_SUBST(CC)  AC_SUBST(CC)
552  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
553  AC_SUBST(OS_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
554  AC_SUBST(DIVX4COMPAT_SOURCES)  AC_SUBST(SPECIFIC_CFLAGS)
555    AC_SUBST(DCT_IA64_SOURCES)
556    AC_SUBST(PPC_ALTIVEC_SOURCES)
557    AC_SUBST(RANLIB)
558    AC_SUBST(API_MAJOR)
559    AC_SUBST(API_MINOR)
560    AC_SUBST(STATIC_LIB)
561    AC_SUBST(PRE_SHARED_LIB)
562    AC_SUBST(SHARED_LIB)
563    
564  dnl ==========================================================================  dnl ==========================================================================
565  dnl  dnl

Legend:
Removed from v.828  
changed lines
  Added in v.1412

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