echo
echo "External library support:"
echo " --enable-sunmlib use Sun medialib [default=no]"
- echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
- echo " and libraw1394 [default=no]"
echo " --enable-liba52 enable GPLed liba52 support [default=no]"
echo " --enable-liba52bin open liba52.so.0 at runtime [default=no]"
echo " --enable-avisynth allow reading AVISynth script files [default=no]"
echo " --enable-libamr-nb enable libamr-nb floating point audio codec"
echo " --enable-libamr-wb enable libamr-wb floating point audio codec"
+ echo " --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394"
+ echo " and libraw1394 [default=no]"
echo " --enable-libfaac enable FAAC support via libfaac [default=no]"
echo " --enable-libfaad enable FAAD support via libfaad [default=no]"
echo " --enable-libfaadbin open libfaad.so.0 at runtime [default=no]"
echo " --disable-armv6 disable armv6 usage"
echo " --disable-iwmmxt disable iwmmxt usage"
echo " --disable-altivec disable AltiVec usage"
- echo " --disable-audio-oss disable OSS audio support [default=no]"
- echo " --disable-audio-beos disable BeOS audio support [default=no]"
- echo " --disable-v4l disable video4linux grabbing [default=no]"
- echo " --disable-v4l2 disable video4linux2 grabbing [default=no]"
echo " --disable-bktr disable bktr video grabbing [default=no]"
- echo " --disable-dv1394 disable DV1394 grabbing [default=no]"
echo " --disable-network disable network support [default=no]"
echo " --disable-ipv6 disable ipv6 support [default=no]"
echo " --disable-zlib disable zlib [default=no]"
done
}
+is_in(){
+ value=$1
+ shift
+ for var in $*; do
+ [ $var = $value ] && return 0
+ done
+ return 1
+}
+
check_deps(){
for cfg; do
enabled ${cfg}_checking && die "Circular dependency for $cfg."
"$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
}
-CONFIG_LIST='
- audio_beos
- audio_oss
- avisynth
- beos_netserver
- bktr
+COMPONENT_LIST="
bsfs
- dc1394
decoders
demuxers
- dv1394
encoders
+ muxers
+ parsers
+ protocols
+"
+
+CONFIG_LIST="
+ $COMPONENT_LIST
+ avisynth
+ beos_netserver
+ bktr
ffmpeg
ffplay
ffserver
libamr
libamr_nb
libamr_wb
+ libdc1394
libfaac
libfaad
libfaadbin
libxvid
memalign_hack
mpegaudio_hp
- muxers
network
- parsers
powerpc_perf
pp
- protocols
small
swscaler
vhook
- v4l
- v4l2
x11grab
zlib
-'
+"
THREADS_LIST='
beosthreads
altivec_h
arpa_inet_h
byteswap_h
+ closesocket
cmov
conio_h
dcbzl
fast_unaligned
fork
freetype2
+ gethrtime
GetProcessTimes
getrusage
imlib2
sys_soundcard_h
termios_h
threads
+ winsock2_h
"
CMDLINE_SELECT="
# demuxers / muxers
ac3_demuxer_deps="ac3_parser"
-audio_demuxer_deps_any="audio_oss audio_beos"
-audio_muxer_deps_any="audio_oss audio_beos"
-dc1394_demuxer_deps="dc1394"
+audio_beos_demuxer_deps="audio_beos"
+audio_beos_muxer_deps="audio_beos"
+bktr_demuxer_deps="bktr"
dv1394_demuxer_deps="dv1394"
+libdc1394_demuxer_deps="libdc1394"
libnut_demuxer_deps="libnut"
libnut_muxer_deps="libnut"
mp3_demuxer_deps="mpegaudio_parser"
ogg_muxer_deps="libogg"
+oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
+oss_muxer_deps_any="soundcard_h sys_soundcard_h"
redir_demuxer_deps="network"
rtp_muxer_deps="network mpegts_demuxer"
rtsp_demuxer_deps="rtp_protocol rtp_muxer"
sdp_demuxer_deps="rtsp_demuxer"
-v4l2_demuxer_deps="v4l2"
-video_grab_bktr_demuxer_deps="bktr"
-video_grab_v4l_demuxer_deps="v4l"
+v4l2_demuxer_deps="linux_videodev2_h"
+v4l_demuxer_deps="linux_videodev_h"
x11_grab_device_demuxer_deps="x11grab"
# protocols
targetos=$(tolower $(uname -s))
# non-library system interfaces
-audio_oss="yes"
bktr="yes"
-dv1394="yes"
-v4l2="yes"
-v4l="yes"
# libraries
zlib="yes"
;;
--list-*)
NAME="${opt#--list-}"
+ is_in $NAME $COMPONENT_LIST || die_unknown $opt
NAME=$(toupper ${NAME%s})
eval show_list \$${NAME}_LIST
;;
esac
LDCONFIG="echo ignoring ldconfig"
SHFLAGS=-nostart
- # disable Linux things
- dv1394="no"
# enable BeOS things
- disabled audio_beos || enable_audio_beos
+ audio_beos="yes"
# no need for libm, but the inet stuff
# Check for BONE
# XXX: actually should check for NOT net_server
osextralibs="-lnet"
fi ;;
sunos)
- dv1394="no"
FFSERVERLDFLAGS=""
SHFLAGS="-shared -Wl,-h,\$@"
add_extralibs "-lsocket -lnsl"
;;
netbsd)
- dv1394="no"
add_extralibs "-lossaudio"
;;
openbsd)
- dv1394="no"
need_memalign="no"
LIBOBJFLAGS="\$(PIC)"
LDCONFIG="ldconfig -m \$(SHLIBDIR)"
add_extralibs "-lossaudio"
;;
freebsd)
- dv1394="no"
need_memalign="no"
add_cflags "-pthread"
;;
gnu/kfreebsd)
- dv1394="no"
add_cflags "-pthread"
;;
bsd/os)
- dv1394="no"
osextralibs="-lpoll -lgnugetopt -lm"
strip="strip -d"
;;
darwin)
- dv1394="no"
need_memalign="no"
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(SHLIBDIR)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@'
mingw32*)
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)'
+ VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
+ VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+ if enabled swscaler; then
+ VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
+ VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
+ fi
ffserver="no"
- network="no"
SLIBPREF=""
SLIBSUF=".dll"
EXESUF=".exe"
SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(SHLIBDIR)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base"
- enabled network && add_extralibs -lws2_32
;;
cygwin*)
targetos=cygwin
shlibdir="$bindir"
- dv1394="no"
VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
if enabled swscaler; then
;;
linux)
LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
+ dv1394="yes"
;;
irix*)
targetos=irix
test -z "$need_memalign" && need_memalign="$mmx"
#Darwin CC versions
-needmdynamicnopic="no"
if test $targetos = darwin; then
if test -n "`$cc -v 2>&1 | grep xlc`"; then
add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
add_cflags "-no-cpp-precomp -pipe"
check_cflags "-force_cpusubtype_ALL"
check_cflags "-Wno-sign-compare"
- disabled shared && needmdynamicnopic="yes"
+ disabled shared && add_cflags -mdynamic-no-pic
fi
fi
-enabled needmdynamicnopic && add_cflags -mdynamic-no-pic
disabled optimize || add_cflags -fomit-frame-pointer
# ---
# big/little-endian test
-if ! enabled cross_compile; then
- check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
-#include <inttypes.h>
-int main(int argc, char ** argv){
- volatile uint32_t i=0x01234567;
- return (*((uint8_t*)(&i))) == 0x67;
-}
+check_cc <<EOF || die "endian test failed"
+unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
-else
- # programs cannot be launched if cross compiling, so make a static guess
- if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
- bigendian="yes"
- fi
-fi
+grep -q BIGE $TMPO && enable bigendian
# ---
# check availability of some header files
check_header byteswap.h
check_func mkstemp
+check_func gethrtime
check_header termios.h
check_header conio.h
-check_header arpa/inet.h
-
check_func inet_aton
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
enabled_any libamr_nb libamr_wb && enable libamr
# these are off by default, so fail if requested and not available
+enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
enabled liba52 && require liba52 a52dec/a52.h a52_init -la52
enabled libamr_nb && require libamrnb amrnb/interf_dec.h Speech_Decode_Frame_init -lamrnb -lm
enabled libamr_wb && require libamrwb amrwb/dec_if.h D_IF_init -lamrwb -lm
+enabled libdc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
+enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
+enabled libfaad && require2 libfaad faad.h faacDecOpen -lfaad
enabled libgsm && require libgsm gsm.h gsm_create -lgsm
enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
+enabled libnut && require libnut libnut.h nut_demuxer_init -lnut
+enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg
enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheora -logg
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 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
-enabled libfaad && require2 libfaad faad.h faacDecOpen -lfaad
-enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
# disable the native AC-3 decoder if liba52 is enabled
enabled liba52 && disable ac3_decoder
texi2html -version >/dev/null 2>&1 && enable texi2html || disable texi2html
+##########################################
+# Network check
+
+if enabled network; then
+ # Prefer arpa/inet.h over winsock2
+ if check_header arpa/inet.h ; then
+ check_func closesocket
+ elif check_header winsock2.h ; then
+ add_extralibs -lws2_32
+ check_func2 winsock2.h closesocket
+ fi
+fi
+
##########################################
# IPv6 check
}
EOF
-enabled v4l && check_header linux/videodev.h || disable v4l
-enabled v4l2 && check_header linux/videodev2.h || disable v4l2
+check_header linux/videodev.h
+check_header linux/videodev2.h
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
if enabled bktr; then
disable bktr
fi
-enabled audio_oss &&
- check_header sys/soundcard.h ||
- check_header soundcard.h ||
- disable audio_oss
+check_header sys/soundcard.h
+check_header soundcard.h
# Deal with the x11 frame grabber
enabled x11grab &&
check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
$BSF_LIST $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST
+enabled libdc1394 && append pkg_requires "libraw1394"
enabled libogg && append pkg_requires "ogg >= 1.1"
enabled libtheora && append pkg_requires "theora"
enabled libvorbis && append pkg_requires "vorbis vorbisenc"
-enabled dc1394 && append pkg_requires "libraw1394"
echo "install prefix $PREFIX"
echo "source path $source_path"
echo "MMX enabled ${mmx-no}"
echo "CMOV enabled ${cmov-no}"
echo "CMOV is fast ${fast_cmov-no}"
+ echo "EBX available ${ebx_available-no}"
+ echo "EBP available ${ebp_available-no}"
fi
if test $arch = "armv4l"; then
echo "ARMv5TE enabled ${armv5te-no}"
echo "liba52 dlopened ${liba52bin-no}"
echo "libamr-nb support ${libamr_nb-no}"
echo "libamr-wb support ${libamr_wb-no}"
+echo "libdc1394 support ${libdc1394-no}"
echo "libfaac enabled ${libfaac-no}"
echo "libfaad enabled ${libfaad-no}"
echo "libfaad dlopened ${libfaadbin-no}"
echo "BUILDSUF=$BUILDSUF" >> config.mak
echo "LIBPREF=$LIBPREF" >> config.mak
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
- echo "LIB=$LIB" >> config.mak
+echo "LIB=$LIB" >> config.mak
echo "SLIBPREF=$SLIBPREF" >> config.mak
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
$MUXER_LIST \
$PROTOCOL_LIST \
-if test "$targetos" = darwin; then
- echo "#define CONFIG_DARWIN 1" >> $TMPH
-fi
-
echo "#define restrict $_restrict" >> $TMPH
if enabled small; then
- echo "#define always_inline" >> $TMPH
+ echo "#define av_always_inline" >> $TMPH
fi
echo "SRC_PATH=\"$source_path\"" >> config.mak
if enabled source_path_used; then
DIRS="\
doc \
- libavformat \
libavcodec \
libavcodec/alpha \
libavcodec/armv4l \
libavcodec/bfin \
libavcodec/i386 \
- libavcodec/sparc \
libavcodec/mlib \
libavcodec/ppc \
- libpostproc \
+ libavcodec/sh4 \
+ libavcodec/sparc \
+ libavformat \
libavutil \
+ libpostproc \
libswscale \
tests \
tools \
FILES="\
Makefile \
common.mak \
- libavformat/Makefile \
+ doc/texi2pod.pl \
libavcodec/Makefile \
- libpostproc/Makefile \
+ libavformat/Makefile \
libavutil/Makefile \
+ libpostproc/Makefile \
libswscale/Makefile \
- doc/texi2pod.pl \
"
for dir in $DIRS ; do
mkdir -p $dir