check_ld "$@" <<EOF && enable $func && enable_safe $headers
$incs
int main(int argc, char **argv){
- (void) $func;
- return 0;
+ return (long) $func;
}
EOF
}
alsa_asoundlib_h
altivec_h
arpa_inet_h
+ attribute_packed
bigendian
bswap
closesocket
getrusage
inet_aton
inline_asm
+ isatty
ldbrx
libdc1394_1
libdc1394_2
termios_h
threads
truncf
+ vfp_args
VirtualAlloc
winsock2_h
xform_asm
cpu
cross_prefix
dep_cc
- extra_cflags
extra_version
host_cc
host_cflags
target_path
"
+CMDLINE_APPEND="
+ extra_cflags
+"
+
# code dependency declarations
# architecture extensions
ssse3_deps="sse"
vis_deps="sparc"
+need_memalign="altivec neon sse"
+inline_asm_deps="!tms470"
+
# decoders / encoders / hardware accelerators
aac_decoder_select="fft mdct"
+aac_encoder_select="fft mdct"
ac3_decoder_select="fft mdct"
atrac3_decoder_select="fft mdct"
cavs_decoder_select="golomb"
dca_decoder_select="fft mdct"
dnxhd_encoder_select="aandct"
dxa_decoder_select="zlib"
-eac3_decoder_select="fft mdct"
+eac3_decoder_select="ac3_decoder"
+eamad_decoder_select="aandct"
eatgq_decoder_select="aandct"
eatqi_decoder_select="aandct"
ffv1_decoder_select="golomb"
sonic_ls_encoder_select="golomb"
svq3_decoder_select="golomb"
svq3_decoder_suggest="zlib"
+theora_decoder_select="vp3_decoder"
tiff_decoder_suggest="zlib"
tiff_encoder_suggest="zlib"
tscc_decoder_select="zlib"
vc1_vdpau_decoder_select="vdpau vc1_decoder"
vorbis_decoder_select="fft mdct"
vorbis_encoder_select="fft mdct"
+vp6a_decoder_select="vp6_decoder"
+vp6f_decoder_select="vp6_decoder"
wmav1_decoder_select="fft mdct"
wmav1_encoder_select="fft mdct"
wmav2_decoder_select="fft mdct"
wmav2_encoder_select="fft mdct"
wmv1_encoder_select="aandct"
wmv2_encoder_select="aandct"
-wmv3_vaapi_hwaccel_deps="va_va_h"
-wmv3_vaapi_hwaccel_select="vaapi wmv3_decoder"
-wmv3_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
-wmv3_vdpau_decoder_select="vdpau wmv3_decoder"
+wmv3_decoder_select="vc1_decoder"
+wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
+wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
zlib_decoder_select="zlib"
zlib_encoder_select="zlib"
zmbv_decoder_select="zlib"
enable swscale_alpha
# build settings
-add_cppflags -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112
SHFLAGS='-shared -Wl,-soname,$$(@F)'
FFSERVERLDFLAGS=-Wl,-E
LIBPREF="lib"
# gcc stupidly only outputs the basename of targets with -MM, but we need the
# full relative path for objects in subdirectories for non-recursive Make.
-DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o,"'
+DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $@'
DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -MM'
# find source path
source_path="$(dirname "$0")"
enable source_path_used
-if test -z "$source_path" -o "$source_path" = "." ; then
+if test -f configure; then
source_path="$(pwd)"
disable source_path_used
else
optname="${opt%%=*}"
optname="${optname#--}"
optname=$(echo "$optname" | sed 's/-/_/g')
- is_in $optname $CMDLINE_SET || die_unknown $opt
- eval $optname='$optval'
+ if is_in $optname $CMDLINE_SET; then
+ eval $optname='$optval'
+ elif is_in $optname $CMDLINE_APPEND; then
+ append $optname "$optval"
+ else
+ die_unknown $opt
+ fi
;;
esac
done
die "Sanity test failed."
fi
+filter_cflags=echo
+filter_cppflags=echo
+filter_asflags=echo
+
if $cc --version 2>/dev/null | grep -qi gcc; then
cc_type=gcc
elif $cc --version 2>/dev/null | grep -q Intel; then
die "Error creating armcc configuration file."
cc="$cc --arm_linux_config_file=$armcc_conf --translate_gcc"
as_default="${cross_prefix}gcc"
+elif $cc -version 2>/dev/null | grep -q TMS470; then
+ cc_type=tms470
+ cc="$cc --gcc --abi=eabi -eo=.o -mc -me"
+ CC_O='-fr=$(@D)'
+ as_default="${cross_prefix}gcc"
+ ld_default="${cross_prefix}gcc"
+ dep_cc_default="${cross_prefix}gcc"
+ TMPO=$(basename $TMPC .c).o
+ append TMPFILES $TMPO
+ add_cflags -D__gnuc_va_list=va_list -D__USER_LABEL_PREFIX__=
+ DEPFLAGS='$(CPPFLAGS) -MM'
+ filter_cflags=tms470_flags
+ tms470_flags(){
+ for flag; do
+ case $flag in
+ -march=*|-mcpu=*)
+ case "${flag#*=}" in
+ armv7-a|cortex-a*) echo -mv=7a8 ;;
+ armv7-r|cortex-r*) echo -mv=7r4 ;;
+ armv7-m|cortex-m*) echo -mv=7m3 ;;
+ armv6*|arm11*) echo -mv=6 ;;
+ armv5*e|arm[79]*e*|arm9[24]6*|arm96*|arm102[26])
+ echo -mv=5e ;;
+ armv4*|arm7*|arm9[24]*) echo -mv=4 ;;
+ esac
+ ;;
+ -mfpu=neon) echo --float_support=vfpv3 --neon ;;
+ -mfpu=vfp) echo --float_support=vfpv2 ;;
+ -mfpu=softvfp) echo --float_support=vfplib ;;
+ -Os) echo -O3 -mf=2 ;;
+ -O[0-3]) echo $flag -mf=5 ;;
+ -g) echo -g -mn ;;
+ esac
+ done
+ }
fi
test -n "$cc_type" && enable $cc_type || echolog "Unknown C compiler $cc"
: ${ld_default:=$cc}
set_default as dep_cc ld
-: ${filter_cflags:=echo}
-: ${filter_cppflags:=echo}
-: ${filter_asflags:=echo}
-
add_cflags $extra_cflags
add_asflags $extra_cflags
add_cppflags --sysroot="$sysroot"
add_ldflags --sysroot="$sysroot"
;;
+ tms470)
+ add_cppflags -I"$sysinclude"
+ add_ldflags --sysroot="$sysroot"
+ ;;
esac
fi
+# Add processor-specific flags
+case $cpu in
+ 601|ppc601|PowerPC601)
+ cpuflags="-mcpu=601"
+ ;;
+ 603*|ppc603*|PowerPC603*)
+ cpuflags="-mcpu=603"
+ ;;
+ 604*|ppc604*|PowerPC604*)
+ cpuflags="-mcpu=604"
+ ;;
+ G3|g3|75*|ppc75*|PowerPC75*)
+ cpuflags="-mcpu=750 -mpowerpc-gfxopt"
+ ;;
+ G4|g4|745*|ppc745*|PowerPC745*)
+ cpuflags="-mcpu=7450 -mpowerpc-gfxopt"
+ ;;
+ 74*|ppc74*|PowerPC74*)
+ cpuflags="-mcpu=7400 -mpowerpc-gfxopt"
+ ;;
+ G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
+ cpuflags="-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
+ ;;
+ Cell|CELL|cell)
+ cpuflags="-mcpu=cell"
+ enable ldbrx
+ ;;
+ # targets that do NOT support conditional mov (cmov)
+ i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
+ cpuflags="-march=$cpu"
+ disable cmov
+ ;;
+ # targets that do support conditional mov (cmov)
+ i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
+ cpuflags="-march=$cpu"
+ enable cmov
+ enable fast_cmov
+ ;;
+ # targets that do support conditional mov but on which it's slow
+ pentium4|pentium4m|prescott|nocona)
+ cpuflags="-march=$cpu"
+ enable cmov
+ disable fast_cmov
+ ;;
+ sparc64)
+ cpuflags="-mcpu=v9"
+ ;;
+ arm11*|cortex*)
+ cpuflags="-mcpu=$cpu"
+ enable fast_unaligned
+ ;;
+ armv[67]*)
+ cpuflags="-march=$cpu"
+ enable fast_unaligned
+ ;;
+ armv*)
+ cpuflags="-march=$cpu"
+ ;;
+ arm*)
+ cpuflags="-mcpu=$cpu"
+ ;;
+ ev4|ev45|ev5|ev56|pca56|ev6|ev67)
+ enabled ccc && cpuflags="-arch $cpu" || cpuflags="-mcpu=$cpu"
+ ;;
+ bf*)
+ cpuflags="-mcpu=$cpu"
+ ;;
+ mips*|[45]k*|[237]4k*|m4k|r*000|loongson2[ef])
+ cpuflags="-march=$cpu"
+ ;;
+ generic)
+ ;;
+ *)
+ echo "WARNING: Unknown CPU \"$cpu\", ignored."
+ ;;
+esac
+
+add_cflags $cpuflags
+add_asflags $cpuflags
+
# compiler sanity check
check_exec <<EOF
int main(void){ return 0; }
die "C compiler test failed."
fi
+add_cppflags -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112
check_cflags -std=c99
check_cc -D_FILE_OFFSET_BITS=64 <<EOF && add_cppflags -D_FILE_OFFSET_BITS=64
#include <stdlib.h>
arch="alpha"
enable fast_64bit
check_cflags -mieee
+ pic=$shared
;;
arm|armv[4567]*l)
arch="arm"
ia64)
arch="ia64"
enable fast_64bit
+ pic=$shared
;;
m68k)
arch="m68k"
;;
mips|mipsel|IP*)
arch="mips"
+ pic=$shared
;;
mips64)
arch="mips"
subarch="mips64"
enable fast_64bit
+ pic=$shared
;;
parisc|hppa)
arch="parisc"
+ pic=$shared
;;
parisc64|hppa64)
arch="parisc"
enable fast_64bit
+ pic=$shared
;;
"Power Macintosh"|ppc|powerpc)
arch="ppc"
;;
sparc)
arch="sparc"
+ pic=$shared
;;
sun4u|sparc64)
arch="sparc"
subarch="sparc64"
enable fast_64bit
+ pic=$shared
;;
i386|i486|i586|i686|i86pc|BePC)
arch="x86"
enable cmov
enable fast_cmov
enable fast_unaligned
- check_cc <<EOF && enable fast_64bit && subarch="x86_64"
+ check_cc <<EOF && enable fast_64bit && subarch="x86_64" && pic=$shared
int test[sizeof(char*) - 7];
EOF
;;
oss_outdev_extralibs="-lossaudio"
;;
openbsd)
- disable need_memalign
- LIBOBJFLAGS='$(PIC)'
+ enable malloc_aligned
+ enable pic
SHFLAGS='-shared'
oss_indev_extralibs="-lossaudio"
oss_outdev_extralibs="-lossaudio"
;;
freebsd|dragonfly)
- disable need_memalign
+ enable malloc_aligned
;;
bsd/os)
osextralibs="-lpoll -lgnugetopt"
strip="strip -d"
;;
darwin)
- disable need_memalign
+ enable malloc_aligned
SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress'
strip="strip -x"
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
FFSERVERLDFLAGS=-Wl,-bind_at_load
objformat="macho"
enabled x86_64 && objformat="macho64"
+ enabled shared || check_cflags -mdynamic-no-pic
;;
mingw32*)
- target_os=mingw32
+ if test $target_os = "mingw32ce"; then
+ disable network
+ else
+ target_os=mingw32
+ fi
LIBTARGET=i386
if enabled x86_64; then
- disable need_memalign
+ enable malloc_aligned
LIBTARGET=x64
+ elif enabled arm; then
+ LIBTARGET=arm
fi
shlibdir_default="$bindir_default"
disable ffserver
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)'
SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"; \
- install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"'
+ install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"; \
+ install -d "$(LIBDIR)"; \
+ install -m 644 $(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) "$(LIBDIR)/lib$(SLIBNAME:$(SLIBSUF)=.dll.a)"'
SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
objformat="win32"
if ! enabled x86_64; then
check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
die "ERROR: MinGW runtime version must be >= 3.15."
- enabled_any avisynth vfwcap_demuxer &&
+ enabled_any avisynth vfwcap_indev &&
{ check_cpp_condition w32api.h "(__W32API_MAJOR_VERSION > 3) || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION >= 13)" ||
- die "ERROR: avisynth and vfwcap_demuxer require w32api version 3.13 or later."; }
+ die "ERROR: avisynth and vfwcap_indev require w32api version 3.13 or later."; }
fi
;;
cygwin*)
check_deps $ARCH_EXT_LIST
-test -z "$need_memalign" && need_memalign="$mmx"
-
-#Darwin CC versions
-if test $target_os = darwin; then
- if enabled xlc; then
- add_cflags -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto
- else
- add_cflags -pipe
- check_cflags -force_cpusubtype_ALL
- check_cflags -Wno-sign-compare
- enabled shared || check_cflags -mdynamic-no-pic
- fi
-fi
-
disabled optimizations || check_cflags -fomit-frame-pointer
-# Add processor-specific flags
-if test $cpu != "generic"; then
- warn_altivec(){
- $1 altivec && echo "WARNING: Tuning for $2 but AltiVec $1.";
- }
- case $cpu in
- 601|ppc601|PowerPC601)
- cpuflags="-mcpu=601"
- warn_altivec enabled PPC601
- ;;
- 603*|ppc603*|PowerPC603*)
- cpuflags="-mcpu=603"
- warn_altivec enabled PPC603
- ;;
- 604*|ppc604*|PowerPC604*)
- cpuflags="-mcpu=604"
- warn_altivec enabled PPC604
- ;;
- G3|g3|75*|ppc75*|PowerPC75*)
- cpuflags="-mcpu=750 -mpowerpc-gfxopt"
- warn_altivec enabled PPC75x
- ;;
- G4|g4|745*|ppc745*|PowerPC745*)
- cpuflags="-mcpu=7450 -mpowerpc-gfxopt"
- warn_altivec disabled PPC745x
- ;;
- 74*|ppc74*|PowerPC74*)
- cpuflags="-mcpu=7400 -mpowerpc-gfxopt"
- warn_altivec disabled PPC74xx
- ;;
- G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
- cpuflags="-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
- warn_altivec disabled PPC970
- ;;
- Cell|CELL|cell)
- cpuflags="-mcpu=cell"
- warn_altivec disabled Cell
- enable ldbrx
- ;;
- # targets that do NOT support conditional mov (cmov)
- i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
- cpuflags="-march=$cpu"
- disable cmov
- ;;
- # targets that do support conditional mov (cmov)
- i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
- cpuflags="-march=$cpu"
- enable cmov
- enable fast_cmov
- ;;
- # targets that do support conditional mov but on which it's slow
- pentium4|pentium4m|prescott|nocona)
- cpuflags="-march=$cpu"
- enable cmov
- disable fast_cmov
- ;;
- sparc64)
- cpuflags="-mcpu=v9"
- ;;
- arm11*|cortex*)
- cpuflags="-mcpu=$cpu"
- enable fast_unaligned
- ;;
- armv[67]*)
- cpuflags="-march=$cpu"
- enable fast_unaligned
- ;;
- armv*)
- cpuflags="-march=$cpu"
- ;;
- arm*)
- cpuflags="-mcpu=$cpu"
- ;;
- ev4|ev45|ev5|ev56|pca56|ev6|ev67)
- enabled ccc && cpuflags="-arch $cpu" || cpuflags="-mcpu=$cpu"
- ;;
- bf*)
- cpuflags="-mcpu=$cpu"
- ;;
- mips*|[45]k*|[237]4k*|m4k|r*000|loongson2[ef])
- cpuflags="-march=$cpu"
- ;;
- *)
- echo "WARNING: Unknown CPU \"$cpu\", ignored."
- ;;
- esac
-fi
-
-add_cflags $cpuflags
-add_asflags $cpuflags
-
check_cc <<EOF || die "Symbol mangling check failed."
int ff_extern;
EOF
void foo(void) { __asm__ volatile ("" ::); }
EOF
-if enabled x86; then
+_restrict=
+for restrict_keyword in restrict __restrict__ __restrict; do
+ check_cc <<EOF && _restrict=$restrict_keyword && break
+void foo(char * $restrict_keyword p);
+EOF
+done
+
+check_cc <<EOF && enable attribute_packed
+struct { int x; } __attribute__((packed)) x;
+EOF
+
+check_cc <<EOF || die "endian test failed"
+unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
+EOF
+od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
+
+if enabled arm; then
+
+ check_ld <<EOF && enable vfp_args
+__asm__ (".eabi_attribute 28, 1");
+int main(void) { return 0; }
+EOF
+
+ # We have to check if pld is a nop and disable it.
+ check_asm pld '"pld [r0]"'
+
+ enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"'
+ enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"'
+ enabled armv6t2 && check_asm armv6t2 '"movt r0, #0"'
+ enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"'
+ enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"'
+ enabled neon && check_asm neon '"vadd.i16 q0, q0, q0"'
+
+elif enabled mips; then
+
+ check_asm loongson '"dmult.g $1, $2, $3"'
+ enabled mmi && check_asm mmi '"lq $2, 0($2)"'
+
+elif enabled ppc; then
+
+ check_asm dcbzl '"dcbzl 0, 1"'
+ check_asm ppc4xx '"maclhw r10, r11, r12"'
+ check_asm xform_asm '"lwzx 0, %y0" :: "Z"(*(int*)0)'
+
+ # AltiVec flags: The FSF version of GCC differs from the Apple version
+ if enabled altivec; then
+ check_cflags -maltivec -mabi=altivec &&
+ { check_header altivec.h && inc_altivec_h="#include <altivec.h>" ; } ||
+ check_cflags -faltivec
+
+ # check if our compiler supports Motorola AltiVec C API
+ check_cc <<EOF || disable altivec
+$inc_altivec_h
+int main(void) {
+ vector signed int v1, v2, v3;
+ v1 = vec_add(v2,v3);
+ return 0;
+}
+EOF
+
+ # check if our compiler supports braces for vector declarations
+ check_cc <<EOF || die "You need a compiler that supports {} in AltiVec vector declarations."
+$inc_altivec_h
+int main (void) { (vector int) {1}; return 0; }
+EOF
+ fi
+
+elif enabled sparc; then
+
+ enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc &&
+ add_cflags -mcpu=ultrasparc -mtune=ultrasparc
+
+elif enabled x86; then
+
# check whether EBP is available on x86
# As 'i' is stored on the stack, this program will crash
# if the base pointer is used to access it because the
*) append YASMFLAGS "-DPREFIX" ;;
esac
disabled yasm || { check_yasm "pabsw xmm0, xmm0" && enable yasm; }
-fi
-# check for assembler specific support
-
-enabled mips && check_asm loongson '"dmult.g $1, $2, $3"'
-
-enabled ppc && check_asm dcbzl '"dcbzl 0, 1"'
-enabled ppc && check_asm ppc4xx '"maclhw r10, r11, r12"'
-enabled ppc && check_asm xform_asm '"lwzx 0, %y0" :: "Z"(*(int*)0)'
-
-# check for SIMD availability
-
-# AltiVec flags: The FSF version of GCC differs from the Apple version
-if enabled altivec; then
- check_cflags -maltivec -mabi=altivec &&
- { check_header altivec.h && inc_altivec_h="#include <altivec.h>" ; } ||
- check_cflags -faltivec
-
- # check if our compiler supports Motorola AltiVec C API
- check_cc <<EOF || disable altivec
-$inc_altivec_h
-int main(void) {
- vector signed int v1, v2, v3;
- v1 = vec_add(v2,v3);
- return 0;
-}
-EOF
-
- # check if our compiler supports braces for vector declarations
- check_cc <<EOF || die "You need a compiler that supports {} in AltiVec vector declarations."
-$inc_altivec_h
-int main (void) { (vector int) {1}; return 0; }
-EOF
fi
-# We have to check if pld is a nop and disable it.
-enabled arm && check_asm pld '"pld [r0]"'
-enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"'
-enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"'
-enabled armv6t2 && check_asm armv6t2 '"movt r0, #0"'
-enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"'
-enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"'
-enabled mmi && check_asm mmi '"lq $2, 0($2)"'
-enabled neon && check_asm neon '"vadd.i16 q0, q0, q0"'
-enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc
-
-enabled vis && add_cflags -mcpu=ultrasparc -mtune=ultrasparc
-
-# ---
-# big/little-endian test
-check_cc <<EOF || die "endian test failed"
-unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
-EOF
-od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
-
-# ---
-# check availability of some header files
-
if check_func dlopen; then
ldl=
elif check_func dlopen -ldl; then
check_func gethrtime
check_func getrusage
check_func inet_aton $network_extralibs
+check_func isatty
check_func memalign
check_func mkstemp
check_func posix_memalign
check_header vdpau/vdpau_x11.h
check_header X11/extensions/XvMClib.h
-if ! enabled_any memalign memalign_hack posix_memalign && enabled need_memalign ; then
+if ! enabled_any memalign memalign_hack posix_memalign malloc_aligned &&
+ enabled_any $need_memalign ; then
die "Error, no aligned memory allocator but SSE enabled, disable it or use --enable-memalign-hack."
fi
check_lib math.h sin -lm
check_lib va/va.h vaInitialize -lva
-# test for C99 functions in math.h
-for func in llrint log2 lrint lrintf round roundf truncf; do
- check_exec <<EOF && enable $func || disable $func
-#include <math.h>
-int main(void) { return ($func(3.999f) > 0)?0:1; }
-EOF
-done
+check_func llrint
+check_func log2
+check_func lrint
+check_func lrintf
+check_func round
+check_func roundf
+check_func truncf
# these are off by default, so fail if requested and not available
enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
die "ERROR: No version of libdc1394 found "
fi
-
-_restrict=
-for restrict_keyword in restrict __restrict__ __restrict; do
- check_cc <<EOF && _restrict=$restrict_keyword && break
-void foo(char * $restrict_keyword p);
-EOF
-done
-
-##########################################
-# SDL check
-
disable sdl_too_old
disable sdl
SDL_CONFIG="${cross_prefix}sdl-config"
texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html
-##########################################
-# Network check
-
if enabled network; then
check_type "sys/types.h sys/socket.h" socklen_t
# Prefer arpa/inet.h over winsock2
if check_header arpa/inet.h ; then
check_func closesocket
elif check_header winsock2.h ; then
- network_extralibs="-lws2_32"
+ check_func_headers winsock2.h closesocket -lws2 && \
+ network_extralibs="-lws2" || \
+ { check_func_headers winsock2.h closesocket -lws2_32 && \
+ network_extralibs="-lws2_32"; }
check_type ws2tcpip.h socklen_t
- check_func_headers winsock2.h closesocket
else
disable network
fi
fi
-##########################################
-# IPv6 check
-
-enabled network && enabled ipv6 && check_ld <<EOF && enable ipv6 || disable ipv6
+enabled_all network ipv6 && check_ld <<EOF || disable ipv6
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
check_header sys/soundcard.h
check_header soundcard.h
-enabled alsa_demuxer || enabled alsa_muxer && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
+enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
-enabled jack_demuxer && check_lib2 jack/jack.h jack_client_open -ljack
+enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack
-# deal with the X11 frame grabber
enabled x11grab &&
check_header X11/Xlib.h &&
check_header X11/extensions/XShm.h &&
check_cflags -fno-math-errno
check_cflags -fno-signed-zeros
-# add some flags for Intel C Compiler
if enabled icc; then
# Just warnings, no remarks
check_cflags -w1
add_cflags -msg_disable nomainieee
add_cflags -msg_disable ptrmismatch1
add_cflags -msg_disable unreachcode
+elif enabled gcc; then
+ check_cflags -fno-tree-vectorize
fi
-# PIC flags for shared library objects where they are needed
-if enabled shared; then
- # LIBOBJFLAGS may have already been set in the OS configuration
- if test -z "$LIBOBJFLAGS" ; then
- case "${subarch-$arch}" in
- x86_64|ia64|alpha|sparc*|power*|parisc*|mips*) LIBOBJFLAGS='$(PIC)' ;;
- esac
- fi
-fi
+enabled pic && LIBOBJFLAGS='$(PIC)'
if enabled gprof; then
add_cflags -p
enabled_any $DEMUXER_LIST && enable demuxers
enabled_any $MUXER_LIST && enable muxers
enabled_any $FILTER_LIST && enable filters
-enabled_any $INDEV_LIST && enable demuxers
-enabled_any $OUTDEV_LIST && enable muxers
+enabled_any $INDEV_LIST && enable indevs
+enabled_any $OUTDEV_LIST && enable outdevs
enabled_any $PROTOCOL_LIST && enable protocols
enabled_any $THREADS_LIST && enable threads
echo "SHFLAGS=$SHFLAGS" >> config.mak
echo "YASMFLAGS=$YASMFLAGS" >> config.mak
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
+echo "PIC=-fPIC -DPIC" >> config.mak
echo "BUILD_STATIC=$static" >> config.mak
echo "BUILDSUF=$build_suffix" >> config.mak
echo "FULLNAME=$FULLNAME" >> config.mak
echo "TARGET_EXEC=$target_exec" >> config.mak
echo "TARGET_PATH=$target_path" >> config.mak
-if enabled bigendian; then
- echo "WORDS_BIGENDIAN=yes" >> config.mak
- echo "#define WORDS_BIGENDIAN 1" >> $TMPH
-fi
-
if enabled sdl; then
echo "SDL_LIBS=$("${SDL_CONFIG}" --libs)" >> config.mak
echo "SDL_CFLAGS=$("${SDL_CONFIG}" --cflags)" >> config.mak
if enabled shared; then
echo "BUILD_SHARED=yes" >> config.mak
- echo "PIC=-fPIC -DPIC" >> config.mak
echo "LIBTARGET=${LIBTARGET}" >> config.mak
echo "SLIBNAME=${SLIBNAME}" >> config.mak
echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak