tvheadend/configure
Adam Sutton 9180546fc6 timeshift: early prototype of the new timeshift feature.
Currently this supports pause/resume, and speed control. FF up to 4x uses
full frame output, faster than that or reverse uses i-frame only output.
This causes problems with some players and needs work.

Also buffers are done at the subscription level which means the disk space
is not shared even if it holds the same content. And more importantly
this means you cannot yet record the timeshift buffer like on a standard
PVR.
2013-01-09 21:26:51 +00:00

187 lines
3.5 KiB
Bash
Executable file

#!/bin/bash
#
# Tvheadend configure script
#
# Copyright (c) 2012 Adam Sutton <dev@adamsutton.me.uk>
#
# ###########################################################################
# Setup
# ###########################################################################
ROOTDIR=$(dirname $0)
#
# Options
#
OPTIONS=(
"cwc:yes"
"v4l:yes"
"linuxdvb:yes"
"dvbscan:yes"
"imagecache:auto"
"avahi:auto"
"zlib:auto"
"libav:auto"
"timeshift:no"
"bundle:no"
"dvbcsa:no"
)
#
# Begin
#
. $ROOTDIR/support/configure.inc
parse_args $*
# ###########################################################################
# Checks
# ###########################################################################
#
# Compiler
#
check_cc || die 'No C compiler found'
check_cc_header execinfo
check_cc_option mmx
check_cc_option sse2
check_cc_snippet getloadavg '#include <stdlib.h>
void test() { getloadavg(NULL,0); }'
#
# Python
#
check_py || echo 'WARN: no python binary found'
check_py_import gzip
#
# Binaries
#
check_bin bzip2 || echo 'WARN: no bzip2 binary found'
#
# SSL
#
if check_pkg openssl || check_pkg libssl; then
enable ssl
else
die "SSL development support not found"
fi
#
# Gzip
#
if enabled_or_auto zlib; then
if check_pkg zlib; then
enable zlib
elif enabled zlib; then
die "Zlib development support not found (use --disable-zlib)"
fi
fi
#
# Bundling
#
if enabled bundle; then
if enabled zlib && ! enabled py_gzip; then
die "Python gzip module not found (use --disable-zlib or --disable-bundle)"
fi
fi
#
# Avahi
#
if enabled_or_auto avahi; then
if check_pkg avahi-client; then
enable avahi
elif enabled avahi; then
die "Avahi development support not found (use --disable-avahi)"
fi
fi
#
# libav
#
if enabled_or_auto libav; then
has_libav=true
if $has_libav && ! check_pkg libavutil ">=50.43.0"; then
has_libav=false
fi
if $has_libav && ! check_pkg libavformat "<=55.0.0"; then
has_libav=false
fi
if $has_libav && ! check_pkg libavformat ">=50.43.0"; then
has_libav=false
fi
if $has_libav; then
enable libav
elif enabled libav; then
die "libav development support not found (use --disable-libav)"
fi
fi
#
# DVB scan
#
if enabled linuxdvb && enabled dvbscan; then
if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
if ! enabled bin_bzip2; then
die "Bzip2 not found, fetch dvb-scan files (use --disable-dvbscan)"
fi
echo -n "Fetching dvb-scan files... "
if ${ROOTDIR}/support/getmuxlist &> /dev/null; then
echo "done"
else
echo
die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
fi
fi
fi
#
# libdvbcsa
#
if enabled cwc && enabled dvbcsa; then
(check_cc_header "dvbcsa/dvbcsa" dvbcsa_h &&\
check_cc_lib dvbcsa dvbcsa_l) ||\
die "Failed to find dvbcsa support (use --disable-dvbcsa)"
LDFLAGS="$LDFLAGS -ldvbcsa"
fi
#
# Icon caching
#
if enabled_or_auto imagecache; then
if check_pkg libcurl; then
enable imagecache
elif enabled imagecache; then
die "Libcurl support not found (use --disable-imagecache)"
fi
fi
# ###########################################################################
# Write config
# ###########################################################################
# Write config
write_config
cat >> ${CONFIG_H} <<EOF
#define TVHEADEND_DATADIR "$(eval echo ${datadir})/tvheadend"
EOF
# Output config
print_config
echo "Final Binary:"
echo " $BUILDDIR/tvheadend"
echo ""
echo "Tvheadend Data Directory:"
echo " $(eval echo ${datadir}/tvheadend)"
echo ""