232 lines
4.2 KiB
Bash
Executable file
232 lines
4.2 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# Tvheadend configure script
|
|
#
|
|
# Copyright (c) 2012 Adam Sutton <dev@adamsutton.me.uk>
|
|
#
|
|
|
|
# ###########################################################################
|
|
# Setup
|
|
# ###########################################################################
|
|
|
|
ROOTDIR=$(cd "$(dirname "$0")"; pwd)
|
|
|
|
#
|
|
# Options
|
|
#
|
|
|
|
OPTIONS=(
|
|
"cwc:yes"
|
|
"v4l:yes"
|
|
"linuxdvb:yes"
|
|
"dvbscan:yes"
|
|
"timeshift:yes"
|
|
"trace:yes"
|
|
"imagecache:auto"
|
|
"avahi:auto"
|
|
"zlib:auto"
|
|
"libav:auto"
|
|
"inotify:auto"
|
|
"bundle:no"
|
|
"dvbcsa:no"
|
|
"epoll:yes"
|
|
"kqueue:no"
|
|
)
|
|
|
|
#
|
|
# Begin
|
|
#
|
|
|
|
. "$ROOTDIR/support/configure.inc"
|
|
parse_args $*
|
|
|
|
# ###########################################################################
|
|
# Checks
|
|
# ###########################################################################
|
|
|
|
echo "Checking support/features"
|
|
|
|
#
|
|
# 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); }'
|
|
|
|
check_cc_snippet atomic64 '#include <stdint.h>
|
|
uint64_t test(uint64_t *ptr){
|
|
return __sync_fetch_and_add(ptr, 1);
|
|
}'
|
|
|
|
#
|
|
# 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 [ ${PLATFORM} = "freebsd" ]; then
|
|
# FreeBSD has libssl in base
|
|
enable ssl
|
|
elif 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 libavcodec "<=55.0.0"; then
|
|
has_libav=false
|
|
fi
|
|
|
|
if $has_libav && ! check_pkg libavcodec ">=52.96.0"; then
|
|
has_libav=false
|
|
fi
|
|
|
|
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 ">=53.10.0"; then
|
|
has_libav=false
|
|
fi
|
|
|
|
if $has_libav && ! check_pkg libswscale ">=0.13.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
|
|
|
|
#
|
|
# Inotify
|
|
#
|
|
if enabled_or_auto inotify; then
|
|
if check_cc_header "sys/inotify" inotify_h; then
|
|
enable inotify
|
|
elif enabled inotify; then
|
|
die "Inotify support not found (use --disable-inotify)"
|
|
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
|
|
|
|
#
|
|
# DVB scan
|
|
#
|
|
if enabled linuxdvb && enabled dvbscan; then
|
|
printf "${TAB}" "fetching dvb-scan files ..."
|
|
"${ROOTDIR}/support/getmuxlist"
|
|
if [ $? -ne 0 ]; then
|
|
echo "fail"
|
|
die "Failed to fetch dvb-scan data (use --disable-dvbscan)"
|
|
fi
|
|
echo "ok"
|
|
fi
|
|
|
|
#
|
|
# epoll
|
|
#
|
|
if [ ${PLATFORM} != "linux" ]; then
|
|
disable epoll
|
|
fi
|
|
|
|
#
|
|
# kqueue
|
|
#
|
|
if [ ${PLATFORM} = "freebsd" ]; then
|
|
enable kqueue
|
|
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 ""
|