#
# Boolean Manipulation Functions
#
-enable(){
+enable_feature(){
set_all yes $*
}
-disable(){
+disable_feature(){
set_all no $*
}
for var in $*; do
if ! disabled $var; then
log_echo " enabling $var"
- enable $var
+ enable_feature $var
fi
done
}
for var in $*; do
if ! enabled $var; then
log_echo " disabling $var"
- disable $var
+ disable_feature $var
fi
done
}
# Temporary File Functions
#
source_path=${0%/*}
-enable source_path_used
+enable_feature source_path_used
if test -z "$source_path" -o "$source_path" = "." ; then
source_path="`pwd`"
- disable source_path_used
+ disable_feature source_path_used
fi
if test ! -z "$TMPDIR" ; then
header=$1
shift
var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
- disable $var
- check_cpp "$@" <<EOF && enable $var
+ disable_feature $var
+ check_cpp "$@" <<EOF && enable_feature $var
#include "$header"
int x;
EOF
for opt in "$@"; do
optval="${opt#*=}"
case "$opt" in
- --child) enable child
+ --child) enable_feature child
;;
--log*)
logging="$optval"
;;
--target=*) toolchain="${toolchain:-${optval}}"
;;
- --force-target=*) toolchain="${toolchain:-${optval}}"; enable force_toolchain
+ --force-target=*) toolchain="${toolchain:-${optval}}"; enable_feature force_toolchain
;;
--cpu)
;;
;;
--libc=*)
[ -d "${optval}" ] || die "Not a directory: ${optval}"
- disable builtin_libc
+ disable_feature builtin_libc
alt_libc="${optval}"
;;
--as=*)
# Mark the specific ISA requested as enabled
soft_enable ${tgt_isa}
- enable ${tgt_os}
- enable ${tgt_cc}
+ enable_feature ${tgt_os}
+ enable_feature ${tgt_cc}
# Enable the architecture family
case ${tgt_isa} in
- arm*) enable arm;;
- mips*) enable mips;;
+ arm*) enable_feature arm;;
+ mips*) enable_feature mips;;
esac
# PIC is probably what we want when building shared libs
case ${toolchain} in
sparc-solaris-*)
add_extralibs -lposix4
- disable fast_unaligned
+ disable_feature fast_unaligned
;;
*-solaris-*)
add_extralibs -lposix4
;;
armv5te)
soft_enable edsp
- disable fast_unaligned
+ disable_feature fast_unaligned
;;
esac
asm_conversion_cmd="${source_path}/build/make/ads2armasm_ms.pl"
AS_SFX=.s
msvs_arch_dir=arm-msvs
- disable multithread
- disable unit_tests
+ disable_feature multithread
+ disable_feature unit_tests
;;
rvct)
CC=armcc
case ${tgt_os} in
none*)
- disable multithread
- disable os_support
+ disable_feature multithread
+ disable_feature os_support
;;
android*)
# Cortex-A8 implementations (NDK Dev Guide)
add_ldflags "-Wl,--fix-cortex-a8"
- enable pic
+ enable_feature pic
soft_enable realtime_only
if [ ${tgt_isa} = "armv7" ]; then
soft_enable runtime_cpu_detect
;;
linux*)
- enable linux
+ enable_feature linux
if enabled rvct; then
# Check if we have CodeSourcery GCC in PATH. Needed for
# libraries
tune_cflags="-mtune="
if enabled dspr2; then
check_add_cflags -mips32r2 -mdspr2
- disable fast_unaligned
+ disable_feature fast_unaligned
fi
check_add_cflags -march=${tgt_isa}
check_add_asflags -march=${tgt_isa}
check_add_asflags -KPIC
;;
ppc*)
- enable ppc
+ enable_feature ppc
bits=${tgt_isa##ppc}
link_with_cc=gcc
setup_gnu_toolchain
;;
universal*|*-gcc|generic-gnu)
link_with_cc=gcc
- enable gcc
+ enable_feature gcc
setup_gnu_toolchain
;;
esac
enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
# Check for strip utility variant
- ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable gnu_strip
+ ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable_feature gnu_strip
# Try to determine target endianness
check_cc <<EOF
unsigned int e = 'O'<<24 | '2'<<16 | 'B'<<8 | 'E';
EOF
[ -f "${TMP_O}" ] && od -A n -t x1 "${TMP_O}" | tr -d '\n' |
- grep '4f *32 *42 *45' >/dev/null 2>&1 && enable big_endian
+ grep '4f *32 *42 *45' >/dev/null 2>&1 && enable_feature big_endian
# Try to find which inline keywords are supported
check_cc <<EOF && INLINE="inline"
if enabled dspr2; then
if enabled big_endian; then
echo "dspr2 optimizations are available only for little endian platforms"
- disable dspr2
+ disable_feature dspr2
fi
fi
;;
true;
}
-enable logging
+enable_feature logging
logfile="config.log"
self=$0
process() {
# all targets available are enabled, by default.
for t in ${all_targets}; do
- [ -f ${source_path}/${t}.mk ] && enable ${t}
+ [ -f ${source_path}/${t}.mk ] && enable_feature ${t}
done
# check installed doxygen version
doxy_minor=${doxy_version%%.*}
doxy_patch=${doxy_version##*.}
- [ $doxy_major -gt 1 ] && enable doxygen
- [ $doxy_minor -gt 5 ] && enable doxygen
- [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable doxygen
+ [ $doxy_major -gt 1 ] && enable_feature doxygen
+ [ $doxy_minor -gt 5 ] && enable_feature doxygen
+ [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen
fi
# install everything except the sources, by default. sources will have
# to be enabled when doing dist builds, since that's no longer a common
# case.
-enabled doxygen && php -v >/dev/null 2>&1 && enable install_docs
-enable install_bins
-enable install_libs
-
-enable static
-enable optimizations
-enable fast_unaligned #allow unaligned accesses, if supported by hw
-enable md5
-enable spatial_resampling
-enable multithread
-enable os_support
-enable temporal_denoising
-
-[ -d ${source_path}/../include ] && enable alt_tree_layout
+enabled doxygen && php -v >/dev/null 2>&1 && enable_feature install_docs
+enable_feature install_bins
+enable_feature install_libs
+
+enable_feature static
+enable_feature optimizations
+enable_feature fast_unaligned #allow unaligned accesses, if supported by hw
+enable_feature md5
+enable_feature spatial_resampling
+enable_feature multithread
+enable_feature os_support
+enable_feature temporal_denoising
+
+[ -d ${source_path}/../include ] && enable_feature alt_tree_layout
for d in vp8 vp9; do
- [ -d ${source_path}/${d} ] && disable alt_tree_layout;
+ [ -d ${source_path}/${d} ] && disable_feature alt_tree_layout;
done
if ! enabled alt_tree_layout; then
[ -f ${source_path}/../include/vpx/vp8dx.h ] && CODECS="${CODECS} vp8_decoder"
[ -f ${source_path}/../include/vpx/vp9cx.h ] && CODECS="${CODECS} vp9_encoder"
[ -f ${source_path}/../include/vpx/vp9dx.h ] && CODECS="${CODECS} vp9_decoder"
-[ -f ${source_path}/../include/vpx/vp8cx.h ] || disable vp8_encoder
-[ -f ${source_path}/../include/vpx/vp8dx.h ] || disable vp8_decoder
-[ -f ${source_path}/../include/vpx/vp9cx.h ] || disable vp9_encoder
-[ -f ${source_path}/../include/vpx/vp9dx.h ] || disable vp9_decoder
+[ -f ${source_path}/../include/vpx/vp8cx.h ] || disable_feature vp8_encoder
+[ -f ${source_path}/../include/vpx/vp8dx.h ] || disable_feature vp8_decoder
+[ -f ${source_path}/../include/vpx/vp9cx.h ] || disable_feature vp9_encoder
+[ -f ${source_path}/../include/vpx/vp9dx.h ] || disable_feature vp9_decoder
[ -f ${source_path}/../lib/*/*mt.lib ] && soft_enable static_msvcrt
fi
for opt do
optval="${opt#*=}"
case "$opt" in
- --disable-codecs) for c in ${CODECS}; do disable $c; done ;;
+ --disable-codecs) for c in ${CODECS}; do disable_feature $c; done ;;
--enable-?*|--disable-?*)
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
if echo "${EXPERIMENT_LIST}" | grep "^ *$option\$" >/dev/null; then
# If the codec family is enabled, enable all components of that family.
log_echo "Configuring selected codecs"
for c in ${CODECS}; do
- disabled ${c%%_*} && disable ${c}
- enabled ${c%%_*} && enable ${c}
+ disabled ${c%%_*} && disable_feature ${c}
+ enabled ${c%%_*} && enable_feature ${c}
done
# Enable all detected codecs, if they haven't been disabled
# Enable the codec family if any component of that family is enabled
for c in ${CODECS}; do
- enabled $c && enable ${c%_*}
+ enabled $c && enable_feature ${c%_*}
done
# Set the {en,de}coders variable if any algorithm in that class is enabled
for c in ${CODECS}; do
- enabled ${c} && enable ${c##*_}s
+ enabled ${c} && enable_feature ${c##*_}s
done
}
fi
if [ -z "$CC" ] || enabled external_build; then
echo "Bypassing toolchain for environment detection."
- enable external_build
+ enable_feature external_build
check_header() {
log fake_check_header "$@"
header=$1
shift
var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
- disable $var
+ disable_feature $var
# Headers common to all environments
case $header in
stdio.h)
[ -f "${d##-I}/$header" ] && result=true && break
done
${result:-true}
- esac && enable $var
+ esac && enable_feature $var
# Specialize windows and POSIX environments.
case $toolchain in
case $header-$toolchain in
stdint*-gcc) true;;
*) false;;
- esac && enable $var
+ esac && enable_feature $var
;;
*)
case $header in
sys/mman.h) true;;
unistd.h) true;;
*) false;;
- esac && enable $var
+ esac && enable_feature $var
esac
enabled $var
}
check_header sys/mman.h
check_header unistd.h # for sysconf(3) and friends.
- check_header vpx/vpx_integer.h -I${source_path} && enable vpx_ports
+ check_header vpx/vpx_integer.h -I${source_path} && enable_feature vpx_ports
}
process_toolchain() {
# ccache only really works on gcc toolchains
enabled gcc || soft_disable ccache
if enabled mips; then
- enable dequant_tokens
- enable dc_recon
+ enable_feature dequant_tokens
+ enable_feature dc_recon
fi
# Enable the postbuild target if building for visual studio.
case "$tgt_cc" in
- vs*) enable msvs
- enable solution
+ vs*) enable_feature msvs
+ enable_feature solution
vs_version=${tgt_cc##vs}
case $vs_version in
[789])