X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8f64fddf07fe3c0bb4d13f975396313b9e62c4a1..49990dc5d536344c2a5793d0d21cb2880e5c5247:/acinclude.m4?ds=sidebyside diff --git a/acinclude.m4 b/acinclude.m4 index 63b14444..717cc51e 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,7 +1,8 @@ AC_DEFUN(TUXBOX_APPS,[ -AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE +INSTALL="$INSTALL -p" + AC_GNU_SOURCE AC_SYS_LARGEFILE @@ -10,7 +11,7 @@ AC_ARG_WITH(target, [TARGET="$withval"],[TARGET="native"]) AC_ARG_WITH(targetprefix, - [ --with-targetprefix=PATH prefix relative to target root [[PREFIX[for native], /[for cdk]]]], + [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)], [targetprefix="$withval"],[targetprefix="NONE"]) AC_ARG_WITH(debug, @@ -22,7 +23,11 @@ if test "$DEBUG" = "yes"; then AC_DEFINE(DEBUG,1,[Enable debug messages]) fi +AC_MSG_CHECKING(target) + if test "$TARGET" = "native"; then + AC_MSG_RESULT(native) + if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS" CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS" @@ -30,13 +35,10 @@ if test "$TARGET" = "native"; then if test "$prefix" = "NONE"; then prefix=/usr/local fi - if test "$targetprefix" = "NONE"; then - targetprefix="\${prefix}" - _targetprefix="${prefix}" - else - _targetprefix="$targetprefix" - fi + targetprefix=$prefix elif test "$TARGET" = "cdk"; then + AC_MSG_RESULT(cdk) + if test "$CC" = "" -a "$CXX" = ""; then CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++ fi @@ -45,124 +47,164 @@ elif test "$TARGET" = "cdk"; then CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS" fi if test "$prefix" = "NONE"; then - prefix=/dbox2/cdkroot + AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode) fi if test "$targetprefix" = "NONE"; then targetprefix="" - _targetprefix="" - else - _targetprefix="$targetprefix" fi if test "$host_alias" = ""; then cross_compiling=yes host_alias=powerpc-tuxbox-linux-gnu fi else + AC_MSG_RESULT(none) AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]); fi AC_CANONICAL_BUILD AC_CANONICAL_HOST -targetdatadir="\${targetprefix}/share" -_targetdatadir="${_targetprefix}/share" -targetsysconfdir="\${targetprefix}/etc" -_targetsysconfdir="${_targetprefix}/etc" -targetlocalstatedir="\${targetprefix}/var" -_targetlocalstatedir="${_targetprefix}/var" -targetlibdir="\${targetprefix}/lib" -_targetlibdir="${_targetprefix}/lib" -AC_SUBST(targetprefix) -AC_SUBST(targetdatadir) -AC_SUBST(targetsysconfdir) -AC_SUBST(targetlocalstatedir) - check_path () { return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}") } ]) +AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[ +AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[ + _$2=$withval + if test "$TARGET" = "cdk"; then + $2=`eval echo "${targetprefix}$withval"` + else + $2=$withval + fi +],[ + $2="\${$3}$5" + if test "$TARGET" = "cdk"; then + _$2=`eval echo "${target$3}$5"` + else + _$2=`eval echo "${$3}$5"` + fi +]) + +dnl automake <= 1.6 don't support this +dnl AC_SUBST($2) +AC_DEFINE_UNQUOTED($2,"$_$2",$7) +]) + AC_DEFUN(TUXBOX_APPS_DIRECTORY,[ AC_REQUIRE([TUXBOX_APPS]) -CONFIGDIR="\${localstatedir}/tuxbox/config" -_CONFIGDIR="${_targetlocalstatedir}/tuxbox/config" -AC_SUBST(CONFIGDIR) -AC_DEFINE_UNQUOTED(CONFIGDIR,"$_CONFIGDIR",[where to find the config files]) +if test "$TARGET" = "cdk"; then + datadir="\${prefix}/share" + tuxboxdatadir="\${prefix}/share/tuxbox" + zoneinfodir="\${datadir}/zoneinfo" + sysconfdir="\${prefix}/etc" + localstatedir="\${prefix}/var" + localedir="\${prefix}/var" + libdir="\${prefix}/lib" + targetdatadir="\${targetprefix}/share" + targetsysconfdir="\${targetprefix}/etc" + targetlocalstatedir="\${targetprefix}/var" + targetlibdir="\${targetprefix}/lib" +fi -DATADIR="\${datadir}/tuxbox" -_DATADIR="${_targetdatadir}/tuxbox" -AC_SUBST(DATADIR) -AC_DEFINE_UNQUOTED(DATADIR,"$_DATADIR",[where to find data like icons]) +TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,, + [--with-configdir=PATH ],[where to find the config files]) -FONTDIR="\${datadir}/fonts" -_FONTDIR="${_targetdatadir}/fonts" -AC_SUBST(FONTDIR) -AC_DEFINE_UNQUOTED(FONTDIR,"$_FONTDIR",[where to find the fonts]) +TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,, + [--with-datadir=PATH ],[where to find data]) -GAMESDIR="\${localstatedir}/tuxbox/games" -_GAMESDIR="${_targetlocalstatedir}/tuxbox/games" -AC_SUBST(GAMESDIR) -AC_DEFINE_UNQUOTED(GAMESDIR,"$_GAMESDIR",[where games data is stored]) +TUXBOX_APPS_DIRECTORY_ONE(localedir,LOCALEDIR,datadir,/share,/locale, + [--with-localedir=PATH ],[where to find locales]) -LIBDIR="\${libdir}/tuxbox" -_LIBDIR="${_targetlibdir}/tuxbox" -AC_SUBST(LIBDIR) -AC_SUBST(_LIBDIR) -AC_DEFINE_UNQUOTED(LIBDIR,"$_LIBDIR",[where to find the internal libs]) +TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts, + [--with-fontdir=PATH ],[where to find the fonts]) -PLUGINDIR="\${libdir}/tuxbox/plugins" -_PLUGINDIR="${_targetlibdir}/tuxbox/plugins" -AC_SUBST(PLUGINDIR) -AC_DEFINE_UNQUOTED(PLUGINDIR,"$_PLUGINDIR",[where to find the plugins]) +TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games, + [--with-gamesdir=PATH ],[where games data is stored]) -UCODEDIR="\${localstatedir}/tuxbox/ucodes" -_UCODEDIR="${_targetlocalstatedir}/tuxbox/ucodes" -AC_SUBST(UCODEDIR) -AC_DEFINE_UNQUOTED(UCODEDIR,"$_UCODEDIR",[where to find the ucodes (firmware)]) +TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,, + [--with-libdir=PATH ],[where to find the internal libs]) + +TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins, + [--with-plugindir=PATH ],[where to find the plugins]) + +TUXBOX_APPS_DIRECTORY_ONE(tuxboxdatadir,TUXBOXDATADIR,datadir,/share,, + [--with-tuxboxdatadir=PATH],[where to find tuxbox data]) + +TUXBOX_APPS_DIRECTORY_ONE(zoneinfodir,ZONEINFODIR,datadir,/share,/zoneinfo, + [--with-zoneinfodir=PATH ],[where to find zoneinfo db]) ]) +dnl automake <= 1.6 needs this specifications +AC_SUBST(CONFIGDIR) +AC_SUBST(DATADIR) +AC_SUBST(ZONEINFODIR) +AC_SUBST(FONTDIR) +AC_SUBST(GAMESDIR) +AC_SUBST(LIBDIR) +AC_SUBST(LOCALEDIR) +AC_SUBST(PLUGINDIR) +AC_SUBST(TUXBOXDATADIR) +dnl end workaround + AC_DEFUN(TUXBOX_APPS_ENDIAN,[ AC_CHECK_HEADERS(endian.h) AC_C_BIGENDIAN ]) AC_DEFUN(TUXBOX_APPS_DRIVER,[ -AC_ARG_WITH(driver, - [ --with-driver=PATH path for driver sources[[NONE]]], - [DRIVER="$withval"],[DRIVER=""]) - -if test -z "$DRIVER"; then - AC_MSG_ERROR([can't find driver sources]) -fi -CPPFLAGS="$CPPFLAGS -I$DRIVER/include" -AC_SUBST(DRIVER) +#AC_ARG_WITH(driver, +# [ --with-driver=PATH path for driver sources [[NONE]]], +# [DRIVER="$withval"],[DRIVER=""]) +# +#if test -d "$DRIVER/include"; then +# AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources]) +#else +# AC_MSG_ERROR([can't find driver sources]) +#fi + +#AC_SUBST(DRIVER) + +#CPPFLAGS="$CPPFLAGS -I$DRIVER/include" ]) AC_DEFUN([TUXBOX_APPS_DVB],[ AC_ARG_WITH(dvbincludes, - [ --with-dvbincludes=PATH path for dvb includes[[NONE]]], + [ --with-dvbincludes=PATH path for dvb includes [[NONE]]], [DVBINCLUDES="$withval"],[DVBINCLUDES=""]) -orig_CPPFLAGS=$CPPFLAGS if test "$DVBINCLUDES"; then - CPPFLAGS="-I$DVBINCLUDES" -else - CPPFLAGS="" + CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES" fi -AC_CHECK_HEADERS(linux/dvb/version.h,[DVB_VERSION_H="yes"]) -AC_CHECK_HEADERS(ost/dmx.h,[OST_DMX_H="yes"]) -if test "$DVB_VERSION_H"; then - AC_MSG_NOTICE([found dvb version 2 or later]) -elif test "$OST_DMX_H"; then + +AC_CHECK_HEADERS(ost/dmx.h,[ + DVB_API_VERSION=1 AC_MSG_NOTICE([found dvb version 1]) +]) + +if test -z "$DVB_API_VERSION"; then +AC_CHECK_HEADERS(linux/dvb/version.h,[ + AC_LANG_PREPROC_REQUIRE() + AC_REQUIRE([AC_PROG_EGREP]) + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +#include +version DVB_API_VERSION + ]])]) + DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"` + rm -f conftest* + + AC_MSG_NOTICE([found dvb version $DVB_API_VERSION]) +]) +fi + +if test "$DVB_API_VERSION"; then + AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes]) + AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api]) else AC_MSG_ERROR([can't find dvb headers]) fi -DVB_VERSION_H= -OST_DMX_H= -CPPFLAGS="$orig_CPPFLAGS -I$DVBINCLUDES" ]) AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[ @@ -199,16 +241,19 @@ fi ]) AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[ -AC_REQUIRE([TUXBOX_APPS_PKGCONFIG]) -AC_MSG_CHECKING(for package $2) -if PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - $1_CFLAGS=$(PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" $PKG_CONFIG --cflags "$2") - $1_LIBS=$(PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" $PKG_CONFIG --libs "$2") +PKG_CHECK_MODULES($1,$2) +AC_SUBST($1_CFLAGS) +AC_SUBST($1_LIBS) +]) + +AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG_OPTIONAL,[ +PKG_CHECK_MODULES($1,$2,$3="yes",$3="no") +if test "$$3" = "yes"; then + AC_DEFINE($3, 1, [$2 available]) else - AC_MSG_RESULT(no) + $1_CFLAGS="" + $1_LIBS="" fi - AC_SUBST($1_CFLAGS) AC_SUBST($1_LIBS) ]) @@ -335,8 +380,7 @@ AC_SUBST(DUMMYPOFILES) AC_SUBST(CATALOGS) ]) - - +dnl backward compatiblity AC_DEFUN([AC_GNU_SOURCE], [AH_VERBATIM([_GNU_SOURCE], [/* Enable GNU extensions on systems that have them. */ @@ -348,3 +392,95 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_DEFINE([_GNU_SOURCE]) ]) +AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +]) + +AC_DEFUN([AC_PYTHON_DEVEL],[ + # + # should allow for checking of python version here... + # + if test $cross_compiling = "yes"; then + # Check for Python include path + AC_MSG_CHECKING([for Python include path]) + + # FIXME: yes, this is wrong. sorry about that. (tmbinc) + cross_PYTHON_VERSION=$PYTHON_VERSION + python_path= + for i in $CPPFLAGS ; do + p=`echo $i | sed "s,^-I,,"` + if test -f "$p/python$cross_PYTHON_VERSION/Python.h"; then + python_path="$p/python$cross_PYTHON_VERSION" + break + fi + done + AC_MSG_RESULT([$python_path]) + if test -z "$python_path" ; then + AC_MSG_ERROR([cannot find Python include path]) + fi + AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path]) + + # Check for Python library path + AC_MSG_CHECKING([for Python library path]) + python_path= + for i in $LDFLAGS; do + l=`echo $i | sed "s,^-L,,"` + python_path=`find $l -type f -name libpython$cross_PYTHON_VERSION.* -print | sed "1q"` + if test -n "$python_path" ; then + break + fi + done + python_path=`echo $python_path | sed "s,/libpython.*$,,"` + AC_MSG_RESULT([$python_path]) + if test -z "$python_path" ; then + AC_MSG_ERROR([cannot find Python library path]) + fi + AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$cross_PYTHON_VERSION"]) + # + python_site=`echo $python_path | sed "s/config/site-packages/"` + AC_SUBST([PYTHON_SITE_PKG],[$python_site]) + else + AC_REQUIRE([AM_PATH_PYTHON]) + + # Check for Python include path + AC_MSG_CHECKING([for Python include path]) + python_path=`echo $PYTHON | sed "s,/bin.*$,,"` + for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do + python_path=`find $i -type f -name Python.h -print | sed "1q"` + if test -n "$python_path" ; then + break + fi + done + python_path=`echo $python_path | sed "s,/Python.h$,,"` + AC_MSG_RESULT([$python_path]) + if test -z "$python_path" ; then + AC_MSG_ERROR([cannot find Python include path]) + fi + AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path]) + + # Check for Python library path + AC_MSG_CHECKING([for Python library path]) + python_path=`echo $PYTHON | sed "s,/bin.*$,,"` + for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do + python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"` + if test -n "$python_path" ; then + break + fi + done + python_path=`echo $python_path | sed "s,/libpython.*$,,"` + AC_MSG_RESULT([$python_path]) + if test -z "$python_path" ; then + AC_MSG_ERROR([cannot find Python library path]) + fi + AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"]) + # + python_site=`echo $python_path | sed "s/config/site-packages/"` + AC_SUBST([PYTHON_SITE_PKG],[$python_site]) + fi +])