📄 configure.in
字号:
dnl ==========================================================================dnldnl Autoconf script for XviDdnldnl Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>dnldnl ==========================================================================AC_PREREQ([2.50])AC_INIT([XviD], [1.1.0], [xvid-devel@xvid.org])AC_CONFIG_SRCDIR(configure.in)dnl Do not forget to increase that when needed.API_MAJOR="4"API_MINOR="1"dnl NASM version requirementminimum_nasm_patch_version=34nasm_prog="nasm"yasm_prog="yasm"dnl Default CFLAGS -- Big impact on overall speedour_cflags_defaults="-Wall"our_cflags_defaults="$our_cflags_defaults -O2"our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"our_cflags_defaults="$our_cflags_defaults -finline-functions"our_cflags_defaults="$our_cflags_defaults -freduce-all-givs"our_cflags_defaults="$our_cflags_defaults -ffast-math"our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"dnl ==========================================================================dnl Features - configure optionsdnl ==========================================================================FEATURES=""dnl Internal DebugAC_ARG_ENABLE(idebug, AC_HELP_STRING([--enable-idebug], [Enable internal debug function]), [if test "$enable_idebug" = "yes" ; then FEATURES="$FEATURES -D_DEBUG" fi])dnl Internal ProfileAC_ARG_ENABLE(iprofile, AC_HELP_STRING([--enable-iprofile], [Enable internal profiling]), [if test "$enable_iprofile" = "yes" ; then FEATURES="$FEATURES -D_PROFILING_" fi])dnl GNU Profiling optionsAC_ARG_ENABLE(gnuprofile, AC_HELP_STRING([--enable-gnuprofile], [Enable profiling informations for gprof]), [if test "$enable_gnuprofile" = "yes" ; then GNU_PROF_CFLAGS="-pg -fprofile-arcs -ftest-coverage" GNU_PROF_LDFLAGS="-pg" fi])dnl Assembly codeAC_ARG_ENABLE(assembly, AC_HELP_STRING([--disable-assembly], [Disable assembly code]), [if test "$enable_assembly" = "no" ; then assembly="no" else if test "$enable_assembly" = "yes" ; then assembly="yes" fi fi], [assembly="yes"])dnl Build as a module not a shared lib on darwinAC_ARG_ENABLE(macosx_module, AC_HELP_STRING([--enable-macosx_module], [Build as a module on MacOS X]), [if test "$enable_macosx_module" = "yes" ; then macosx_module="yes" else macosx_module="no" fi], [macosx_module="no"])dnl ==========================================================================dnl Default install prefix and checks build typednl ==========================================================================AC_PREFIX_DEFAULT("/usr/local")AC_CANONICAL_BUILDAC_CANONICAL_HOSTAC_CANONICAL_TARGETdnl ==========================================================================dnl Check for the C compiler (could be passed on command line)dnl ==========================================================================dnldnl First we test if CFLAGS have been passed on command linednl I do that because autoconf defaults (-g -O2) suck and they would killdnl performance. To prevent that we define a good defult CFLAGS at the enddnl of the script if and only if CFLAGS has not been passed on the commanddnl linednlAC_MSG_CHECKING(whether to use default CFLAGS)if test x"$CFLAGS" = x"" ; then force_default_cc_options="yes" AC_MSG_RESULT([yes])else force_default_cc_options="no" AC_MSG_RESULT([no])fidnl Now we can safely check for the C compilerAC_PROG_CCdnl ==========================================================================dnl Check for the install programdnl ==========================================================================AC_PROG_INSTALLdnl ==========================================================================dnl Check for the ranlib program to generate static library indexdnl ==========================================================================AC_PROG_RANLIBdnl ==========================================================================dnldnl This part looks for:dnldnl ARCHITECTURE : The platform architecturednl - IA32 for mmx, mmx-ext, mmx2, sse assemblydnl - IA64dnl - PPC for PowerPC assembly routinesdnl - GENERIC for plain C sources onlydnldnl BUS: Address bus size (in bits)dnl - 32dnl - 64dnldnl ENDIANNESS: I think you can guess what this thing means :-)dnl - LITTLE_ENDIANdnl - BIG_ENDIANdnldnl ==========================================================================dnldnl Looking what sources have to be compiled according to the CPU typednlARCHITECTURE=""AC_MSG_CHECKING([for whether to use assembly code])if test x"$assembly" = x"yes" ; then AC_MSG_RESULT([yes]) AC_MSG_CHECKING([for architecture type]) case "$target_cpu" in i[[3456]]86) AC_MSG_RESULT(ia32) ARCHITECTURE="IA32" ;; x86_64) AC_MSG_RESULT(x86_64) ARCHITECTURE="X86_64" ;; powerpc) AC_MSG_RESULT(PowerPC) ARCHITECTURE="PPC" ;; ia64) AC_MSG_RESULT(ia64) ARCHITECTURE="IA64" ;; *) AC_MSG_RESULT($target_cpu) ARCHITECTURE="GENERIC" ;; esacelse AC_MSG_RESULT([no]) ARCHITECTURE="GENERIC"fidnldnl Testing address bus lengthdnlBUS=""AC_CHECK_SIZEOF([int *])case "$ac_cv_sizeof_int_p" in 4) BUS="32BIT" ;; 8) BUS="64BIT" ;; *) AC_MSG_ERROR([XviD supports only 32/64 bit architectures]) ;;esacdnldnl Testing endiannessdnlENDIANNESS=""AC_C_BIGENDIAN(ENDIANNESS="BIG_ENDIAN", ENDIANNESS="LITTLE_ENDIAN")dnl ==========================================================================dnldnl Check for OS specific variablesdnl - SHARED_EXTENSION, STATIC_EXTENSION, OBJECT_EXTENSIONdnldnl ==========================================================================AC_MSG_CHECKING(for build extensions)SHARED_EXTENSION=""STATIC_EXTENSION=""OBJECT_EXTENSION=""case "$target_os" in *bsd*|linux*|beos|irix*|solaris*) AC_MSG_RESULT([.so .a .o]) STATIC_EXTENSION="a" SHARED_EXTENSION="so" OBJECT_EXTENSION="o" ;; [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*) AC_MSG_RESULT([.dll .a .obj]) STATIC_EXTENSION="a" SHARED_EXTENSION="dll" OBJECT_EXTENSION="obj" ;; darwin*|raphsody*) if test x"$macosx_module" = x"yes"; then AC_MSG_RESULT([.so .a .o]) SHARED_EXTENSION="so" else AC_MSG_RESULT([.dynlib .a .o]) SHARED_EXTENSION="dylib" fi STATIC_EXTENSION="a" OBJECT_EXTENSION="o" ;; *) AC_MSG_RESULT([Unknown OS - Using .so .a .o]) STATIC_EXTENSION="a" SHARED_EXTENSION="so" OBJECT_EXTENSION="o" ;;esacdnl ==========================================================================dnldnl Determines best options for CC and LDdnl - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGSdnldnl ==========================================================================AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)SPECIFIC_LDFLAGS=""SPECIFIC_CFLAGS=""PRE_SHARED_LIB=""case "$target_os" in linux*|solaris*) AC_MSG_RESULT([ok]) STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)" SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm" SPECIFIC_CFLAGS="-fPIC" ;; *bsd*|irix*) AC_MSG_RESULT([ok]) STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)" SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm" SPECIFIC_CFLAGS="-fPIC" ;; [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*) AC_MSG_RESULT([ok]) STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)" SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)" SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def" SPECIFIC_CFLAGS="-mno-cygwin" ;; darwin*|raphsody*) STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp" if test x"$macosx_module" = x"no"; then AC_MSG_RESULT([dylib options]) SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)" SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)" else AC_MSG_RESULT([module options]) PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o" SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)" SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress" fi ;; beos) AC_MSG_RESULT([ok]) STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)" SPECIFIC_LDFLAGS="-nostart" SPECIFIC_CFLAGS="-fPIC" ;; *) AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)]) STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)" SPECIFIC_LDFLAGS="" SPECIFIC_CFLAGS="" ;;esacif test x"$PRE_SHARED_LIB" = x; then PRE_SHARED_LIB=$SHARED_LIBfidnl ==========================================================================dnldnl Assembler stuffdnl - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCESdnl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -