Files
neutrino/configure.ac

510 lines
16 KiB
Plaintext

# explicit defines for separate revision handling
define(ver_major, 3)
define(ver_minor, 13)
define(ver_micro, 0)
define(rel_cycle, "ver_major.0")
# sync with current git
define(ver_git, m4_esyscmd([
GITBRANCH=$(git rev-parse --abbrev-ref HEAD);
GITDESCRIBE=$(git describe --always --tags --dirty);
printf "$GITDESCRIBE $GITBRANCH"
]))
define(ver_date, m4_esyscmd([
BUILTDATE=$(date);
printf "$BUILTDATE"
]))
AC_INIT(Tuxbox-Neutrino,ver_major.ver_minor.ver_micro)
AM_INIT_AUTOMAKE([nostdinc foreign])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
AC_DEFINE(PACKAGE_RELEASE_CYCLE, rel_cycle, [Release cycle information; used in update code; only relevant for flash image releases ])
AC_DEFINE(PACKAGE_VERSION_MAJOR, ver_major, [Major version number])
AC_DEFINE(PACKAGE_VERSION_MINOR, ver_minor, [Minor version number])
AC_DEFINE(PACKAGE_VERSION_MICRO, ver_micro, [Micro version number])
AC_DEFINE(PACKAGE_VERSION_GIT, "ver_git", [internal vcs version info])
AC_DEFINE(PACKAGE_VERSION_DATE, "ver_date", [internal built date])
TUXBOX_APPS
TUXBOX_APPS_DIRECTORY
TUXBOX_APPS_PKGCONFIG
TUXBOX_BOXTYPE
AC_PROG_CC
AC_PROG_CXX
AC_DISABLE_STATIC
LT_INIT
# Add build information to local_build_config.h.tmp
# -------------------------------------------------
rm -f local_build_config.h.tmp
cat > local_build_config.h.tmp << EOF
/* Build system under which the program was compiled on. */
#define USED_BUILD "$build"
/* Define to the used CXXFLAGS to compile this package. */
#define USED_CXXFLAGS "$CXXFLAGS"
EOF
if COMPILER=`$CC --version | head -n 1`; then
cat >> local_build_config.h.tmp <<-EOF
/* Define to name and version of used compiler */
#define USED_COMPILER "$COMPILER"
EOF
fi
# only update header if it differs to avoid unnecessary rebuilds
if ! diff local_build_config.h.tmp local_build_config.h >/dev/null 2>&1; then
rm -f local_build_config.h
mv local_build_config.h.tmp local_build_config.h
else
rm -f local_build_config.h.tmp
fi
AC_ARG_ENABLE(ffmpegdec,
AS_HELP_STRING([--enable-ffmpegdec], [enable ffmpeg decoder support @<:@default=no@:>@]),
AC_DEFINE(ENABLE_FFMPEGDEC, 1, [include ffmpeg decoder support]))
AM_CONDITIONAL(ENABLE_FFMPEGDEC, test "$enable_ffmpegdec" = "yes")
if test "$enable_ffmpegdec" != "yes"; then
AC_ARG_WITH(tremor,
AS_HELP_STRING([--with-tremor], [use libvorbisidec instead of libogg/libvorbis @<:@default=no@:>@]),
[TREMOR="$withval"],
[TREMOR=no])
AC_ARG_WITH(tremor-static,
AS_HELP_STRING([--with-tremor-static], [use statically linked libvorbisidec instead of libogg/libvorbis @<:@default=no@:>@]),
[TREMOR_STATIC="$withval"],
[TREMOR_STATIC=no])
if test "$TREMOR_STATIC" = "yes"; then
TREMOR=yes
fi
if test "$TREMOR" = "yes"; then
TUXBOX_APPS_LIB_PKGCONFIG(VORBISIDEC,vorbisidec)
AC_DEFINE(USE_TREMOR, 1, use libvorbisidec/tremor library)
fi
if test "$TREMOR_STATIC" = "yes"; then
# hack to get the static lib location from the pkg-config data
VORBISIDEC_LIBS="$(echo $VORBISIDEC_LIBS | sed 's@-L@@; s@ -l.*@/libvorbisidec.a@;')"
fi
TUXBOX_APPS_LIB_PKGCONFIG_CHECK(ID3TAG,libid3tag)
if test x"$ID3TAG_EXISTS" != xyes; then
TUXBOX_APPS_LIB_PKGCONFIG(ID3TAG,id3tag)
fi
TUXBOX_APPS_LIB_PKGCONFIG_CHECK(MAD,libmad)
if test x"$MAD_EXISTS" != xyes; then
TUXBOX_APPS_LIB_PKGCONFIG(MAD,mad)
fi
TUXBOX_APPS_LIB_PKGCONFIG_CHECK(OGG,ogg)
if test -z "$OGG_CFLAGS" ; then
TUXBOX_APPS_LIB_PKGCONFIG(OGG,ogg)
fi
fi # test "$enable_ffmpegdec"
TUXBOX_APPS_LIB_PKGCONFIG(SWRESAMPLE,libswresample)
AM_CONDITIONAL(USE_TREMOR, test "$TREMOR" = "yes")
# TUXBOX_APPS_LIB_PKGCONFIG(OPENSSL,openssl)
TUXBOX_APPS_LIB_PKGCONFIG(CURL,libcurl)
## For the check you must use the corresponding libtool number as version number,
## see freetype source code docs/VERSIONS.TXT
PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 16.2.10], [
echo "freetype2 >= 2.5.0 found"
], [
echo "freetype2 >= 2.5.0 not found, use alternative search method with freetype-config"
#AC_MSG_ERROR([freetype2 >= 2.5.0 not found])
])
# fallback to curl-config (which is ugly for cross-compilation)
if test -z "$CURL_LIBS" -a -z "$CURL_CFLAGS"; then
TUXBOX_APPS_LIB_CONFIG(CURL,curl-config)
fi
# fallback to freetype-config (which is ugly for cross-compilation)
if test -z "$FREETYPE_LIBS" -a -z "$FREETYPE_CFLAGS"; then
TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
CPPFLAGS+=" $FREETYPE_CFLAGS"
AC_MSG_CHECKING([whether FreeType version is 2.5.0 or higher])
AC_TRY_CPP([
#include <ft2build.h>
#include FT_FREETYPE_H
#if FREETYPE_MAJOR < 2 || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR < 5)
#error Freetype version too low.
#endif
], [
AC_MSG_RESULT(yes)
], [
AC_MSG_ERROR([Need FreeType library version 2.5.0 or higher])
])
fi
TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
TUXBOX_APPS_LIB_PKGCONFIG(AVFORMAT,libavformat)
TUXBOX_APPS_LIB_PKGCONFIG(AVCODEC,libavcodec)
TUXBOX_APPS_LIB_PKGCONFIG(AVUTIL,libavutil)
TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-2.0)
if test "$BOXTYPE" = "armbox" -o "$BOXTYPE" = "mipsbox"; then
TUXBOX_APPS_LIB_PKGCONFIG(SWSCALE,libswscale)
fi
if test "$BOXTYPE" = "coolstream"; then
TUXBOX_APPS_LIB_PKGCONFIG(BLURAY,libbluray)
fi
if test "$BOXTYPE" = "coolstream" ||
test "$BOXTYPE" = "armbox" ||
test "$BOXTYPE" = "mipsbox" ||
test "$BOXTYPE" = "generic" ||
test "$BOXTYPE" = "spark"; then
AC_DEFINE(SCREENSHOT, 1, [Define to 1 if the platform supports screenshots])
fi
AC_ARG_ENABLE(lcd4linux,
AS_HELP_STRING([--enable-lcd4linux], [enable Lcd4Linux support]),
,[enable_lcd4linux=no])
AM_CONDITIONAL(ENABLE_LCD4LINUX, test "$enable_lcd4linux" = "yes")
if test "$enable_lcd4linux" = "yes"; then
AC_DEFINE(ENABLE_LCD4LINUX, 1, [include Lcd4Linux support])
fi
AC_ARG_ENABLE(keyboard-no-rc,
AS_HELP_STRING([--enable-keyboard-no-rc], [enable keyboard control, disable rc control @<:@default=no@:>@]),
AC_DEFINE(KEYBOARD_INSTEAD_OF_REMOTE_CONTROL, 1, [enable keyboard control, disable rc control]))
AC_ARG_ENABLE(mdev,
AS_HELP_STRING([--enable-mdev], [use mdev instead of broken neutrino mount hack @<:@default=no@:>@]),
AC_DEFINE(ASSUME_MDEV, 1, [use mdev instead of broken neutrino mount hack]))
AC_ARG_ENABLE(freesatepg,
AS_HELP_STRING([--enable-freesatepg], [enable Freesat EPG code @<:@default=no@:>@]),
AC_DEFINE(ENABLE_FREESATEPG, 1, [enable Freesat EPG code]))
AC_ARG_ENABLE(viasatepg,
AS_HELP_STRING([--enable-viasatepg], [enable ViaSat EPG code @<:@default=no@:>@]),
AC_DEFINE(ENABLE_VIASATEPG, 1, [enable ViaSat EPG code]))
AC_ARG_ENABLE(fastscan,
AS_HELP_STRING([--enable-fastscan], [enable fastscan code @<:@default=no@:>@]),
AC_DEFINE(ENABLE_FASTSCAN, 1, [enable fastscan code]))
AM_CONDITIONAL(ENABLE_FASTSCAN, test "$enable_fastscan" = "yes")
AC_ARG_ENABLE(giflib,
AS_HELP_STRING([--enable-giflib], [use giflib instead of libungif @<:@default=no@:>@]),
AC_DEFINE(ENABLE_GIFLIB, 1, [use giflib instead of libungif]))
AM_CONDITIONAL(ENABLE_GIFLIB, test "$enable_giflib" = "yes")
AC_ARG_ENABLE(pugixml,
AS_HELP_STRING([--enable-pugixml], [use pugixml instead of xmltree @<:@default=no@:>@]),
AC_DEFINE(USE_PUGIXML, 1, [use pugixml instead of xmltree]))
AM_CONDITIONAL(USE_PUGIXML, test "$enable_pugixml" = "yes")
AC_ARG_ENABLE(flac,
AS_HELP_STRING([--enable-flac], [enable FLAC support @<:@default=no@:>@]),
AC_DEFINE(ENABLE_FLAC, 1, [enable FLAC support]))
AM_CONDITIONAL(ENABLE_FLAC, test "$enable_flac" = "yes")
AC_ARG_ENABLE(upnp,
AS_HELP_STRING([--enable-upnp], [enable UPNP support @<:@default=yes@:>@]),
[enable_upnp="$enableval"],
[enable_upnp="yes"])
if test "$enable_upnp" = "yes"; then
AC_DEFINE(ENABLE_UPNP, 1, [enable UPNP support])
fi
AM_CONDITIONAL(ENABLE_UPNP, test "$enable_upnp" = "yes")
AC_ARG_ENABLE(arm-acc,
AS_HELP_STRING([--enable-arm-acc], [enable arm hardware acceleration @<:@default=yes@:>@]]),
[enable_arm_acc="$enableval"],
[enable_arm_acc="yes"])
if test "$enable_arm_acc" = "yes"; then
AC_DEFINE(ENABLE_ARM_ACC, 1, [enable arm hardware acceleration])
fi
AM_CONDITIONAL(ENABLE_ARM_ACC, test "$enable_arm_acc" = "yes")
AC_ARG_ENABLE(mips-acc,
AS_HELP_STRING([--enable-mips-acc], [enable mips hardware acceleration @<:@default=yes@:>@]]),
[enable_mips_acc="$enableval"],
[enable_mips_acc="yes"])
if test "$enable_mips_acc" = "yes"; then
AC_DEFINE(ENABLE_MIPS_ACC, 1, [enable mips hardware acceleration])
fi
AM_CONDITIONAL(ENABLE_MIPS_ACC, test "$enable_mips_acc" = "yes")
AC_ARG_ENABLE(extupdate,
AS_HELP_STRING([--enable-extupdate], [enable extended update routine @<:@default=no@:>@]),
AC_DEFINE(ENABLE_EXTUPDATE, 1, [enable extended update routine]))
AM_CONDITIONAL(ENABLE_EXTUPDATE, test "$enable_extupdate" = "yes")
AC_ARG_ENABLE(lua,
AS_HELP_STRING([--enable-lua], [enable Lua support @<:@default=yes@:>@]),
[enable_lua="$enableval"],
[enable_lua="yes"])
if test "$enable_lua" = "yes"; then
AC_DEFINE(ENABLE_LUA, 1, [include Lua support])
PKG_CHECK_MODULES(LUA, lua, LLUA="yes", LLUA="no")
PKG_CHECK_MODULES(luajit, luajit, LLUAJIT="yes", LLUAJIT="no")
if test "x$LLUAJIT" = "xyes"; then
LUA_LIBS="-lluajit-5.1"
AC_DEFINE(LUA_COMPAT_5_2, 1, [needed for build with lua 5.1])
elif test "x$LLUA" = "xyes"; then
LUA_LIBS="-llua"
AC_DEFINE(LUA_COMPAT_5_2, 0, [needed for build with lua 5.1])
else
echo "lualib not found, assuming static lua in linker path..."
LUA_LIBS="-llua -ldl"
AC_DEFINE(STATIC_LUAPOSIX, 1, [Define to 1 for static lua build.])
AC_DEFINE(LUA_COMPAT_5_2, 0, [needed for build with lua 5.1])
fi
fi
AM_CONDITIONAL(ENABLE_LUA, test "$enable_lua" = "yes")
AC_ARG_ENABLE(cleanup,
AS_HELP_STRING([--enable-cleanup], [enable cleanup on exit @<:@default=no@:>@]),
AC_DEFINE(EXIT_CLEANUP, 1, [enable cleanup on exit]))
AC_ARG_ENABLE(pip,
AS_HELP_STRING([--enable-pip], [enable picture in picture support @<:@default=no@:>@]),
AC_DEFINE(ENABLE_PIP, 1, [enable picture in picture support]))
AC_ARG_ENABLE(testing,
AS_HELP_STRING([--enable-testing], [enable development code @<:@default=no@:>@]),
AC_DEFINE(ENABLE_TESTING, 1, [enable development code]))
AM_CONDITIONAL(ENABLE_TESTING, test "$enable_testing" = "yes")
AC_ARG_ENABLE(fribidi,
AS_HELP_STRING([--enable-fribidi], [enable fribidi support @<:@default=no@:>@]),
AC_DEFINE(ENABLE_FRIBIDI, 1, [enable fribidi support]))
AM_CONDITIONAL(ENABLE_FRIBIDI, test "$enable_fribidi" = "yes")
AC_ARG_WITH(stb-hal-includes,
AS_HELP_STRING([--with-stb-hal-includes=PATH], [path for libstb-hal includes [[NONE]]]),
[STB_HAL_INC="$withval"],
[STB_HAL_INC=""])
AC_ARG_WITH(stb-hal-build,
AS_HELP_STRING([--with-stb-hal-build=PATH], [path where libstb-hal is built [[NONE]]]),
[STB_HAL_LIB="-L$withval"],
[STB_HAL_LIB=""])
if test "$BOXTYPE" != coolstream; then
AC_DEFINE(USE_STB_HAL, 1, [use libstb-hal])
if test "$STB_HAL_INC" = ""; then
AC_MSG_ERROR([need libstb-hal includes path with --with-stb-hal-includes=...])
fi
HWLIB_CFLAGS="-I$STB_HAL_INC"
fi
AM_CONDITIONAL(USE_STB_HAL, test "$BOXTYPE" != "coolstream")
if test "$BOXTYPE" = "coolstream"; then
if test "$BOXMODEL" = "hd1"; then
if test -e ${srcdir}/lib/hardware/coolstream/hd1/libcoolstream/nevis_ir.h; then
AC_DEFINE(HAVE_COOLSTREAM_NEVIS_IR_H, 1, [Define to 1 if you have the <nevis_ir.h> header file.])
fi
HWLIB_CFLAGS='-I$(top_srcdir)/lib/hardware/coolstream/hd1/libcoolstream'
fi
if test "$BOXMODEL" = "hd2"; then
if test -e ${srcdir}/lib/hardware/coolstream/hd2/libcoolstream/cs_ir_generic.h; then
AC_DEFINE(HAVE_COOLSTREAM_CS_IR_GENERIC_H, 1, [Define to 1 if you have the <cs_ir_generic.h> header file.])
fi
if test -e ${srcdir}/lib/hardware/coolstream/hd2/libcoolstream/cs_frontpanel.h; then
AC_DEFINE(HAVE_COOLSTREAM_CS_FRONTPANEL_H, 1, [Define to 1 if you have the <cs_frontpanel.h> header file.])
fi
HWLIB_CFLAGS='-I$(top_srcdir)/lib/hardware/coolstream/hd2/libcoolstream'
fi
HWLIB_CFLAGS="$HWLIB_CFLAGS "'-I$(top_srcdir)/lib/hardware/coolstream'
fi
# hack, so that framebuffer.h does not need to be included everywhere...
AC_DEFINE(fb_pixel_t, uint32_t, [hack, so that framebuffer.h does not need to be included everywhere...])
# hack to define a short filename also for out-of-tree build
if test `dirname $0` = `pwd` || test "$0" = ./configure; then
HWLIB_CFLAGS="$HWLIB_CFLAGS "'-D__file__=__FILE__'
HWLIB_CFLAGS="$HWLIB_CFLAGS "'-D__path_file__=__FILE__'
else
HWLIB_CFLAGS="$HWLIB_CFLAGS "'-D__file__="\"$(subst $(srcdir)/,,$(abspath $<))\""'
HWLIB_CFLAGS="$HWLIB_CFLAGS "'-D__path_file__="\"$(subst $(top_srcdir)/,,$(abspath $<))\""'
fi
AC_SUBST(HWLIB_CFLAGS)
AC_SUBST(FREETYPE_CFLAGS)
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(VORBISIDEC_CFLAGS)
AC_SUBST(VORBISIDEC_LIBS)
AC_SUBST(STB_HAL_INC)
AC_SUBST(STB_HAL_LIB)
AC_SUBST(LUA_CFLAGS)
AC_SUBST(LUA_LIBS)
AC_SUBST(BLURAY_LIBS)
AC_SUBST(LIBCOOLSTREAM_STATIC_DIR)
# Makefiles
AC_CONFIG_FILES([
Makefile
data/Makefile
data/config/Makefile
data/control/Makefile
data/fonts/Makefile
data/icons/Makefile
data/icons/buttons/Makefile
data/icons/filetypes/Makefile
data/icons/headers/Makefile
data/icons/hints/Makefile
data/icons/locale/Makefile
data/icons/movieplayer/Makefile
data/icons/radar/Makefile
data/icons/slider/Makefile
data/icons/status/Makefile
data/icons/status/ca/Makefile
data/icons/status/channel/Makefile
data/icons/status/markers/Makefile
data/icons/status/various/Makefile
data/icons/various/Makefile
data/icons/weather/Makefile
data/inetradio/Makefile
data/initial/Makefile
data/iso-codes/Makefile
data/lcd/Makefile
data/lcd/clock/Makefile
data/lcd/icons/Makefile
data/license/Makefile
data/locale/Makefile
data/oled/Makefile
data/oled/fonts/Makefile
data/oled/icons/Makefile
data/oled/icons/clock/Makefile
data/oled/icons/weather/Makefile
data/oled/themes/Makefile
data/oled/themes/400x240/Makefile
data/oled/themes/480x320/Makefile
data/oled/themes/800x480/Makefile
data/pictures/Makefile
data/pictures/backgrounds/Makefile
data/pictures/screensaver/Makefile
data/policy/Makefile
data/scripts/Makefile
data/themes/Makefile
data/themes/Grey-3.0/Makefile
data/themes/Grey-3.0/icons/Makefile
data/themes/Grey-3.0/icons/buttons/Makefile
data/themes/Grey-Blue/Makefile
data/themes/Grey-Blue/icons/Makefile
data/themes/Grey-Blue/icons/buttons/Makefile
data/themes/Neutrino-3.0/Makefile
data/themes/Neutrino-3.0/icons/Makefile
data/themes/Neutrino-3.0/icons/buttons/Makefile
data/themes/Olive-3.0/Makefile
data/themes/Olive-3.0/icons/Makefile
data/themes/Olive-3.0/icons/buttons/Makefile
data/webradio/Makefile
data/webtv/Makefile
data/y-web/Makefile
data/y-web/images/Makefile
data/y-web/languages/Makefile
data/y-web/scripts/Makefile
data/y-web/styles/Makefile
data/zapit/Makefile
lib/Makefile
lib/connection/Makefile
lib/hardware/coolstream/Makefile
lib/jsoncpp/Makefile
lib/libconfigfile/Makefile
lib/libdvbsub/Makefile
lib/libeventserver/Makefile
lib/libiw/Makefile
lib/libmd5sum/Makefile
lib/libnet/Makefile
lib/libtuxtxt/Makefile
lib/libupnpclient/Makefile
lib/luaclient/Makefile
lib/sectionsdclient/Makefile
lib/timerdclient/Makefile
lib/xmltree/Makefile
src/Makefile
src/daemonc/Makefile
src/driver/Makefile
src/driver/audiodec/Makefile
src/driver/glcd/Makefile
src/driver/pictureviewer/Makefile
src/eitd/Makefile
src/gui/Makefile
src/gui/bedit/Makefile
src/gui/components/Makefile
src/gui/lua/Makefile
src/gui/moviebrowser/Makefile
src/gui/widget/Makefile
src/gui/widget/yaft/Makefile
src/lcddisplay/Makefile
src/nhttpd/Makefile
src/nhttpd/tuxboxapi/Makefile
src/nhttpd/yhttpd_core/Makefile
src/nhttpd/yhttpd_mods/Makefile
src/system/Makefile
src/system/mtdutils/Makefile
src/system/mtdutils/lib/Makefile
src/timerd/Makefile
src/zapit/Makefile
src/zapit/lib/Makefile
src/zapit/src/Makefile
])
# Webserver config
AC_CONFIG_FILES([
src/nhttpd/nhttpd.conf
])
## Migration script
#AC_CONFIG_FILES([
#data/control/migration.sh
#])
# Backup scripts
AC_CONFIG_FILES([
data/scripts/backup.sh
data/scripts/restore.sh
data/scripts/backup_flash.sh
data/scripts/restore_flash.sh
])
# Backup configs
AC_CONFIG_FILES([
data/config/settingsupdate.conf
data/config/tobackup.conf
])
# Themes
#AC_CONFIG_FILES([
#data/themes/Material_Blue-Grey.theme
#])
# Oled themes
AC_CONFIG_FILES([
data/oled/themes/400x240/Default.otheme
data/oled/themes/480x320/Default.otheme
data/oled/themes/480x320/Advanced.otheme
data/oled/themes/480x320/Easy.otheme
data/oled/themes/480x320/Medium.otheme
data/oled/themes/480x320/Simple.otheme
data/oled/themes/480x320/Weather.otheme
data/oled/themes/800x480/Default.otheme
])
AC_OUTPUT