tvheadend/configure
2011-10-26 16:39:57 +02:00

191 lines
3.7 KiB
Bash
Executable file

#!/bin/bash
#
# HTS configure script
#
# Copyright (c) 2005-2009 Andreas Öman
#
# Based on FFmpeg's configure script:
#
# Copyright (c) 2000-2002 Fabrice Bellard
# Copyright (c) 2005-2008 Diego Biurrun
# Copyright (c) 2005-2008 Mans Rullgard
#
PLATFORM=`uname`
source support/configure.inc
CPU=generic
ARCH=`uname -m`
OSENV="posix"
PREFIX=/usr/local
show_help(){
echo "Usage: configure [options]"
echo "Options: [defaults in brackets after descriptions]"
echo
echo "Standard options:"
echo " --help print this message"
echo " --prefix=PREFIX install in PREFIX [$PREFIX]"
echo " --arch=arch Build for this architecture [$ARCH]"
echo " --cpu=cpu Build and optimize for specific CPU"
echo " --cc=CC Build using the given compiler"
echo " --release Stage for release"
exit 1
}
enable cwc
enable avahi
enable linuxdvb
enable v4l
for opt do
optval="${opt#*=}"
case "$opt" in
--prefix=*) PREFIX="$optval"
;;
--cpu=*) CPU="$optval"
;;
--help) show_help
;;
--release)
RELEASE=yes
;;
--cc=*) CC="$optval"
;;
--enable-?*|--disable-?*)
eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
$action $option
;;
esac
done
setup_env
#
# c compiler
#
checkcc() {
cat >$TMPDIR/1.c <<EOF
int main() {
return 0;
}
EOF
$CC 2>/dev/null $TMPDIR/1.c -o $TMPDIR/1.bin
}
checkccarg() {
cat >$TMPDIR/1.c <<EOF
int main() {
return 0;
}
EOF
$CC 2>/dev/null $TMPDIR/1.c -o $TMPDIR/1.bin $1
}
if [ "x$CC" != "x" ]; then
echo >${CONFIG_MAK} "CC=$CC"
else
CC=cc
fi
if checkcc; then
echo "Using C compiler: $CC"
else
echo "C compiler ($CC) is not working"
die
fi
if checkccarg "-mmmx"; then
enable mmx
fi
if checkccarg "-msse2"; then
enable sse2
fi
check_header_c() {
cat >$TMPDIR/1.c <<EOF
#include <$1>
int main() {
return 0;
}
EOF
$CC 2>/dev/null $TMPDIR/1.c -o $TMPDIR/1.bin
}
check_header_c "execinfo.h" && enable execinfo
echo >>${CONFIG_MAK} $CC_CONFIG_MAK
#
# AVAHI
#
if enabled avahi; then
if pkg-config avahi-client; then
# CFLAGS are included by Makefile
echo >>${CONFIG_MAK} "LDFLAGS_cfg += " `pkg-config --libs avahi-client`
echo >>${CONFIG_MAK} "CFLAGS_cfg += "`pkg-config --cflags avahi-client`
echo "Using AVAHI client: `pkg-config --modversion avahi-client`"
else
echo "avahi-client not found. Unable to build with AVAHI support."
echo "To compile without it, configure with: --disable-avahi"
die
fi
fi
if pkg-config openssl; then
echo >>${CONFIG_MAK} "LDFLAGS_cfg += " `pkg-config --libs openssl`
echo >>${CONFIG_MAK} "CFLAGS_cfg += " `pkg-config --cflags openssl`
echo "Using openssl: `pkg-config --modversion openssl`"
elif pkg-config libssl; then
echo >>${CONFIG_MAK} "LDFLAGS_cfg += " `pkg-config --libs libssl`
echo >>${CONFIG_MAK} "CFLAGS_cfg += " `pkg-config --cflags libssl`
echo "Using libssl: `pkg-config --modversion libssl`"
else
echo "libssl or openssl not found"
die
fi
#
# Configure paths, etc
#
if [ ${RELEASE} != yes ]; then
echo NOTE:
echo NOTE: Development build.
echo NOTE: The generated binary will contained compild-in paths to
echo NOTE: the current build tree. If you plan to install or move
echo NOTE: the binary, please reconfigure with '--release'.
echo NOTE:
cat >> ${CONFIG_H} << EOF
#define TVHEADEND_CONTENT_PATH "${TOPDIR}"
EOF
else
echo >>${CONFIG_MAK} "BUNDLES += docs/html docs/docresources src/webui/static"
cat >> ${CONFIG_H} << EOF
#define TVHEADEND_CONTENT_PATH NULL
EOF
fi
#
# Finalize
#
cat >> ${CONFIG_MAK} << EOF
ARCH=$ARCH
INSTALLPREFIX=$PREFIX
LDFLAGS_cfg += -lpthread
EOF
finalize