configure
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:8k
源码类别:

Audio

开发平台:

Visual C++

  1. #! /bin/sh
  2. if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
  3. echo "Usage: ./configure [options]"
  4. echo ""
  5. echo "available options:"
  6. echo ""
  7. echo "  --help                   print this message"
  8. echo "  --enable-avis-input      enables avisynth input (win32 only)"
  9. echo "  --enable-mp4-output      enables mp4 output (using gpac)"
  10. echo "  --enable-vfw             compiles the VfW frontend"
  11. echo "  --enable-pthread         enables multithreaded encoding"
  12. echo "  --enable-debug           adds -g, doesn't strip"
  13. echo "  --enable-gprof           adds -pg, doesn't strip"
  14. echo "  --enable-visualize       enables visualization (X11 only)"
  15. echo "  --enable-pic             build position-independent code"
  16. echo "  --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS"
  17. echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS"
  18. echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS"
  19. echo ""
  20. exit 1
  21. fi
  22. cc_check() {
  23.     rm -f conftest*
  24.     cat > conftest.c << EOF
  25. #include <$1>
  26. int main () { $3 return 0; }
  27. EOF
  28.     $CC $CFLAGS $LDFLAGS $2 conftest.c -o conftest 2>$DEVNULL
  29.     TMP="$?"
  30.     rm -f conftest.c conftest*
  31.     return $TMP
  32. }
  33. rm -f config.h config.mak x264.pc
  34. prefix='/usr/local'
  35. exec_prefix='${prefix}'
  36. bindir='${exec_prefix}/bin'
  37. libdir='${exec_prefix}/lib'
  38. includedir='${prefix}/include'
  39. DEVNULL='/dev/null'
  40. avis_input="auto"
  41. mp4_output="auto"
  42. pthread="auto"
  43. debug="no"
  44. gprof="no"
  45. pic="no"
  46. vfw="no"
  47. vis="no"
  48. CC="gcc"
  49. CFLAGS="-Wall -I. -O4 -ffast-math -D__X264__"
  50. LDFLAGS=""
  51. HAVE_GETOPT_LONG=1
  52. AS="nasm"
  53. ASFLAGS=""
  54. EXE=""
  55. UNAMES="`uname -s`"
  56. case "$UNAMES" in
  57.   BeOS)
  58.     SYS="BEOS"
  59.     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
  60.     ;;
  61.   Darwin)
  62.     SYS="MACOSX"
  63.     CFLAGS="$CFLAGS -falign-loops=16"
  64.     LDFLAGS="$LDFLAGS -lm -lmx"
  65.     ;;
  66.   FreeBSD)
  67.     SYS="FREEBSD"
  68.     LDFLAGS="$LDFLAGS -lm"
  69.     ;;
  70.   NetBSD)
  71.     SYS="NETBSD"
  72.     LDFLAGS="$LDFLAGS -lm"
  73.     ;;
  74.   Linux)
  75.     SYS="LINUX"
  76.     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
  77.     LDFLAGS="$LDFLAGS -lm"
  78.     ;;
  79.   CYGWIN*)
  80.     SYS="CYGWIN"
  81.     CFLAGS="$CFLAGS -mno-cygwin"
  82.     LDFLAGS="$LDFLAGS -mno-cygwin"
  83.     EXE=".exe"
  84.     DEVNULL="NUL"
  85.     vfw="yes"
  86.     ;;
  87.   MINGW*)
  88.     SYS="MINGW"
  89.     EXE=".exe"
  90.     DEVNULL="NUL"
  91.     vfw="yes"
  92.     ;;
  93.   SunOS)
  94.     SYS="SunOS"
  95.     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
  96.     LDFLAGS="$LDFLAGS -lm"
  97.     HAVE_GETOPT_LONG=0
  98.     ;;
  99.   *)
  100.     echo "Unknown system $UNAMES, edit the configure"
  101.     exit 1
  102.     ;;
  103. esac
  104. UNAMEM="`uname -m`"
  105. case "$UNAMEM" in
  106.   i386|i486|i586|i686|BePC)
  107.     ARCH="X86"
  108.     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
  109.     AS="nasm"
  110.     ASFLAGS="-O2"
  111.     if [ "$SYS" = MACOSX ]; then
  112.       ASFLAGS="$ASFLAGS -f macho -DPREFIX"
  113.     elif [ "$SYS" = CYGWIN -o "$SYS" = MINGW ]; then
  114.       ASFLAGS="$ASFLAGS -f win32 -DPREFIX"
  115.     elif [ "$SYS" = FREEBSD -o "$SYS" = NETBSD ]; then
  116.       ASFLAGS="$ASFLAGS -f aoutb"
  117.     else
  118.       ASFLAGS="$ASFLAGS -f elf"
  119.     fi
  120.     ;;
  121.   x86_64)
  122.     ARCH="X86_64"
  123.     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
  124.     AS="yasm"
  125.     ASFLAGS="-f elf -m amd64"
  126.     ;;
  127.   "Power Macintosh"|ppc)
  128.     ARCH="PPC"
  129.     if [ $SYS = MACOSX ]
  130.     then
  131.       CFLAGS="$CFLAGS -faltivec"
  132.     else
  133.       CFLAGS="$CFLAGS -maltivec -mabi=altivec"
  134.     fi
  135.     ;;
  136.   sun4m|sun4d|sparc|sparc64)
  137.     ARCH="Sparc"
  138.     ;;
  139.   sun4u)
  140.     ARCH="UltraSparc"
  141.     CFLAGS="$CFLAGS -mcpu=ultrasparc"
  142.     LDFLAGS="$LDFLAGS -mcpu=ultrasparc"
  143.     AS="as"
  144.     ASFLAGS="-xarch=v8plusa"
  145.     ;;
  146.   ia64)
  147.     ARCH="IA64"
  148.     ;;
  149.   alpha)
  150.     ARCH="ALPHA"
  151.     ;;
  152.   mips|mipsel)
  153.     ARCH="MIPS"
  154.     ;;
  155.   m68k)
  156.     ARCH="M68K"
  157.     ;;
  158.   arm|armv5tel)
  159.     ARCH="ARM"
  160.     ;;
  161.   s390|s390x)
  162.     ARCH="S390"
  163.     ;;
  164.   parisc|parisc64)
  165.     ARCH="PARISC"
  166.     ;;
  167.   *)
  168.     echo "Unknown platform $UNAMEM, edit the configure"
  169.     exit 1
  170.     ;;
  171. esac
  172. CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"
  173. # parse options
  174. for opt do
  175.     optarg="${opt#*=}"
  176.     case "$opt" in
  177.         --prefix=*)
  178.             prefix="$optarg"
  179.             ;;
  180.         --exec-prefix=*)
  181.             exec_prefix="$optarg"
  182.             ;;
  183.         --bindir=*)
  184.             bindir="$optarg"
  185.             ;;
  186.         --libdir=*)
  187.             libdir="$optarg"
  188.             ;;
  189.         --includedir=*)
  190.             includedir="$optarg"
  191.             ;;
  192.         --enable-avis-input)
  193.             avis_input="yes"
  194.             ;;
  195.         --disable-avis-input)
  196.             avis_input="no"
  197.             ;;
  198.         --enable-mp4-output)
  199.             mp4_output="yes"
  200.             ;;
  201.         --disable-mp4-output)
  202.             mp4_output="no"
  203.             ;;
  204.         --extra-asflags=*)
  205.             ASFLAGS="$ASFLAGS ${opt#--extra-asflags=}"
  206.             ;;
  207.         --extra-cflags=*)
  208.             CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
  209.             VFW_CFLAGS="${opt#--extra-cflags=}"
  210.             ;;
  211.         --extra-ldflags=*)
  212.             LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
  213.             VFW_LDFLAGS="${opt#--extra-ldflags=}"
  214.             ;;
  215.         --enable-pthread)
  216.             pthread="yes"
  217.             ;;
  218.         --disable-pthread)
  219.             pthread="no"
  220.             ;;
  221.         --enable-debug)
  222.             CFLAGS="$CFLAGS -g"
  223.             debug="yes"
  224.             ;;
  225.         --enable-gprof)
  226.             CFLAGS="$CFLAGS -pg"
  227.             LDFLAGS="$LDFLAGS -pg"
  228.             gprof="yes"
  229.             ;;
  230.         --enable-pic)
  231.             CFLAGS="$CFLAGS -fPIC"
  232.             ASFLAGS="$ASFLAGS -D__PIC__"
  233.             pic="yes"
  234.             ;;
  235.         --enable-vfw)
  236.             vfw="yes"
  237.             ;;
  238.         --disable-vfw)
  239.             vfw="no"
  240.             ;;
  241.         --enable-visualize)
  242.             LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
  243.             CFLAGS="$CFLAGS -DVISUALIZE=1"
  244.             vis="yes"
  245.             ;;
  246.         *)
  247.             echo "Unknown option $opt, ignored"
  248.             ;;
  249.     esac
  250. done
  251. # autodetect options that weren't forced nor disabled
  252. if test "$pthread" = "auto" ; then
  253.     case $SYS in
  254.         MINGW|CYGWIN|BEOS)
  255.             pthread="yes"
  256.             ;;
  257.         *)
  258.             pthread="no"
  259.             cc_check pthread.h -lpthread && pthread="yes"
  260.             ;;
  261.     esac
  262. fi
  263. if test "$pthread" = "yes" ; then
  264.     CFLAGS="$CFLAGS -DHAVE_PTHREAD=1"
  265.     case $SYS in
  266.         MINGW|CYGWIN|BEOS)
  267.             ;;
  268.         *) LDFLAGS="$LDFLAGS -lpthread"
  269.             ;;
  270.     esac
  271. fi
  272. MP4_LDFLAGS="-lgpac_static"
  273. if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
  274.     MP4_LDFLAGS="$MP4_LDFLAGS -lwinmm"
  275. fi
  276. if [ "$mp4_output" = "auto" ] ; then
  277.     mp4_output="no"
  278.     cc_check gpac/isomedia.h "$MP4_LDFLAGS" && mp4_output="yes"
  279. fi
  280. if [ "$mp4_output" = "yes" ] ; then
  281.     echo "#define MP4_OUTPUT" >> config.h
  282.     LDFLAGS="$LDFLAGS $MP4_LDFLAGS"
  283. fi
  284. if [ "$avis_input" = "auto" ] ; then
  285.     if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
  286.         avis_input="yes"
  287.     else
  288.         avis_input="no";
  289.     fi
  290. fi
  291. if [ "$avis_input" = "yes" ] ; then
  292.     echo "#define AVIS_INPUT" >> config.h
  293.     LDFLAGS="$LDFLAGS -lvfw32"
  294. fi
  295. if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then
  296.     CFLAGS="$CFLAGS -s -fomit-frame-pointer"
  297.     LDFLAGS="$LDFLAGS -s"
  298.     VFW_LDFLAGS="$VFW_LDFLAGS -s"
  299. fi
  300. if cc_check "stdio.h" "" "fseeko(stdin,0,0);" ; then
  301.     echo "#define fseek fseeko" >> config.h
  302.     echo "#define ftell ftello" >> config.h
  303. elif cc_check "stdio.h" "" "fseeko64(stdin,0,0);" ; then
  304.     echo "#define fseek fseeko64" >> config.h
  305.     echo "#define ftell ftello64" >> config.h
  306. fi
  307. # generate config files
  308. cat > config.mak << EOF
  309. prefix=$prefix
  310. exec_prefix=$exec_prefix
  311. bindir=$bindir
  312. libdir=$libdir
  313. includedir=$includedir
  314. ARCH=$ARCH
  315. SYS=$SYS
  316. CC=$CC
  317. CFLAGS=$CFLAGS
  318. LDFLAGS=$LDFLAGS
  319. AS=$AS
  320. ASFLAGS=$ASFLAGS
  321. VFW=$vfw
  322. EXE=$EXE
  323. VIS=$vis
  324. HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
  325. DEVNULL=$DEVNULL
  326. CONFIGURE_ARGS=$@
  327. EOF
  328. if [ "$vfw" = "yes" ]; then
  329.     rm -f vfw/build/cygwin/config.mak
  330.     cat > vfw/build/cygwin/config.mak << EOF
  331. CFLAGS=$VFW_CFLAGS
  332. LDFLAGS=$VFW_LDFLAGS
  333. EOF
  334.     echo "default: x264vfw.dll" >> config.mak
  335. fi
  336. ./version.sh
  337. cat > x264.pc << EOF
  338. prefix=$prefix
  339. exec_prefix=$exec_prefix
  340. libdir=$libdir
  341. includedir=$includedir
  342. Name: x264
  343. Description: H.264 (MPEG4 AVC) encoder library
  344. Version: $(grep POINTVER < config.h | sed -e 's/.* "//; s/".*//')
  345. Libs: -L$libdir -lx264
  346. Cflags: -I$includedir
  347. EOF
  348. echo "Platform:   $ARCH"
  349. echo "System:     $SYS"
  350. echo "avis input: $avis_input"
  351. echo "mp4 output: $mp4_output"
  352. echo "pthread:    $pthread"
  353. echo "vfw:        $vfw"
  354. echo "debug:      $debug"
  355. echo "gprof:      $gprof"
  356. echo "PIC:        $pic"
  357. echo "visualize:  $vis"
  358. echo
  359. echo "You can run 'make' or 'make fprofiled' now."