]> git.sesse.net Git - ffmpeg/blobdiff - configure
add multiple inclusion guards to headers
[ffmpeg] / configure
index a3c668fca6dc7f5d19ff7afada51aff15e802eff..ac5effcbb8d021177ac8ab617ec5fa41794acdee 100755 (executable)
--- a/configure
+++ b/configure
@@ -96,8 +96,8 @@ show_help(){
   echo "  --enable-libtheora       enable Theora encoding via libtheora [default=no]"
   echo "  --enable-libvorbis       enable Vorbis en/decoding via libvorbis,"
   echo "                           native implementations exist [default=no]"
-  echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
-  echo "  --enable-xvid            enable Xvid encoding via xvidcore,"
+  echo "  --enable-libx264         enable H.264 encoding via x264 [default=no]"
+  echo "  --enable-libxvid         enable Xvid encoding via xvidcore,"
   echo "                           native MPEG-4/Xvid encoder exists [default=no]"
   echo ""
   echo "Advanced options (experts only):"
@@ -310,23 +310,17 @@ print_config(){
     makefile=$3
     shift 3
     for cfg; do
+        ucname="`toupper $cfg`"
         if enabled $cfg; then
-            ucname="${pfx}`toupper $cfg`"
-            echo "#define ${ucname} 1" >> $header
-            echo "${ucname}=yes" >> $makefile
+            echo "#define ${pfx}${ucname} 1" >> $header
+            echo "#define ENABLE_${ucname} 1" >> $header
+            echo "${pfx}${ucname}=yes" >> $makefile
+        else
+            echo "#define ENABLE_${ucname} 0" >> $header
         fi
     done
 }
 
-print_config_enable(){
-    print_config $@
-    shift 3
-    for cfg; do
-        enabled $cfg && val=1 || val=0
-        echo "#define ENABLE_`toupper $cfg` $val" >> $header
-    done
-}
-
 flags_saved(){
     (: ${SAVE_CFLAGS?}) 2>/dev/null
 }
@@ -595,6 +589,8 @@ CONFIG_LIST='
     libogg
     libtheora
     libvorbis
+    libx264
+    libxvid
     memalign_hack
     mpegaudio_hp
     network
@@ -606,8 +602,6 @@ CONFIG_LIST='
     v4l
     v4l2
     x11grab
-    x264
-    xvid
     zlib
 '
 
@@ -618,12 +612,37 @@ THREADS_LIST='
     w32threads
 '
 
-HAVE_LIST="
-    $THREADS_LIST
+ARCH_LIST='
+    alpha
+    armv4l
+    bfin
+    ia64
+    m68k
+    mips
+    parisc
+    powerpc
+    s390
+    sh4
+    sparc
+    sparc64
+    x86
+    x86_32
+    x86_64
+'
+
+ARCH_EXT_LIST='
     altivec
-    altivec_h
     armv5te
     armv6
+    iwmmxt
+    mmi
+    mmx
+'
+
+HAVE_LIST="
+    $ARCH_EXT_LIST
+    $THREADS_LIST
+    altivec_h
     arpa_inet_h
     byteswap_h
     cmov
@@ -643,7 +662,6 @@ HAVE_LIST="
     freetype2
     imlib2
     inet_aton
-    iwmmxt
     localtime_r
     lrintf
     machine_ioctl_bt848_h
@@ -651,8 +669,6 @@ HAVE_LIST="
     malloc_h
     memalign
     mlib
-    mmi
-    mmx
     os2
     sdl
     sdl_video_size
@@ -663,18 +679,9 @@ HAVE_LIST="
     threads
 "
 
-TARGET_LIST='
-    altivec
-    armv5te
-    armv6
-    iwmmxt
-    mmi
-    mmx
-'
-
 CMDLINE_SELECT="
+    $ARCH_EXT_LIST
     $CONFIG_LIST
-    $TARGET_LIST
     $THREADS_LIST
     debug
     extra_warnings
@@ -703,13 +710,10 @@ vc1_decoder_deps="h263_decoder"
 wmv1_decoder_deps="h263_decoder"
 wmv2_decoder_deps="h263_decoder"
 wmv3_decoder_deps="h263_decoder"
-x264_encoder_deps="x264"
-xvid_encoder_deps="xvid"
 zmbv_decoder_deps="zlib"
 zmbv_encoder_deps="zlib"
 
 # external libraries
-aac_decoder_deps="libfaad"
 mpeg4aac_decoder_deps="libfaad"
 liba52_decoder_deps="liba52"
 libamr_nb_decoder_deps="libamr_nb"
@@ -717,14 +721,17 @@ libamr_nb_encoder_deps="libamr_nb"
 libamr_wb_decoder_deps="libamr_wb"
 libamr_wb_encoder_deps="libamr_wb"
 libfaac_encoder_deps="libfaac"
+libfaad_decoder_deps="libfaad"
 libgsm_decoder_deps="libgsm"
 libgsm_encoder_deps="libgsm"
 libgsm_ms_decoder_deps="libgsm"
 libgsm_ms_encoder_deps="libgsm"
+libmp3lame_encoder_deps="libmp3lame"
 libtheora_encoder_deps="libtheora"
-mp3lame_encoder_deps="libmp3lame"
 libvorbis_decoder_deps="libvorbis"
 libvorbis_encoder_deps="libvorbis"
+libx264_encoder_deps="libx264"
+libxvid_encoder_deps="libxvid"
 
 # demuxers / muxers
 ac3_demuxer_deps="ac3_parser"
@@ -843,10 +850,10 @@ libnut="no"
 libogg="no"
 libtheora="no"
 libvorbis="no"
+libx264="no"
+libxvid="no"
 mlib="no"
 x11grab="no"
-x264="no"
-xvid="no"
 zlib="yes"
 
 # configurable options
@@ -881,7 +888,7 @@ thread_type="no"
 SHFLAGS='-shared -Wl,-soname,$@'
 VHOOKSHFLAGS='$(SHFLAGS)'
 LIBOBJFLAGS=""
-FFLDFLAGS=-Wl,--warn-common
+FFLDFLAGS=
 LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
 FFSERVERLDFLAGS=-Wl,-E
 LDCONFIG="ldconfig"
@@ -1168,6 +1175,8 @@ case $targetos in
     targetos=mingw32
     shlibdir="$bindir"
     dv1394="no"
+    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
+    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
     ffserver="no"
     network="no"
     SLIBPREF=""
@@ -1286,8 +1295,8 @@ if disabled gpl ; then
     }
     die_gpl_disabled "The Postprocessing code" pp
     die_gpl_disabled "liba52"                  liba52
-    die_gpl_disabled "libxvidcore"             xvid
-    die_gpl_disabled "x264"                    x264
+    die_gpl_disabled "libx264"                 libx264
+    die_gpl_disabled "libxvidcore"             libxvid
     die_gpl_disabled "FAAD2"                   libfaad2
     die_gpl_disabled "The X11 grabber"         x11grab
     die_gpl_disabled "The software scaler"     swscaler
@@ -1365,6 +1374,11 @@ if test $cpu != "generic"; then
             warn_altivec disabled PPC970
             POWERPCMODE="64bits"
         ;;
+        Cell|CELL|cell)
+            add_cflags "-mcpu=cell"
+            warn_altivec disabled Cell
+            POWERPCMODE="64bits"
+        ;;
         # targets that do NOT support conditional mov (cmov)
         i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
             add_cflags "-march=$cpu"
@@ -1630,8 +1644,8 @@ enabled libtheora  && require libtheora theora/theora.h theora_info_init -ltheor
 enabled libvorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
 enabled libogg     && require libogg ogg/ogg.h ogg_sync_init -logg
 enabled libnut     && require libnut libnut.h nut_demuxer_init -lnut
-enabled xvid       && require XviD xvid.h xvid_global -lxvidcore
-enabled x264       && require x264 x264.h x264_encoder_open -lx264
+enabled libx264    && require x264 x264.h x264_encoder_open -lx264
+enabled libxvid    && require Xvid xvid.h xvid_global -lxvidcore
 enabled dc1394     && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
 enabled mlib       && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
@@ -1662,14 +1676,16 @@ elif check_func dlopen -ldl; then
     ldl=-ldl
 fi
 
+check_func fork
+
 test "$vhook" = "default" && vhook="$dlopen"
 
 enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
 
-if test "$targetos" = cygwin && enabled static ; then
+if test "$targetos" = cygwin -o "$targetos" = mingw32 && enabled_all static vhook ; then
     vhook="no"
     echo
-    echo "At the moment vhooks don't work on Cygwin static builds."
+    echo "At the moment vhooks don't work on Cygwin or MinGW static builds."
     echo "Patches welcome."
     echo
 fi
@@ -1776,6 +1792,7 @@ check_cflags -Wno-pointer-sign
 enabled extra_warnings && check_cflags -Winline
 
 # add some linker flags
+check_ldflags -Wl,--warn-common
 check_ldflags $LDLATEFLAGS
 
 # not all compilers support -Os
@@ -1894,8 +1911,8 @@ echo "libnut enabled            $libnut"
 echo "libogg enabled            $libogg"
 echo "libtheora enabled         $libtheora"
 echo "libvorbis enabled         $libvorbis"
-echo "x264 enabled              $x264"
-echo "XviD enabled              $xvid"
+echo "x264 enabled              $libx264"
+echo "XviD enabled              $libxvid"
 echo "zlib enabled              $zlib"
 if disabled gpl; then
     echo "License: LGPL"
@@ -1948,25 +1965,18 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak
 echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
 echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
 
-ucarch=`toupper $arch`
-echo "TARGET_ARCH_${ucarch}=yes" >> config.mak
-echo "#define ARCH_${ucarch} 1" >> $TMPH
+enable $arch
 
 # special cases
+enabled_any x86_32 x86_64 && enable x86
+enabled     sparc64       && enable sparc
+
 case "$arch" in
-    x86_32|x86_64)
-        echo "TARGET_ARCH_X86=yes" >> config.mak
-        echo "#define ARCH_X86 1" >> $TMPH
-        ;;
     powerpc)
         if test "$POWERPCMODE" = "64bits"; then
             echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
         fi
         ;;
-    sparc64)
-        echo "TARGET_ARCH_SPARC=yes" >> config.mak
-        echo "#define ARCH_SPARC 1" >> $TMPH
-        ;;
 esac
 
 if enabled bigendian; then
@@ -2015,16 +2025,16 @@ fi
 echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
 echo "EXTRALIBS=$extralibs" >> config.mak
 
-print_config        HAVE_   $TMPH config.mak $HAVE_LIST
-print_config        TARGET_ $TMPH config.mak $TARGET_LIST
-print_config_enable CONFIG_ $TMPH config.mak $CONFIG_LIST   \
-                                             $DECODER_LIST  \
-                                             $ENCODER_LIST  \
-                                             $PARSER_LIST   \
-                                             $BSF_LIST      \
-                                             $DEMUXER_LIST  \
-                                             $MUXER_LIST    \
-                                             $PROTOCOL_LIST \
+print_config ARCH_   $TMPH config.mak $ARCH_LIST
+print_config HAVE_   $TMPH config.mak $HAVE_LIST
+print_config CONFIG_ $TMPH config.mak $CONFIG_LIST   \
+                                      $DECODER_LIST  \
+                                      $ENCODER_LIST  \
+                                      $PARSER_LIST   \
+                                      $BSF_LIST      \
+                                      $DEMUXER_LIST  \
+                                      $MUXER_LIST    \
+                                      $PROTOCOL_LIST \
 
 if test "$targetos" = darwin; then
   echo "#define CONFIG_DARWIN 1"  >> $TMPH