aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/configure.ac
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-01-18 17:59:54 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-01-18 17:59:54 +0000
commitb35a00ba936bc16180c2f18fb0089e80c05ee4a8 (patch)
tree3100b4d877145721834710fa8a42680b02a42486 /Game/Code/configure.ac
parente95f320dd030e9def8174e8b173e3631f11dba25 (diff)
downloadusdx-b35a00ba936bc16180c2f18fb0089e80c05ee4a8.tar.gz
usdx-b35a00ba936bc16180c2f18fb0089e80c05ee4a8.tar.xz
usdx-b35a00ba936bc16180c2f18fb0089e80c05ee4a8.zip
Autoconf scripts for configure and make.
Run "aclocal -I m4" and "autoconf" to create the configure script. I checked this in to test the configure script. Note: the generated Makefile is not supposed to work yet. Use the already checked in Makefile instead. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@796 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--Game/Code/configure.ac307
1 files changed, 307 insertions, 0 deletions
diff --git a/Game/Code/configure.ac b/Game/Code/configure.ac
new file mode 100644
index 00000000..2c4e37f1
--- /dev/null
+++ b/Game/Code/configure.ac
@@ -0,0 +1,307 @@
+#
+# UltraStar-DX configure.in script
+#
+# by UltraStar Deluxe Team
+#
+# Call "aclocal -I m4" to create the aclocal.m4 file.
+# Process this file with autoconf to produce a configure script.
+#
+
+# Require autoconf >= 2.61
+AC_PREREQ(2.61)
+
+# Init autoconf
+AC_INIT([UltraStar Deluxe], [1.1], [TODO: send bugreport BUG-REPORT-ADDRESS])
+AC_CONFIG_SRCDIR(UltraStar.lpr)
+AC_CONFIG_MACRO_DIR(m4)
+
+# show features and packages in one list
+AC_PRESERVE_HELP_ORDER
+
+# -----------------------------------------
+# define switches
+# -----------------------------------------
+
+# print library option header
+AC_ARG_WITH([cfg-dummy1], [
+External Libraries:])
+
+# add lazarus option
+AC_ARG_WITH([lazarus],
+ [AS_HELP_STRING([--with-lazarus=DIR],
+ [Directory of lazarus directory @<:@LAZARUSDIR@:>@])],
+ [with_lazarus=$withval], [with_lazarus="yes"])
+if [[ $with_lazarus = "no" ]] ; then
+ AC_MSG_ERROR("Lazarus is required. It is impossible to build without it.");
+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"])
+
+# AC_ARG_ENABLE(foobar,
+# [ --enable-foobar Dummy option],
+# enable_foobar=$enableval, enable_foobar="no")
+
+
+# -----------------------------------------
+# macro declarations
+# -----------------------------------------
+
+# AC_SPLIT_VERSION(VARIABLE_PREFIX, VERSION)
+# Splits version number ("major.minor.release") into its components.
+# Sets
+# [$VARIABLE_PREFIX]_VERSION_MAJOR
+# [$VARIABLE_PREFIX]_VERSION_MINOR
+# [$VARIABLE_PREFIX]_VERSION_RELEASE
+# This function calls
+# AC_SUBST([$VARIABLE_PREFIX]_VERSION_type] for each type
+AC_DEFUN([AC_SPLIT_VERSION],
+[
+ # replace "." and "-" with " " and ignore trailing tokens.
+ # 1.23.4-r2 will be splitted to [maj=1, min=23, rel=4].
+ # In addition we delete every character which is not 0-9.
+ # 1.3a4-r32 will be [maj=1, min=34, rel=32].
+ #
+ # Note: We use a here-document (<<< here-strings not POSIX compatible)
+ # Do NOT indent the eof-delimiter
+ read major minor release ignore <<eof
+ `echo [$2] | tr '.-' ' ' | sed s/[^0-9\ ].*//`
+eof
+
+ # strip preceding 0s and set unset version-parts to 0
+ [$1][_VERSION_MAJOR]=$(($major))
+ [$1][_VERSION_MINOR]=$(($minor))
+ [$1][_VERSION_RELEASE]=$(($release))
+
+ AC_SUBST([$1][_VERSION_MAJOR])
+ AC_SUBST([$1][_VERSION_MINOR])
+ AC_SUBST([$1][_VERSION_RELEASE])
+])
+
+# 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],
+[
+ 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"
+ fi
+
+ 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
+ else
+ AC_MSG_CHECKING(for [$2])
+ fi
+ if test x$have_lib = xno; then
+ [$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_ERROR(["Could not find required library $2. Please install $2 and try again."]);
+ fi
+ fi
+])
+
+# -----------------------------------------
+# check for compilers
+# -----------------------------------------
+
+# find and test the freepascal compiler
+# sets PFLAGS, FPC_VERSION, FPC_DEBUG, etc.
+AC_PROG_FPC
+AC_SPLIT_VERSION(FPC, $FPC_VERSION)
+
+# find and test the C compiler (for C-libs and wrappers)
+AC_PROG_CC
+AC_LANG([C])
+
+# find and test the C++ compiler (for C-libs and wrappers)
+AC_PROG_CXX
+AC_LANG([C++])
+
+# options for make command
+AC_PROG_MAKE_SET
+# find tool for ln -s
+AC_LN_S
+# find the best install tool
+AC_PROG_INSTALL
+# some other useful tools
+#AC_PROG_AWK
+#AC_PROG_SED
+#AC_PROG_GREP
+#AC_PROG_EGREP
+
+# find pkg-config
+PKG_PROG_PKG_CONFIG()
+if [[ x$PKG_CONFIG = x ]]; then
+ AC_MSG_ERROR([
+!!! pkg-config was not found on your system.
+!!! It is needed to determine the versions of your libraries.
+!!! Install it and try again.])
+fi
+
+# -----------------------------------------
+# check for libraries
+# -----------------------------------------
+
+# 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=`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@:>@)
+
+# find sdl
+AC_PKG_CHECK_VERSION(SDL, [sdl], yes)
+
+# find sqlite3
+AC_PKG_CHECK_VERSION(SQLITE3, [sqlite3], yes)
+
+# find ffmpeg
+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
+else
+ FFMPEG_HAVE=no
+fi
+
+# 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
+# -----------------------------------------
+
+# 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, $PROJECTM_HAVE)
+
+AC_SUBST(PORTAUDIO_LIB)
+AC_SUBST_DEFINE(HAVE_PORTAUDIO, $PORTAUDIO_HAVE)
+
+AC_SUBST(PORTMIXER_LIB)
+AC_SUBST_DEFINE(HAVE_PORTMIXER, $PORTMIXER_HAVE)
+
+AC_SUBST(LAZARUS_DIR)
+
+# -----------------------------------------
+# create output files
+# -----------------------------------------
+
+AC_CONFIG_FILES([config.inc Makefile])
+AC_OUTPUT
+
+# -----------------------------------------
+# show results
+# -----------------------------------------
+
+AC_MSG_NOTICE([
+
+!!! Configuration done!
+!!! Type "make" to compile the program.
+])