echo " --enable-faadbin build FAAD support with runtime linking [default=no]"
echo " --enable-libgsm enable GSM support via libgsm [default=no]"
echo " --enable-mp3lame enable MP3 encoding via libmp3lame [default=no]"
- echo " --enable-libnut enable NUT support via libnut [default=no]"
- echo " --enable-libogg enable Ogg support via libogg [default=no]"
- echo " --enable-libtheora enable Theora support via libtheora [default=no]"
- echo " --enable-vorbis enable Vorbis support via libvorbis [default=no]"
+ echo " --enable-libnut enable NUT (de)muxing via libnut,"
+ echo " native demuxer exists [default=no]"
+ echo " --enable-libogg enable Ogg muxing via libogg [default=no]"
+ echo " --enable-libtheora enable Theora encoding via libtheora [default=no]"
+ echo " --enable-vorbis 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 [default=no]"
+ echo " --enable-xvid enable Xvid encoding via xvidcore,"
+ echo " native MPEG-4/Xvid encoder exists [default=no]"
echo " --enable-amr_nb enable amr_nb float audio codec"
echo " --enable-amr_nb-fixed use fixed point for amr-nb codec"
echo " --enable-amr_wb enable amr_wb float audio codec"
done
}
+disabled_all(){
+ for opt; do
+ disabled $opt || return 1
+ done
+}
+
enabled_any(){
for opt; do
enabled $opt && return 0
done
}
+disabled_any(){
+ for opt; do
+ disabled $opt && return 0
+ done
+}
+
check_deps(){
for cfg; do
eval dep_all="\$${cfg}_deps"
libdts="no"
libfaac="no"
libfaad="no"
+libfaad2="no"
libfaadbin="no"
libgsm="no"
libmp3lame="no"
show_help
fi
-FFMPEG_CONFIGURATION=" "
-for opt do
- FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
-done
+FFMPEG_CONFIGURATION="$@"
ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
esac
done
-if test "$logging" != no; then
+if ! disabled logging ; then
enabled logging || logfile="$logging"
echo "# $0 $@" >$logfile
set >>$logfile
strip="${cross_prefix}${strip}"
# we need to build at least one lib type
-if disabled lstatic && disabled lshared; then
+if disabled_all lstatic lshared; then
cat <<EOF
At least one library type must be built.
Specify --enable-static to build the static libraries or --enable-shared to
die "libogg must be enabled to enable libvorbis."
fi
-if test "$gpl" != "yes"; then
- if enabled pp; then
- die "The Postprocessing code is under GPL and --enable-gpl is not specified."
- fi
-
- if test "$liba52" != "no" -o "$liba52bin" != "no"; then
- die "liba52 is under GPL and --enable-gpl is not specified."
- fi
-
- if enabled xvid; then
- die "libxvidcore is under GPL and --enable-gpl is not specified."
- fi
-
- if enabled x264; then
- die "x264 is under GPL and --enable-gpl is not specified."
- fi
-
- if enabled libdts; then
- die "libdts is under GPL and --enable-gpl is not specified."
- fi
-
- if test "$libfaad" != "no" -o "$libfaadbin" != "no"; then
- if check_header faad.h; then
- check_cc << EOF
- #include <faad.h>
- #ifndef FAAD2_VERSION
- ok faad1
- #endif
- int main( void ) { return 0; }
+if enabled_any libfaad libfaadbin ; then
+ if check_header faad.h; then
+ check_cc << EOF
+#include <faad.h>
+#ifndef FAAD2_VERSION
+ok faad1
+#endif
+int main( void ) { return 0; }
EOF
- if test $? = 0 ; then
- die "FAAD2 is under GPL and --enable-gpl is not specified."
- fi
- else
- libfaad="no"
- libfaadbin="no"
- echo "FAAD test failed."
- fi
+ test $? = 0 && enable libfaad2
+ else
+ die "FAAD test failed."
fi
+fi
- if enabled x11grab; then
- die "The X11 grabber is under GPL and --enable-gpl is not specified."
- fi
- if enabled swscaler; then
- die "The software scaler is under GPL and --enable-gpl is not specified."
- fi
+if disabled gpl ; then
+ die_gpl_disabled(){
+ name=$1
+ shift
+ enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified."
+ }
+ die_gpl_disabled "The Postprocessing code" pp
+ die_gpl_disabled "liba52" liba52 liba52bin
+ die_gpl_disabled "libxvidcore" xvid
+ die_gpl_disabled "x264" x264
+ die_gpl_disabled "libdts" libdts
+ die_gpl_disabled "FAAD2" libfaad2
+ die_gpl_disabled "The X11 grabber" x11grab
+ die_gpl_disabled "The software scaler" swscaler
fi
# compute MMX state
fi
fi
-if test $optimize != "no"; then
+if ! disabled optimize ; then
add_cflags "-fomit-frame-pointer"
fi
# Add processor-specific flags
POWERPCMODE="32bits"
if test $cpu != "generic"; then
+ warn_altivec_enabled(){
+ enabled altivec && echo "WARNING: Tuning for $1 but AltiVec enabled.";
+ }
+ warn_altivec_disabled(){
+ disabled altivec && echo "WARNING: Tuning for $1 but AltiVec disabled.";
+ }
case $cpu in
601|ppc601|PowerPC601)
add_cflags "-mcpu=601"
- if enabled altivec; then
- echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
- fi
+ warn_altivec_enabled PPC601
;;
603*|ppc603*|PowerPC603*)
add_cflags "-mcpu=603"
- if enabled altivec; then
- echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
- fi
+ warn_altivec_enabled PPC603
;;
604*|ppc604*|PowerPC604*)
add_cflags "-mcpu=604"
- if enabled altivec; then
- echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
- fi
+ warn_altivec_enabled PPC604
;;
G3|g3|75*|ppc75*|PowerPC75*)
add_cflags "-mcpu=750 -mpowerpc-gfxopt"
- if enabled altivec; then
- echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
- fi
+ warn_altivec_enabled PPC75x
;;
G4|g4|745*|ppc745*|PowerPC745*)
add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
- if disabled altivec; then
- echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
- fi
+ warn_altivec_disabled PPC745x
;;
74*|ppc74*|PowerPC74*)
add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
- if disabled altivec; then
- echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
- fi
+ warn_altivec_disabled PPC74xx
;;
G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
- if disabled altivec; then
- echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
- fi
+ warn_altivec_disabled PPC970
POWERPCMODE="64bits"
;;
# targets that do NOT support conditional mov (cmov)
EOF
if test "$?" != 0; then
echo "$cc is unable to create an executable file."
- if test -z "$cross_prefix" -a "$cross_compile" = no; then
+ if test -z "$cross_prefix" && disabled cross_compile ; then
echo "If $cc is a cross-compiler, use the --cross-compile option."
echo "Only do this if you know what cross compiling means."
fi
check_header malloc.h
check_func memalign
-if test "$memalign" = "no" -a "$need_memalign" = "yes" -a \
- "$memalign_hack" != "yes"; then
+if disabled_all memalign memalign_hack && enabled need_memalign ; then
die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
fi
for thread in pthreads beosthreads os2threads w32threads; do
if enabled $thread; then
- if test $thread_type != "no"; then
+ if ! disabled thread_type ; then
die "ERROR: Only one thread type must be selected."
else
thread_type="$thread"
done
# these are off by default, so fail if requested and not available
-enabled libdts && require libdts dts.h dts_init -ldts -lm
-enabled libgsm && require libgsm gsm.h gsm_create -lgsm
+enabled libdts && require libdts dts.h dts_init -ldts -lm
+enabled libgsm && require libgsm gsm.h gsm_create -lgsm
enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
-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 xvid && require XviD xvid.h xvid_global -lxvidcore
-enabled x264 && require x264 x264.h x264_encoder_open -lx264
-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 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 xvid && require XviD xvid.h xvid_global -lxvidcore
+enabled x264 && require x264 x264.h x264_encoder_open -lx264
+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
# Ugh, libfaac uses stdcall calling convention on win32 so we can't use
# the generic test functions
add_extralibs $ldl
fi
-if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then
+if test "$targetos" = "CYGWIN" && enabled lstatic ; then
vhook="no"
echo
echo "At the moment vhooks don't work on Cygwin static builds."
##########################################
# imlib check
-temp_extralibs -lImlib2
-check_ld <<EOF && imlib2=yes || imlib2=no
-#include <X11/Xlib.h>
+imlib2=no
+if (imlib2-config --version) >/dev/null 2>&1 ; then
+ temp_cflags `imlib2-config --cflags`
+ temp_extralibs `imlib2-config --libs`
+ check_ld <<EOF && imlib2=yes
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF
-restore_flags
+ restore_flags
+fi
##########################################
# FreeType check
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
-echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
+echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
echo "PREFIX=$PREFIX" >> config.mak
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak