#!/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 }