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):"
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
}
libogg
libtheora
libvorbis
+ libx264
+ libxvid
memalign_hack
mpegaudio_hp
network
v4l
v4l2
x11grab
- x264
- xvid
zlib
'
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
freetype2
imlib2
inet_aton
- iwmmxt
localtime_r
lrintf
machine_ioctl_bt848_h
malloc_h
memalign
mlib
- mmi
- mmx
os2
sdl
sdl_video_size
threads
"
-TARGET_LIST='
- altivec
- armv5te
- armv6
- iwmmxt
- mmi
- mmx
-'
-
CMDLINE_SELECT="
+ $ARCH_EXT_LIST
$CONFIG_LIST
- $TARGET_LIST
$THREADS_LIST
debug
extra_warnings
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"
-faac_encoder_deps="libfaac"
liba52_decoder_deps="liba52"
libamr_nb_decoder_deps="libamr_nb"
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"
libogg="no"
libtheora="no"
libvorbis="no"
+libx264="no"
+libxvid="no"
mlib="no"
x11grab="no"
-x264="no"
-xvid="no"
zlib="yes"
# configurable options
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"
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=""
}
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
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"
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
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
enabled extra_warnings && check_cflags -Winline
# add some linker flags
+check_ldflags -Wl,--warn-common
check_ldflags $LDLATEFLAGS
# not all compilers support -Os
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"
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
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
echo "EXTRALIBS=$extralibs" >> config.mak
+print_config ARCH_ $TMPH config.mak $ARCH_LIST
print_config HAVE_ $TMPH config.mak $HAVE_LIST
-print_config CONFIG_ $TMPH config.mak $CONFIG_LIST
-print_config TARGET_ $TMPH config.mak $TARGET_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
fi
-for part in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $BSF_LIST $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST; do
- ucname="`toupper $part`"
- config_name="CONFIG_$ucname"
- enabled_name="ENABLE_$ucname"
- if enabled $part; then
- echo "#define $config_name 1" >> $TMPH
- echo "#define $enabled_name 1" >> $TMPH
- echo "$config_name=yes" >> config.mak
- else
- echo "#define $enabled_name 0" >> $TMPH
- fi
-done
-
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
if ! cmp -s $TMPH config.h; then
mv -f $TMPH config.h
libswscale/Makefile \
tests/Makefile \
vhook/Makefile \
- doc/Makefile \
doc/texi2pod.pl \
"
for dir in $DIRS ; do