tvheadend/support/configure.inc

136 lines
No EOL
2.2 KiB
Bash

#!/bin/bash
#
# Tvheadend configure shared functions
#
# Copyright (c) 2005-2008 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
#
TOPDIR=`pwd`
TMPDIR=${TOPDIR}/tmp
BUILDDIR=build.${PLATFORM}
DEFAULT_THEME="new"
RELEASE=no
CONFIG_LIST="
cwc
avahi
mmx
sse2
linuxdvb
v4l
execinfo
"
die() {
rm -rf $TMPDIR
exit
}
set_all(){
value=$1
shift
for var in $*; do
eval $var=$value
done
}
enable(){
set_all yes $*
}
disable(){
set_all no $*
}
enabled(){
test "${1#!}" = "$1" && op== || op=!=
eval test "x\$${1#!}" $op "xyes"
}
disabled(){
test "${1#!}" = "$1" && op== || op=!=
eval test "x\$${1#!}" $op "xno"
}
toupper(){
echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
}
print_config(){
pfx=$1
header=$2
makefile=$3
shift 3
for cfg; do
ucname="`toupper $cfg`"
if enabled $cfg; then
echo "#define ${pfx}${ucname} 1" >> $header
echo "#define ENABLE_${ucname} 1" >> $header
echo "${pfx}${ucname}=yes" >> $makefile
else
echo "#define ENABLE_${ucname} 0" >> $header
fi
done
}
setup_env(){
# Create the dir for local libs, and get rid of any relative path
mkdir -p ${BUILDDIR}
BUILDDIR=`cd ${BUILDDIR} && pwd`
CONFIG_H=${BUILDDIR}/config.h
CONFIG_MAK=${BUILDDIR}/config.mak
CONFIG_DEF=${TOPDIR}/config.default
mkdir -p ${BUILDDIR}
# Create a tmpdir used during configure
mkdir -p ${TMPDIR}
TMPDIR=`cd ${TMPDIR} && pwd`
# Create config.mak
cat > ${CONFIG_MAK} << EOF
# Automatically generated by configure, do not edit
TOPDIR=$TOPDIR
EOF
# Create config.h
cat > ${CONFIG_H} << EOF
/* Automatically generated by configure, do not edit */
EOF
# Create config.default
cat > ${CONFIG_DEF} << EOF
# Automatically generated by configure, do not edit
PLATFORM ?= $PLATFORM
EOF
}
finalize() {
cat >> ${CONFIG_MAK} << EOF
OSENV=${OSENV}
LDFLAGS_cfg += -lm
EOF
print_config CONFIG_ ${CONFIG_H} ${CONFIG_MAK} $CONFIG_LIST
echo "Final binary is: build.${PLATFORM}/tvheadend"
die
}