aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/configure.ac
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-04-22 15:34:31 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-04-22 15:34:31 +0000
commit69892748d7d18851c9cd7c49b351bbf86d2e2325 (patch)
tree0f404ff64eb9c04cdb6bfa0d6bf3964cd14ef6fc /Game/Code/configure.ac
parentaa3fcb3f5241731357fdc4b78817c37b36ee8fe7 (diff)
downloadusdx-69892748d7d18851c9cd7c49b351bbf86d2e2325.tar.gz
usdx-69892748d7d18851c9cd7c49b351bbf86d2e2325.tar.xz
usdx-69892748d7d18851c9cd7c49b351bbf86d2e2325.zip
New Makefile:
- no need to edit config-linux.inc for non-standard installation - "make release", "make debug" targets, so reconfiguring with --enable/disable-debug is not necessary anymore - linkerflags (environment variables LDFLAGS and LIBS) (e.g. from pkg-config) like "-Lpath" or "-Wl,-rpath,'path'" are passed to fpc - some cleanup git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1028 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--Game/Code/configure.ac597
1 files changed, 293 insertions, 304 deletions
diff --git a/Game/Code/configure.ac b/Game/Code/configure.ac
index 3c4322b4..8856e762 100644
--- a/Game/Code/configure.ac
+++ b/Game/Code/configure.ac
@@ -15,8 +15,10 @@ AC_INIT([UltraStar-Deluxe],
[http://sourceforge.net/tracker/?group_id=191560&atid=937872])
# specify the website here
PACKAGE_WEBSITE="http://www.ultrastardeluxe.org/"
+AC_SUBST(PACKAGE_WEBSITE)
# specify the IRC-channel here
PACKAGE_IRC="#ultrastardx at quakenet.org"
+AC_SUBST(PACKAGE_IRC)
# Specify a source-file so autoconf can check if the source-dir exists
AC_CONFIG_SRCDIR(UltraStar.lpr)
@@ -28,88 +30,19 @@ AC_CONFIG_MACRO_DIR(m4)
# show features and packages in one list
AC_PRESERVE_HELP_ORDER
-# -----------------------------------------
-# define switches
-# -----------------------------------------
-
-# print library options header
-AC_ARG_WITH([cfg-dummy1], [
-External Libraries:])
-
-# add lazarus option
-#AC_ARG_WITH([lazarus],
-# [AS_HELP_STRING([--with-lazarus=DIR],
-# [Directory of lazarus @<:@LAZARUSDIR@:>@])],
-# [with_lazarus=$withval], [with_lazarus="yes"])
-#if [[ x$with_lazarus = xno ]] ; then
-# AC_MSG_ERROR([Lazarus is required. It is impossible to build without it.]);
-#fi
-
-# add lazarus widget-type option
-# the result is not used at the moment
-#AC_ARG_WITH([lcl-widget-type],
-# [AS_HELP_STRING([--with-lcl-widget-type=TYPE],
-# [Lazarus LCL Widget Type @<:@default=check@:>@])],
-# [with_lcl_widget_type=$withval], [with_lcl_widget_type=""])
-#if [[ x$with_lcl_widget_type = xno -o x$with_lcl_widget_type = xyes ]] ; then
-# AC_MSG_ERROR([Invalid LCL Widget Type (try one of gtk2/gtk/qt)]);
-#fi
-
-# add portaudio option
-AC_ARG_WITH([portaudio],
- [AS_HELP_STRING([--with-portaudio=DIR],
- [Directory of portaudio library @<:@PORTAUDIODIR@:>@])],
- [with_portaudio=$withval], [with_portaudio="yes"])
-
-# add portmixer option
-AC_ARG_WITH([portmixer],
- [AS_HELP_STRING([--with-portmixer@<:@=DIR@:>@],
- [Enable portmixer audio-mixer support @<:@default=check@:>@])],
- [with_portmixer=$withval], [with_portmixer="check"])
-
-# add projectM option
-AC_ARG_WITH([projectM],
- [AS_HELP_STRING([--with-projectM@<:@=DIR@:>@],
- [Enable projectM visualization support @<:@default=check@:>@])],
- [with_projectM=$withval], [with_projectM="check"])
-
-# add skip pkg-config error option
-AC_ARG_ENABLE([skip-pkgconfig-errors],
- [AS_HELP_STRING([--enable-skip-pkgconfig-errors],
- [Continue if pkg-config does not find a package @<:@default=no@:>@])],
- [skip_pkgconfig_errors=$withval], [skip_pkgconfig_errors="no"])
-
-# print path options header
-AC_ARG_WITH([cfg-dummy2], [
-Additional directories:])
+# set root directory (= trunk dir)
+# ..resolved: used by configure.ac
+usdxroot=../..
+# ..unresolved: used by .in files
+usdxrootdir=\${top_srcdir}/../..
+AC_SUBST(usdxrootdir)
-# add suffix option
-AC_ARG_WITH([suffix],
- [AS_HELP_STRING([--with-suffix=SUFFIX],
- [path suffix @<:@default=UltraStarDeluxe@:>@])],
- [suffix=$withval], [suffix="UltraStarDeluxe"])
-if [[ x$suffix = xno -o x$suffix = xyes ]] ; then
- AC_MSG_ERROR([Invalid suffix.]);
-fi
-
-# add logdir option
-AC_ARG_WITH([logrootdir],
- [AS_HELP_STRING([--with-logrootdir=DIR],
- [logging root directory @<:@default=/var/log@:>@])],
- [with_logrootdir=$withval], [with_logrootdir="/var/log"])
-
-# print misc options header
-AC_ARG_WITH([cfg-dummy3], [
-Development options:])
-
-# add dev_layout option
-AC_ARG_ENABLE(dev-build,
- [AS_HELP_STRING([--enable-dev-build],
- [local development build])],
- [enable_dev_build="yes"], [enable_dev_build="no"])
+# set sharerootdir to the resolved dataroot-dir for the config-*.inc file.
+# Pascal cannot handle shell-variables like ${prefix}
+AC_DEFINE_DIR(sharerootdir, datarootdir)
# -----------------------------------------
-# tools
+# find tools
# -----------------------------------------
# options for make command
@@ -130,6 +63,37 @@ AC_PROG_GREP
# macro declarations
# -----------------------------------------
+# AC_TRIM(STRING)
+# removes surrounding whitespace
+# -------------------------------------------
+AC_DEFUN([AC_TRIM],
+[echo "[$1]" | $SED 's/^[[ \t]]*//' | $SED 's/[[ \t]]*$//'
+])
+
+# AC_SUBST_DEFINE(DEFINE_SUFFIX, IS_DEFINED)
+# used to enable/disable pascal defines
+AC_DEFUN([AC_SUBST_DEFINE],
+[
+ if [[ x$2 = xyes ]]; then
+ DEFINE_[$1]=DEFINE
+ else
+ DEFINE_[$1]=UNDEF
+ fi
+ AC_SUBST(DEFINE_[$1])
+])
+
+# AC_SUBST_COMMENT(DEFINE_SUFFIX, IS_ENABLED)
+# used to enable/disable lines in a Makefile
+AC_DEFUN([AC_SUBST_COMMENT],
+[
+ if [[ x$2 = xyes ]]; then
+ COMMENT_[$1]=""
+ else
+ COMMENT_[$1]="#"
+ fi
+ AC_SUBST(COMMENT_[$1])
+])
+
# AC_SPLIT_VERSION(VARIABLE_PREFIX, VERSION)
# Splits version number ("major.minor.release") into its components.
# Sets
@@ -171,95 +135,206 @@ eof
AC_SUBST([$1][_VERSION_INT])
])
-# set to yes if a pkg-config error was skipped
-pkgconfig_error_skipped="no"
-
-# AC_PKG_CHECK_VERSION(VARIABLE_PREFIX, MODULE, REQUIRED, PATH, MIN, MAX)
-# Aborts if lib was not found and REQUIRED="yes".
-# The PATH can be "check", "no" or "yes"
-# Sets
-# [$VARIABLE_PREFIX]_HAVE=("yes"|"no") and
-# [$VARIABLE_PREFIX]_VERSION=major.minor.release
-# [$VARIABLE_PREFIX]_VERSION_MAJOR
-# [$VARIABLE_PREFIX]_VERSION_MINOR
-# [$VARIABLE_PREFIX]_VERSION_RELEASE
-AC_DEFUN([AC_PKG_CHECK_VERSION],
+# PKG_VALUE(VARIABLE_PREFIX, POSTFIX, COMMAND, MODULE, HELP-STRING)
+# -----------------------------------------------------
+AC_DEFUN([PKG_VALUE],
[
- have_lib="no"
- if test x$4 != xno; then
- # on empty PATH or PATH="yes"/"check" use the default path
- if test x$4 = x -o x$4 = xyes -o x$4 = xcheck; then
- # search in default path if no path is given
- lib_path=""
- else
- # all PKG_* names are forbidden by pkg.m4 so we have to allow this first
- m4_pattern_allow(PKG_CONFIG_LIBDIR)
- # search only in the path given
- lib_path="PKG_CONFIG_LIBDIR=$4/pkgconfig"
+ AC_ARG_VAR([$1]_[$2], [$5, overriding pkg-config])
+ # check if variable was defined by the user
+ if test -z "$[$1]_[$2]"; then
+ # if not, get it from pkg-config
+ if test x$[$1][_HAVE] = xyes; then
+ PKG_CHECK_EXISTS([$4],
+ [[$1]_[$2]=`$PKG_CONFIG --[$3] --silence-errors "$4"`],
+ [# print error message and quit
+ err_msg=`$PKG_CONFIG --errors-to-stdout --print-errors "$4"`
+ AC_MSG_ERROR(
+[
+
+$err_msg
+
+If --with-[$1]=nocheck is defined the environment variable
+[$1]_[$2]
+must be set to avoid the need to call pkg-config.
+
+See the pkg-config man page for more details.
+])
+
+ ])
fi
+ fi
+ AC_SUBST([$1]_[$2])
+])
- minmax_flags=""
- minmax_text=""
-
- # min version
- if test x$5 != x; then
- minmax_flags="$minmax_flags --atleast-version=$5"
- minmax_text="$minmax_text >= $5"
- fi
-
- # max version
- if test x$6 != x; then
- minmax_flags="$minmax_flags --max-version=$6"
- minmax_text="$minmax_text <= $6"
- fi
-
- # call pkg-config
- AC_MSG_CHECKING(for [$2]$minmax_text)
- [$1][_VERSION]=`eval $lib_path $PKG_CONFIG $minmax_flags --modversion [$2] --silence-errors`
- if test $? -eq 0; then
- have_lib="yes"
- [$1][_HAVE]="yes"
- AC_SPLIT_VERSION([$1], $[$1][_VERSION])
- AC_MSG_RESULT(yes @<:@$[$1][_VERSION]@:>@)
- fi
+# PKG_VERSION(VARIABLE_PREFIX, MODULE)
+# Checks version of a package
+# Parameters:
+# - VARIABLE_PREFIX: the prefix for the variables storing information about the package.
+# - MODULE: package name according to pkg-config
+# Sets:
+# [$VARIABLE_PREFIX]_VERSION # full version string (format: "major.minor.release")
+# [$VARIABLE_PREFIX]_VERSION_MAJOR # major version number
+# [$VARIABLE_PREFIX]_VERSION_MINOR # minor version number
+# [$VARIABLE_PREFIX]_VERSION_RELEASE # release version number
+# [$VARIABLE_PREFIX]_VERSION_INT # integer representation: MMMmmmrrr (M:major,m:minor,r:release)
+AC_DEFUN([PKG_VERSION],
+[
+ if test x$[$1][_HAVE] = xyes; then
+ AC_MSG_CHECKING([version of $1])
+ PKG_VALUE([$1], [VERSION], [modversion], [$2], [version of $1])
+ AC_MSG_RESULT(@<:@$[$1][_VERSION]@:>@)
else
- AC_MSG_CHECKING(for [$2])
+ [$1][_VERSION]="0.0.0"
fi
- if test x$have_lib = xno; then
+ AC_SPLIT_VERSION([$1], $[$1][_VERSION])
+])
+
+# PKG_HAVE(VARIABLE_PREFIX, MODULE, [REQUIRED])
+# Checks with pkg-config if a package exists and retrieves information
+# about it.
+# Parameters:
+# - VARIABLE_PREFIX: the prefix for the variables storing information about the package.
+# - MODULE: package name according to pkg-config
+# - REQUIRED: if true, the configure-script is aborted if the package was not found
+# Uses:
+# with_[$VARIABLE_PREFIX]: whether and how the package should be checked for
+# "check": check for the package but do not abort if it does not exist (default)
+# "no": do not check for the package (sets _HAVE to "no" and _VERSION to "0.0.0")
+# "yes": check for the package and abort if it does not exist
+# "nocheck": do not check for the package (sets _HAVE to "yes")
+# Sets:
+# [$VARIABLE_PREFIX]_HAVE # package is available (values: "yes"|"no")
+# [$VARIABLE_PREFIX]_LIBS # linker flags (e.g. -Lmylibdir -lmylib)
+# [$VARIABLE_PREFIX]_LIBDIRS # library dirs (e.g. -Lmylibdir)
+AC_DEFUN([PKG_HAVE],
+[
+ have_lib="no"
+ AC_MSG_CHECKING([for $2])
+ if test x"$with_[$1]" = xnocheck; then
+ # do not call pkg-config, use user settings
+ have_lib="yes"
+ elif test x"$with_[$1]" != xno; then
+ # check if package exists
+ PKG_CHECK_EXISTS([$2], [
+ have_lib="yes"
+ [$1][_LIBS]=`$PKG_CONFIG --libs --silence-errors "$2"`
+ [$1][_LIBDIRS]=`$PKG_CONFIG --libs-only-L --silence-errors "$2"`
+ [$1][_LIBDIRS]=`AC_TRIM($[$1][_LIBDIRS])`
+ # add library directories to LIBS (ignore *_LIBS for now)
+ if test -n "$[$1][_LIBDIRS]"; then
+ LIBS="$LIBS $[$1][_LIBDIRS]"
+ fi
+ ])
+ fi
+ if test x$have_lib = xyes; then
+ [$1][_HAVE]="yes"
+ if test -n "$[$1][_LIBDIRS]"; then
+ # show additional lib-dirs
+ AC_MSG_RESULT(yes [(]$[$1][_LIBDIRS][)])
+ else
+ AC_MSG_RESULT(yes)
+ fi
+ else
[$1][_HAVE]="no"
- AC_SPLIT_VERSION([$1], [0.0.0])
AC_MSG_RESULT(no)
- if test x$3 = xyes -o x$4 = xyes; then
- AC_MSG_WARN([
-!!! Could not find the required library $2.
-]);
- # do not abort if skip-pkgconfig-errors is set
- if test x$skip_pkgconfig_errors = xno; then
- AC_MSG_ERROR([
-!!! Please install $2 and try again.
-!!!
-!!! If it is already installed check if "[$2].pc" is present in one
-!!! of the pkg-config search directories (e.g. /usr/lib/pkgconfig).
-!!!
-!!! If the file is present but not in the standard search path you may add
-!!! its directory by prepending "PKG_CONFIG_PATH=mylibs_dir/pkgconfig/" to
-!!! your configure call.
-!!! See the man-page on pkg-config for further information.
-!!!
-!!! Some linux distributions do not provide a .pc-file by the default
-!!! package so you might have to install a special dev-package.
-!!!
-!!! If all of this does not help you may consider to skip this error and
-!!! adjust the configuration file yourself.
-!!! To do this call "./configure --enable-skip-pkgconfig-errors ...".
+
+ # check if package is required
+ if test x$3 = xyes -o x"$with_[$1]" = xyes ; then
+ # print error message and quit
+ err_msg=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ AC_MSG_ERROR(
+[
+
+$err_msg
+
+Alternatively, you may set --with-[$1]=nocheck and the environment
+variables [$1]_[[...]] (see configure --help)
+to appropriate values to avoid the need to call pkg-config.
+
+See the pkg-config man page for more details.
])
- else
- pkgconfig_error_skipped="yes"
- fi
- fi
+ fi
fi
])
+
+# -----------------------------------------
+# define switches
+# -----------------------------------------
+
+# print library options header
+AC_ARG_WITH([cfg-dummy1], [
+External Libraries:])
+
+# add portmixer option
+AC_ARG_WITH([portmixer],
+ [AS_HELP_STRING([--with-portmixer],
+ [enable portmixer audio-mixer support @<:@default=check@:>@])],
+ [with_portmixer=$withval], [with_portmixer="check"])
+
+# add projectM option
+AC_ARG_WITH([libprojectM],
+ [AS_HELP_STRING([--with-libprojectM],
+ [enable projectM visualization support @<:@default=no@:>@])],
+ [with_libprojectM=$withval], [with_libprojectM="no"])
+
+# print path options header
+AC_ARG_WITH([cfg-dummy2], [
+Additional directories:])
+
+# add suffix option
+AC_ARG_WITH([suffix],
+ [AS_HELP_STRING([--with-suffix=SUFFIX],
+ [path suffix @<:@default=UltraStarDeluxe@:>@])],
+ [suffix=$withval], [suffix="UltraStarDeluxe"])
+if [[ x$suffix = xno -o x$suffix = xyes ]] ; then
+ AC_MSG_ERROR([Invalid suffix.]);
+fi
+AC_SUBST(suffix)
+
+# add logdir option
+AC_ARG_WITH([logrootdir],
+ [AS_HELP_STRING([--with-logrootdir=DIR],
+ [logging root directory @<:@default=/var/log@:>@])],
+ [with_logrootdir=$withval], [with_logrootdir="/var/log"])
+AC_SUBST(logrootdir, [$with_logrootdir])
+
+# print misc options header
+AC_ARG_WITH([cfg-dummy3], [
+Development options:])
+
+LOCAL_BUILD="no"
+
+# add global option
+AC_ARG_ENABLE(global,
+ [AS_HELP_STRING([--enable-global],
+ [install into global folders (PREFIX/...) @<:@default=yes@:>@])],
+ [test $enableval = "no" && LOCAL_BUILD="yes"], [])
+
+# add local option
+AC_ARG_ENABLE(local,
+ [AS_HELP_STRING([--enable-local],
+ [install into local folders (../../...) (same as --disable-global) @<:@default=no@:>@]))],
+ [test $enableval = "yes" && LOCAL_BUILD="yes"], [])
+
+# add dev_layout option
+AC_ARG_ENABLE(dev-build,
+ [AS_HELP_STRING([--enable-dev-build],
+ [development build (implies local) @<:@default=no@:>@])],
+ [enable_dev_build=$enableval], [enable_dev_build="no"])
+if [[ x$enable_dev_build = xyes ]]; then
+ LOCAL_BUILD="yes"
+fi
+
+# set default Makefile install-target according to local/global build-type
+AC_SUBST_DEFINE(USE_LOCAL_DIRS, $LOCAL_BUILD)
+if [[ x$LOCAL_BUILD = xyes ]]; then
+ AC_SUBST(install_type, ["local"])
+else
+ AC_SUBST(install_type, ["global"])
+fi
+
+
# -----------------------------------------
# check for compilers
# -----------------------------------------
@@ -279,6 +354,8 @@ AC_LANG([C])
AC_PROG_CXX
AC_LANG([C++])
+AC_PROG_RANLIB
+
# find pkg-config
PKG_PROG_PKG_CONFIG()
if [[ x$PKG_CONFIG = x ]]; then
@@ -289,163 +366,80 @@ if [[ x$PKG_CONFIG = x ]]; then
fi
# -----------------------------------------
-# check for lazarus
-# -----------------------------------------
-
-# set dirs to check for lazarus
-#if [[ x$with_lazarus = xyes ]]; then
- # use default path (ignore the standard path (PATH) because the lazarus executable might
- # be in /usr/bin, but what we want is the program directory with the libs)
-# LAZARUS_CHECK_DIRS="/usr/bin/lazarus:/usr/lib/lazarus:/usr/share/lazarus:/opt/lazarus:/usr/local/bin/lazarus:/usr/local/lib/lazarus:/usr/local/share/lazarus"
-#else
- # check if dir is valid
-# if [[ -d $with_lazarus ]] ; then
-# LAZARUS_CHECK_DIRS=$with_lazarus
-# else
-# AC_MSG_ERROR([LAZARUSDIR is not a directory.]);
-# fi
-#fi
-
-# find lazarus
-#AC_PATH_PROG(LAZARUS, lazarus, no, [$LAZARUS_CHECK_DIRS])
-#if [[ $LAZARUS = "no" ]] ; then
-# AC_MSG_ERROR([Could not find lazarus. Please install lazarus and try again.]);
-#fi
-#LAZARUS_DIR=`AS_DIRNAME(["$LAZARUS"])`
-
-# get lazarus version
-#AC_MSG_CHECKING(for version of lazarus)
-# (do this in a temporary shell to prevent a change of directory)
-#LAZARUS_VERSION=`(cd "$LAZARUS_DIR/tools/install"; ./get_lazarus_version.sh)`
-#LAZARUS_VERSION=`cat ide/version.inc | tr -d "' \t"`
-#AC_SPLIT_VERSION([LAZARUS], [$LAZARUS_VERSION])
-#AC_MSG_RESULT(@<:@$LAZARUS_VERSION@:>@)
-
-# check if LCL Widget type is valid
-#if [[ x$with_lcl_widget_type = x ]]; then
-# # search for standard types
-# LCL_CHECK_WIDGET_TYPES="gtk2 gtk qt win32 carbon"
-#else
- # search for user defined type only
-# LCL_CHECK_WIDGET_TYPES="$with_lcl_widget_type"
-#fi
-
-# LCL widget specific base dir
-#LCL_UNIT_DIR="$LAZARUS_DIR/lcl/units/$FPC_PROCESSOR-$FPC_PLATFORM"
-
-# check for a supported widget type
-#LCL_WIDGET_TYPE=""
-#for widget_type in $LCL_CHECK_WIDGET_TYPES; do
-# widget_dir="$LCL_UNIT_DIR/$widget_type"
-# AC_MSG_CHECKING([whether LCL Widget Type "$widget_type" is supported])
-# if [[ -d "$widget_dir" ]]; then
-# LCL_WIDGET_TYPE=$widget_type
-# AC_MSG_RESULT(yes)
-# break
-# else
-# AC_MSG_RESULT(no)
-# fi
-#done
-
-# check if a widget type was found
-#if [[ x$LCL_WIDGET_TYPE = x ]]; then
-# AC_MSG_ERROR([
-#!!! Could not detect the LCL Widget Type.
-#!!! Specify the widget type with the --with-lcl-widget-type option.])
-#fi
-
-# -----------------------------------------
# check for libraries
# -----------------------------------------
+# libpng
+PKG_HAVE([libpng], [libpng], yes)
+
# find sdl
-AC_PKG_CHECK_VERSION(SDL, [sdl], yes)
+PKG_HAVE([sdl], [sdl], yes)
# find sqlite3
-AC_PKG_CHECK_VERSION(SQLITE3, [sqlite3], yes)
+PKG_HAVE([sqlite3], [sqlite3], yes)
-# find ffmpeg
+# find FFMpeg
# Note: do not use the min/max version parameters with ffmpeg
# otherwise it might fail in ubuntu due to a wrong version number
# format in ffmpeg's .pc-files.
# For example: 0d.51.1.2 instead of the correct 51.1.2.
-# A check for a version >=52.0.0 will return version 0d.51.1.2
+# A check for version >=52.0.0 will return version 0d.51.1.2
# although it is lower because pkg-config is confused by the 0d.
-# Use [mylib]_VERSION_INT instead
-AC_PKG_CHECK_VERSION(AVCODEC, [libavcodec], yes)
-AC_CHECK_LIB(avcodec, avcodec_decode_audio)
-AC_CHECK_LIB(avcodec, avcodec_decode_audio2)
-AC_CHECK_LIB(avcodec, img_convert)
-AC_PKG_CHECK_VERSION(AVFORMAT, [libavformat], yes)
-AC_PKG_CHECK_VERSION(AVUTIL, [libavutil], yes)
-AC_PKG_CHECK_VERSION(SWSCALE, [libswscale], no)
-
-if [[ x$AVCODEC_HAVE = xyes -a x$AVFORMAT_HAVE = xyes -a x$AVUTIL_HAVE = xyes ]]; then
- FFMPEG_HAVE=yes
+# Use [mylib]_VERSION_INT for version-checking instead
+PKG_HAVE([libavcodec], [libavcodec], yes)
+PKG_VERSION([libavcodec], [libavcodec])
+AC_CHECK_LIB([avcodec], [avcodec_decode_audio], [HAVE_AVCODEC_DECODE_AUDIO="yes"])
+AC_CHECK_LIB([avcodec], [avcodec_decode_audio2], [HAVE_AVCODEC_DECODE_AUDIO2="yes"])
+AC_CHECK_LIB([avcodec], [img_convert], [HAVE_IMG_CONVERT="yes"])
+PKG_HAVE([libavformat], [libavformat], yes)
+PKG_VERSION([libavformat], [libavformat])
+PKG_HAVE([libavutil], [libavutil], yes)
+PKG_VERSION([libavutil], [libavutil])
+if [[ x$libavcodec_HAVE = xyes -a x$libavformat_HAVE = xyes -a x$libavutil_HAVE = xyes ]]; then
+ ffmpeg_HAVE=yes
else
- FFMPEG_HAVE=no
+ ffmpeg_HAVE=no
fi
+AC_SUBST_DEFINE(HAVE_FFMPEG, $ffmpeg_HAVE)
-# find projectM version
-AC_PKG_CHECK_VERSION(PROJECTM, [libprojectM], no, $with_projectM, [], 0.99)
-
-# find portaudio version
-AC_PKG_CHECK_VERSION(PORTAUDIO, [portaudio-2.0], yes, $with_portaudio)
-AC_PKG_CHECK_VERSION(PORTMIXER, [portmixer], no, $with_portmixer)
-
-# -----------------------------------------
-# defines for config.inc/versions.pas
-# -----------------------------------------
-
-# AC_SUBST_DEFINE(DEFINE_SUFFIX, IS_DEFINED)
-AC_DEFUN([AC_SUBST_DEFINE],
-[
- if [[ x$2 = xyes ]]; then
- DEFINE_[$1]=DEFINE
- else
- DEFINE_[$1]=UNDEF
- fi
- AC_SUBST(DEFINE_[$1])
-])
-
-AC_SUBST_DEFINE(DEBUG, $FPC_DEBUG)
-
-AC_SUBST(AVCODEC_LIB)
-AC_SUBST(AVFORMAT_LIB)
-AC_SUBST(AVUTIL_LIB)
-AC_SUBST_DEFINE(HAVE_FFMPEG, $FFMPEG_HAVE)
-
-AC_SUBST(SWSCALE_LIB)
-AC_SUBST_DEFINE(HAVE_SWSCALE, $SWSCALE_HAVE)
-
-AC_SUBST(PROJECTM_LIB)
-AC_SUBST_DEFINE(HAVE_PROJECTM_0_9, $PROJECTM_HAVE)
-AC_SUBST_DEFINE(HAVE_PROJECTM_1_0_PLUS, $PROJECTM_HAVE)
-
-AC_SUBST(PORTAUDIO_LIB)
-AC_SUBST_DEFINE(HAVE_PORTAUDIO, $PORTAUDIO_HAVE)
-
-AC_SUBST(PORTMIXER_LIB)
-AC_SUBST_DEFINE(HAVE_PORTMIXER, $PORTMIXER_HAVE)
+# find FFMpeg's swscale lib (just if FFMpeg is compiled in GPL mode)
+PKG_HAVE([libswscale], [libswscale], no)
+PKG_VERSION([libswscale], [libswscale])
+AC_SUBST_DEFINE(HAVE_SWSCALE, $libswscale_HAVE)
-#AC_SUBST(LAZARUS_DIR)
-#AC_SUBST(LCL_WIDGET_TYPE)
-AC_SUBST_DEFINE(USE_LOCAL_DIRS, $enable_dev_build)
-if [[ x$enable_dev_build = xyes ]]; then
- AC_SUBST(install_type, ["dev"])
+# find projectM version
+libprojectM_PKG="libprojectM >= 0.98"
+PKG_HAVE([libprojectM], [$libprojectM_PKG], no)
+PKG_VERSION([libprojectM], [$libprojectM_PKG])
+AC_SUBST_DEFINE(HAVE_PROJECTM, $libprojectM_HAVE)
+# get projectM include-dir
+PKG_VALUE([libprojectM], [INCLUDEDIR], [variable=includedir], [$libprojectM_PKG],
+ [C-Header include-dir (e.g. /usr/include)])
+# get projectM data-dir (for preset- and font-dir)
+PKG_VALUE([libprojectM], [DATADIR], [variable=pkgdatadir], [$libprojectM_PKG],
+ [projectM data-directory for presets etc. (e.g. /usr/share/projectM)])
+# check if we need the c-wrapper
+if [[ "$libprojectM_VERSION_MAJOR" -ge 1 ]]; then
+ libprojectM_NEEDS_CWRAPPER=yes
else
- AC_SUBST(install_type, ["release"])
+ libprojectM_NEEDS_CWRAPPER=no
fi
-AC_SUBST(suffix)
-AC_SUBST(logrootdir, [$with_logrootdir])
-AC_DEFINE_DIR(sharerootdir, datarootdir)
-
-#AC_SUBST(LDFLAGS)
-#AC_SUBST(LIBS)
-
-AC_SUBST(PLIBS)
-AC_SUBST(PACKAGE_WEBSITE)
+AC_SUBST_COMMENT(PROJECTM_CWRAPPER, $libprojectM_NEEDS_CWRAPPER)
+
+# find portaudio
+PKG_HAVE([portaudio], [portaudio-2.0], yes)
+PKG_VERSION([portaudio], [portaudio-2.0])
+AC_SUBST_DEFINE(HAVE_PORTAUDIO, $portaudio_HAVE)
+# find portmixer
+PKG_HAVE([portmixer], [portmixer], no)
+AC_SUBST_DEFINE(HAVE_PORTMIXER, $portmixer_HAVE)
+
+# determine linker-flags
+#LDFLAGS=
+#LIBS=
+AC_SUBST(LDFLAGS)
+AC_SUBST(LIBS)
# -----------------------------------------
# create output files
@@ -453,6 +447,10 @@ AC_SUBST(PACKAGE_WEBSITE)
AC_CONFIG_FILES([config-linux.inc:config.inc.in])
AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([$usdxroot/Tools/ResourceExtractor/Makefile])
+if [[ x$libprojectM_NEEDS_CWRAPPER = xyes ]]; then
+ AC_CONFIG_FILES([lib/projectM/cwrapper/Makefile])
+fi
AC_OUTPUT
# -----------------------------------------
@@ -494,13 +492,4 @@ AC_MSG_NOTICE([
#!!! You might as well ask for help at the IRC-Channel
#!!! $PACKAGE_IRC
-if [[ x$pkgconfig_error_skipped = xyes ]]; then
- AC_MSG_WARN([
-??? pkg-config did not find all of the required libraries.
-??? Edit "config-linux.inc" to add the missing parts.
-??? If one of your libraries' directories is not in the linker's
-??? search-path add it to the LDFLAGS environment variable and
-??? rerun configure (e.g. ./configure LDFLAGS="-Lmylibdir" ...).
-])
-fi