Aegisub/configure.in
Amar Takhar 1fd3ffc313 Add 'libosxutil' which gives us functions to locate paths within bundles, for
now this is used by libass to load fontconfig's fonts.conf.

Originally committed to SVN as r2585.
2008-12-31 09:20:50 +00:00

1010 lines
28 KiB
Plaintext

AC_PREREQ(2.57)
######################
# aegisub version info
######################
m4_define([aegisub_version_major], [2])
m4_define([aegisub_version_minor], [1])
m4_define([aegisub_version_revision], [6])
m4_define([aegisub_version], [aegisub_version_major.aegisub_version_minor.aegisub_version_revision-dev])
###################
# Required packages
###################
# XXX: These need to be fixed to check against the required version
m4_define([ffmpeg_required_version], [1])
m4_define([lua_auto3_required_version], [5.0])
m4_define([lua_auto4_required_version], [5.1])
m4_define([portaudio_required_version], [1])
m4_define([pulseaudio_required_version], [1])
m4_define([fontconfig_required_version], [2.4])
m4_define([freetype_required_version], [9.7.0])
m4_define([perl_required_version], [5.004])
m4_define([pkgconfig_required_version], [0.20])
m4_define([ruby_required_version], [1.8])
#######
# Setup
#######
AC_INIT([Aegisub], [aegisub_version],, [aegisub])
AC_CONFIG_SRCDIR([aegisub/main.cpp])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADER([aegisub/posix/acconf.h])
AC_GNU_SOURCE
AC_CANONICAL_HOST
###########################
# Check target architecture
###########################
AC_MSG_CHECKING([for target architecture])
case x"$target" in
xNONE | x)
target_or_host="$host" ;;
*)
target_or_host="$target" ;;
esac
AC_MSG_RESULT([$target_or_host])
case "$target_or_host" in
*-*-darwin*)
build_darwin="yes"
;;
*-*-linux*)
build_linux="yes"
;;
*)
build_default="yes"
;;
esac
AC_AGI_MDCPUCFG($target_or_host)
AM_CONDITIONAL([BUILD_DARWIN], [test "$build_darwin" = "yes"])
AM_CONDITIONAL([BUILD_DEFAULT], [test "$build_default" = "yes"])
AM_CONDITIONAL([FONTLISTER_FONTCONFIG], [test "$build_darwin" != "yes"])
AM_CONDITIONAL([FONTLISTER_FREETYPE], [test "$build_darwin" = "yes"])
AC_C_BIGENDIAN(
AC_DEFINE([HAVE_BIG_ENDIAN], [1], [Big Endian]),
AC_DEFINE([HAVE_LITTLE_ENDIAN], [1], [Little Endian]),
AC_DEFINE([HAVE_DYNAMIC_ENDIAN], [1], [Unknown endian]),
AC_DEFINE([HAVE_UNIVERSAL_ENDIAN], [1], [Universal Endian (MAC Universal PPC/Intel Binaries, uses HAVE_DYNAMIC_ENDIAN)])
)
########################
# Configurable variables
########################
aegisubdatadir="$datadir/aegisub"
AC_SUBST(aegisubdatadir)
####################
# Check for programs
####################
CHECK_GNU_MAKE
AC_PROG_CC
AC_PROG_CXX
AC_LANG(C++)
AC_PROG_LIBTOOL
AC_PROG_INSTALL
PKG_PROG_PKG_CONFIG([pkgconfig_required_version])
#################
# Developers only
#################
AM_MAINTAINER_MODE
AC_ARG_VAR([DEBUG_FLAGS], [Debug flag to use with --enable debug (default: -g)])
if test -z "$DEBUG_FLAGS"; then
DEBUG_FLAGS="-g";
fi
AC_MSG_CHECKING([whether to turn on debugging])
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging (default=no)])
if test "$enable_debug" = "yes"; then
AC_MSG_RESULT([yes ($DEBUG_FLAGS)])
CPPFLAGS="$DEBUG_FLAGS $CPPFLAGS"
else
AC_MSG_RESULT([no])
fi
AC_ARG_ENABLE(build-dist)
if test "$enable_build_dist" = "yes"; then
`svnversion > $srcdir/svn_revision`
fi
AC_MSG_CHECKING([for svn version])
if test -d "$srcdir/.svn"; then
SVN_REVISION=`svnversion $srcdir`
AC_MSG_RESULT([$SVN_REVISION from "svnversion $srcdir"])
elif test -f "$srcdir/svn_revision"; then
SVN_REVISION=`cat $srcdir/svn_revision`
AC_MSG_RESULT([$SVN_REVISION from "$srcdir/svn_revision"])
else
SVN_REVISION="_unknown"
AC_MSG_RESULT([not found])
fi
PACKAGE_STRING="${PACKAGE_STRING}-r$SVN_REVISION"
PACKAGE_VERSION="${PACKAGE_VERSION}-r$SVN_REVISION"
VERSION="${VERSION}-r$SVN_REVISION"
AC_MSG_CHECKING([for build date])
BUILD_DATE=`date "+%Y-%m-%d %H:%M %Z"`
AC_MSG_RESULT($BUILD_DATE)
AC_SUBST(SVN_REVISION)
AC_SUBST(BUILD_DATE)
###################################################
# Check for pthreads and setup variables / compiler
###################################################
ACX_PTHREAD([], [AC_MSG_FAILURE([aegisub requires pthreads])])
#LIBS="$PTHREAD_LIBS $LIBS";
#CFLAGS="$CFLAGS $PTHREAD_CFLAGS";
CC="$PTHREAD_CC";
######################
# Check compiler flags
######################
AC_C_FLAG([-Wall])
AC_C_FLAG([-O2])
AC_C_FLAG([-Wextra],[AC_C_FLAG([-W])])
AC_C_FLAG([-Wno-unused-parameter])
AC_C_FLAG([-std=gnu99])
AC_CXX_FLAG([-Wall])
AC_CXX_FLAG([-Wextra],[AC_CXX_FLAG([-W])])
AC_CXX_FLAG([-Wno-unused-parameter])
AC_CXX_FLAG([-Wno-long-long])
AC_CXX_FLAG([-O2])
AC_CXX_FLAG([-fpermissive])
AC_CXX_FLAG([-fno-strict-aliasing])
AC_CXX_FLAG([-std=c++98])
######################################
# Check Headers / Features / Libraries
######################################
AC_PATH_XTRA
AC_HEADER_STDC
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_C_VOLATILE
AC_CHECK_LIB([m], [main])
AC_CHECK_FUNC([strlcpy], [
AC_DEFINE([HAVE_STRLCPY], [1], [strlcpy() exists in the c library.])
], [])
AC_LIBTOOL_DLOPEN_SELF
AC_MSG_CHECKING([[whether preprocessor supports #pragma once]])
AC_PREPROC_IFELSE(
[AC_LANG_PROGRAM([[#pragma once]])],
[
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_PRAGMA_ONCE], [1], [Preprocessor support for #pragma once])
],
[AC_MSG_RESULT([no])])
AX_OPENMP([], [with_openmp="no"])
AM_CONDITIONAL([HAVE_OPENMP], [test "$with_openmp" != "no"])
AC_SUBST(OPENMP_CXXFLAGS)
##############################
# Program Support and Features
##############################
#################
## Wide Character
#################
AC_CHECK_HEADER([wchar.h],,[AC_MSG_FAILURE([aegisub requires wide character support])])
#########
## OpenGL
#########
AX_CHECK_GL
if test ! "$GL_LIBS"; then
AC_MSG_FAILURE([aegisub requires GL support.])
fi
AC_SUBST(GL_CFLAGS)
AC_SUBST(GL_LIBS)
#XXX: This needs to be fixed for OSX.
AC_AGI_COMPILE([OpenGL], [opengl], [$GL_CFLAGS], [$GL_LIBS],[
int main(void) {
return 0;
}])
if test "$agi_cv_with_opengl" = "no"; then
AC_MSG_FAILURE([Please install a working OpenGL library.])
fi
AC_AGI_COMPILE([OpenGLU], [openglu], [$GL_CFLAGS], [$GL_LIBS -lGLU],[
#include <GL/glu.h>
int main(void) {
return 0;
}])
if test "$agi_cv_with_openglu" = "no" && test "$build_darwin" != "yes"; then
AC_MSG_FAILURE([Please install a working OpenGL GLU library.])
fi
###########
## Freetype
###########
PKG_CHECK_MODULES(FREETYPE, freetype2 >= freetype_required_version,
AC_DEFINE(WITH_FREETYPE2, 1, [Enable FreeType 2 support.]),
[AC_MSG_FAILURE([aegisub requires >= FreeType2 freetype_required_version])])
AC_AGI_COMPILE([Freetype], [freetype], [$FREETYPE_CFLAGS], [$FREETYPE_LIBS],[
#include <ft2build.h>
#include FT_FREETYPE_H
int main(void) {
FT_Library ft;
if (FT_Init_FreeType(&ft)) { return 1; }
return 0;
}])
if test "$agi_cv_with_freetype" = "no"; then
AC_MSG_FAILURE([Please install a working Freetype library.])
fi
#############
## Fontconfig
#############
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version,
AC_DEFINE(WITH_FONTCONFIG, 1, [Enable FontConfig support.]),
[AC_MSG_FAILURE([aegisub requires >= fontconfig >= fontconfig_required_version])])
AC_SUBST(FONTCONFIG_CFLAGS)
AC_SUBST(FONTCONFIG_LIBS)
AC_AGI_COMPILE([FontConfig], [fontconfig], [$FONTCONFIG_CFLAGS], [$FONTCONFIG_LIBS],[
#include <fontconfig/fontconfig.h>
int main(void) {
int fc = FcInit();
FcConfig* config;
config = FcConfigGetCurrent();
if ((!config) || (!fc)) { return 1;}
return 0;
}])
if test "$agi_cv_with_fontconfig" = "no"; then
AC_MSG_FAILURE([Please install a working Fontconfig library.])
fi
########
## iconv
########
AC_ARG_VAR([ICONV_CFLAGS], [CFLAGS to use for iconv (default: CPPFLAGS)])
AC_ARG_VAR([ICONV_LDFLAGS], [LDFLAGS to use for iconv (default: LDFLAGS -liconv)])
if test -z "$ICONV_LDFLAGS"; then
if test "$build_linux" = "yes"; then
ICONV_LDFLAGS="$LDFLAGS"
else
ICONV_LDFLAGS="$LDFLAGS -liconv";
fi
fi
if test -z "$ICONV_CFLAGS"; then
ICONV_CFLAGS="$CPPFLAGS";
fi
AC_AGI_COMPILE([iconv], [iconv], [$ICONV_CFLAGS], [$ICONV_LDFLAGS],[
#include <iconv.h>
int main(void) {
iconv_t ic;
ic = iconv_open ("UTF-8", "UTF-8");
if (!ic) return 1;
return 0;
} ])
AC_SUBST(ICONV_LDFLAGS)
AC_SUBST(ICONV_CFLAGS)
###############
# Audio Players
###############
#######
## ALSA
#######
AC_ARG_WITH(alsa, [ --without-alsa build without ALSA audio provider. (default: auto)], alsa_disabled="(disabled)")
if test "x$with_alsa" != xno; then
AC_CHECK_LIB([asound], [snd_pcm_open], [ALSA_LDFLAGS="-lasound"; found_audio=yes; with_alsa=yes], [with_alsa=no])
fi
if test "$with_alsa" = "yes"; then
AC_DEFINE(WITH_ALSA, 1, [Enable ALSA Support])
fi
AC_SUBST(ALSA_LDFLAGS)
AM_CONDITIONAL([HAVE_ALSA], [test "$with_alsa" != "no"])
############
## PortAudio
############
AC_ARG_WITH(portaudio,[ --without-portaudio build without PortAudio audio provider.
(default: auto)], portaudio_disabled="(disabled)")
if test "x$with_portaudio" != xno; then
aegisub_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS $PTHREAD_LIBS"
AC_CHECK_LIB([portaudio], [Pa_Initialize], [PORTAUDIO_LDFLAGS="-lportaudio"; found_audio=yes; with_portaudio=yes], [with_portaudio=no])
fi
if test "x$with_portaudio" != xno; then
AC_CHECK_LIB([portaudio], [Pa_GetStreamTime], [LIBS="-lportaudio"], [with_portaudio_getstreamtime=no])
if test "x$with_portaudio_getstreamtime" != xno; then
AC_DEFINE(HAVE_PA_GETSTREAMTIME, 1, [Define to 1 if Pa_GetStreamTime is available in PortAudio])
fi
CPPFLAGS="$aegisub_save_CPPFLAGS"
fi
AC_AGI_COMPILE([PortAudio], [portaudio], [$CFLAGS $PTHREAD_CFLAGS], [$LDFLAGS $PORTAUDIO_LDFLAGS],[
#include <portaudio.h>
int main(void) {
PaError err = Pa_Initialize();
if (err != paNoError) return 1;
return 0;
}])
if test "$agi_cv_with_portaudio" = "no" && test "$with_portaudio" = "yes"; then
AC_MSG_WARN([PortAudio detected, but it doesn't work...])
with_portaudio="no"
fi
if test "$with_portaudio" = "yes"; then
AC_DEFINE(WITH_PORTAUDIO, 1, [Enable PortAudio Audio Provider])
fi
AC_SUBST(PORTAUDIO_LDFLAGS)
AM_CONDITIONAL([HAVE_PORTAUDIO], [test "$with_portaudio" != "no"])
#############
## PulseAudio
#############
AC_ARG_WITH(pulseaudio,[ --without-pulseaudio build without PulseAudio audio provider.
(default: auto)], pulseaudio_disabled="(disabled)")
if test "x$with_pulseaudio" != xno; then
PKG_CHECK_MODULES(LIBPULSE, libpulse >= 0.5, [found_audio=yes; with_pulseaudio=yes], [with_pulseaudio=no])
fi
AC_AGI_COMPILE([PuleseAudio], [pulseaudio], [$LIBPULSE_CFLAGS], [$LIBPULSE_LIBS],[
#include <pulse/pulseaudio.h>
int main(void) {
pa_threaded_mainloop *mainloop = pa_threaded_mainloop_new();
if (!mainloop) return 1;
return 0;
}])
if test "$agi_cv_with_pulseaudio" = "no" && test "$with_pulseaudio" = "yes"; then
AC_MSG_WARN([PulseAudio detected, but it doesn't work...])
with_pulseaudio="no"
fi
AM_CONDITIONAL([HAVE_PULSEAUDIO], [test "$with_pulseaudio" != "no"])
if test "$with_pulseaudio" = "yes"; then
AC_DEFINE(WITH_PULSEAUDIO, 1, [Enable PulseAudio support])
fi
#########
## OpenAL
#########
AC_ARG_WITH(openal,[ --without-openal build without OpenAL audio provider.
(default: auto)], openal_disabled="(disabled)")
if test "x$with_openal" != xno; then
PKG_CHECK_MODULES(OPENAL, openal >= 0.0.8, [found_audio=yes; with_openal=yes], [with_openal=no])
fi
AC_AGI_COMPILE([OpenAL], [openal], [$OPENAL_CFLAGS], [$OPENAL_LIBS],[
#if defined(__APPLE__)
#include <OpenAL/AL.h>
#include <OpenAL/ALC.h>
#else
#include <AL/al.h>
#include <AL/alc.h>
#endif
int main(void) {
ALCdevice *device = alcOpenDevice(0);
if (!device) return 1;
ALCcontext *context = alcCreateContext(device, 0);
if (!context) return 1;
return 0;
}])
if test "$agi_cv_with_openal" = "no" && test "$with_openal" = "yes"; then
AC_MSG_WARN([OpenAL detected, but it doesn't work...])
with_openal="no"
fi
AM_CONDITIONAL([HAVE_OPENAL], [test "$with_openal" != "no"])
if test "$with_openal" = "yes"; then
AC_DEFINE(WITH_OPENAL, 1, [Enable OpenAL support])
fi
#########################
# Video / Audio Providers
#########################
AC_ARG_ENABLE(old-ffmpeg, [ --enable-old-ffmpeg Use old FFMPEG header locations (default=no)])
if test "$enable_old_ffmpeg" = "yes"; then
AC_DEFINE([WITH_OLD_FFMPEG], [1], [Use old FFMPEG header locations])
fi
AC_ARG_WITH(ffmpeg, [ --without-ffmpeg build without FFMPEG support. Disables FFMPEG and FFmpegSource A/V providers. (default: auto)], ffmpeg_disabled="(disabled)")
if test "$with_ffmpeg" != "no"; then
AC_CHECK_LIB([avcodec], [avcodec_init],[AVCODEC_LDFLAGS="-lavcodec"; with_ffmpeg="yes"], [with_ffmpeg="no"])
AC_CHECK_LIB([avformat], [av_read_frame],[AVFORMAT_LDFLAGS="-lavformat"; with_ffmpeg="yes"], [with_ffmpeg="no"])
if test "$build_darwin" = "yes"; then
AC_CHECK_LIB([avutil], [av_free],[AVUTIL_LDFLAGS="-lavutil"; with_ffmpeg="yes"], [with_ffmpeg="no"])
fi
AC_CHECK_LIB([avformat], [sws_scale],[with_swscale="yes"], [with_swscale="no"])
if test "$with_swscale" = "no"; then
AC_CHECK_LIB([swscale], [sws_scale],[SWSCALE_LDFLAGS="-lswscale"; with_swscale_lib="yes"], [with_swscale_lib="no"])
fi
if test "$with_swscale" = "no" && test "$with_swscale_lib" = "no"; then
with_ffmpeg="no";
fi
fi
AC_SUBST(SWSCALE_LDFLAGS)
AC_SUBST(AVCODEC_LDFLAGS)
AC_SUBST(AVFORMAT_LDFLAGS)
AC_SUBST(AVUTIL_LDFLAGS)
AC_ARG_WITH(provider-ffmpeg, [ --without-provider-ffmpeg build without FFMPEG A/V provider. (default: auto)], ffmpeg_provider_disabled="(disabled)")
if test "$with_ffmpeg" = "yes"; then
found_video_provider="yes"
with_provider_ffmpeg="yes"
AC_DEFINE(WITH_FFMPEG, 1, [Enable FFMPEG Video Provider])
fi
if test "$with_ffmpeg" = "no"; then
with_provider_ffmpegsource="no"
with_provider_ffmpeg="no"
ffmpegsource_provider_disabled="(disabled, requires FFMPEG)"
ffmpeg_provider_disabled="(disabled, requires FFMPEG)"
fi
AM_CONDITIONAL([HAVE_FFMPEG], [test "$with_provider_ffmpeg" = "yes"])
AC_ARG_WITH(provider-ffmpegsource, [ --without-provider-ffmpegsource build without FFmpegSource A/V provider. (default: auto)], ffmpegsource_provider_disabled="(disabled)")
if test "$with_ffmpegsource" != "no"; then
AC_CHECK_LIB([postproc], [pp_postprocess],[POSTPROC_LDFLAGS="-lpostproc"; with_postproc="yes"], [with_postproc="no"])
if test "$with_postproc" = "yes"; then
found_video_provider="yes"
with_provider_ffmpegsource="yes"
AC_DEFINE(WITH_FFMPEGSOURCE, 1, [Enable FFmpegSource2 Video Provider])
else
with_provider_ffmpegsource="no"
fi
fi
AC_SUBST(POSTPROC_LDFLAGS)
AM_CONDITIONAL([HAVE_FFMPEGSOURCE], [test "$with_provider_ffmpegsource" = "yes"])
###################
# Subtitle Provider
###################
AC_ARG_ENABLE(libass, [ --disable-libass disable libass support (default=enabled)],libass_disabled="(disabled)")
if test "$enable_libass" != "no"; then
if test "$agi_cv_with_iconv" = "yes"; then
LIBASS_LIBS="-L../libass -lass_aegisub"
LIBASS_CFLAGS="-I../libass"
with_libass="yes"
else
AC_MSG_WARN([libiconv is required for libass support.])
with_libass="no"
fi
fi
if test "$with_libass" = "yes"; then
AC_DEFINE(WITH_LIBASS, 1, [Enable libass Subtitle Provider])
else
with_libass="no"
fi
AC_SUBST(LIBASS_LIBS)
AC_SUBST(LIBASS_CFLAGS)
AM_CONDITIONAL([WITH_LIBASS], [test "$with_libass" = "yes"])
AC_ARG_ENABLE(csri, [ --disable-csri disable CSRI (ASA) support (default=enabled)], csri_disabled="(disabled)")
if test "$enable_csri" != "no"; then
PKG_CHECK_MODULES(CSRI, csri >= 0.1.0, with_csri="yes", with_csri="no")
if test "$with_csri" = "yes"; then
AC_DEFINE(WITH_CSRI, 1, [Enable CSRI (ASA) Subtitle Provider])
fi
else
with_csri="no"
fi
AM_CONDITIONAL([WITH_CSRI], [test "$with_csri" = "yes"])
PKG_CHECK_MODULES(ASA, asa >= 0.3.2, with_asa="yes", with_asa="no")
###########
## Hunspell
###########
AC_ARG_WITH(hunspell, [ --without-hunspell build without hunspell support (default: auto)], hunspell_disabled="(disabled)")
if test "$with_hunspell" != "no"; then
PKG_CHECK_MODULES(HUNSPELL, hunspell >= 1.2.0, [with_hunspell=yes], [with_hunspell=no])
AC_AGI_COMPILE([Hunspell], [hunspell], [$HUNSPELL_CFLAGS], [$HUNSPELL_LIBS],[
#include <hunspell.hxx>
int main(void) {
Hunspell *hunspell;
hunspell = new Hunspell(".", ".");
if (!hunspell) return 1;
return 0;
} ])
fi
if test "$agi_cv_with_hunspell" = "no" && test "$with_hunspell" = "yes"; then
AC_MSG_WARN([Hunspell detected, but it doesn't work...])
fi
if test "$with_hunspell" = "yes"; then
AC_DEFINE(WITH_HUNSPELL, 1, [Enable Hunspell support.])
fi
AM_CONDITIONAL([HAVE_HUNSPELL], [test "$with_hunspell" != "no"])
######################
## universalchardetect
######################
AC_ARG_ENABLE(univchardet, [ --disable-univchardet disble universalchardet support.], univchardet_disabled="(disabled)")
if test "$enable_univchardet" != "no"; then
with_univchardet="yes"
AC_DEFINE(WITH_UNIVCHARDET, 1, [Enable universalchardet support])
else
with_univchardet="no"
fi
AM_CONDITIONAL([HAVE_UNIVCHARDET], [test "$with_univchardet" != "no"])
############
# Automation
############
############
## Auto4 LUA
############
AC_ARG_WITH(lua,
[ --without-lua build without lua 5.1 (auto4)], [lua51_disabled="(disabled)"])
AC_ARG_VAR([LUA_CFLAGS], [CFLAGS to use for LUA 5.1 (default: CPPFLAGS)])
AC_ARG_VAR([LUA_LDFLAGS], [LDFLAGS to use for LUA 5.1 (default: -llua)])
if test -z "$LUA_CFLAGS"; then
LUA_CFLAGS="$CPPFLAGS";
fi
if test -z "$LUA_LDFLAGS"; then
LUA_LDFLAGS="-llua";
fi
aegisub_save_LIBS="$LIBS"
LIBS="$LUA_LDFLAGS"
if test "$with_lua" != no; then
AC_AGI_COMPILE([Lua 5.1 (auto4)], [lua], [$LUA_CFLAGS], [],[
extern "C" {
#include <lua.h>
#include <lauxlib.h>
}
int main () {
lua_State *L = luaL_newstate();
lua_pushstring(L, "test");
int res = lua_objlen(L, -1) == 4;
lua_close(L);
return !res;
}])
fi
LIBS="$aegisub_save_LIBS"
if test "$agi_cv_with_lua" = "yes"; then
with_auto4="yes"
with_automation="yes"
AC_DEFINE(WITH_AUTO4_LUA, 1, [Enable Automation (auto4), requires lua])
else
with_auto4="no"
fi
AM_CONDITIONAL([HAVE_AUTO4_LUA], [test "$with_auto4" != "no"])
AC_SUBST(LUA_CFLAGS)
AC_SUBST(LUA_LDFLAGS)
##################
## Auto3 (LUA 5.0)
##################
AC_ARG_VAR([LUA50_CFLAGS], [CFLAGS to use for LUA 5.0 (default: CPPFLAGS)])
AC_ARG_VAR([LUA50_LDFLAGS], [LDFLAGS to use for LUA 5.1 (default: -llua -llualib)])
if test -z "$LUA50_LDFLAGS"; then
LUA50_LDFLAGS="-llua -llualib";
fi
if test -z "$LUA50_CFLAGS"; then
LUA50_CFLAGS="$CPPFLAGS";
fi
AC_ARG_WITH(lua50,
[ --without-lua50 build without lua 5.0 (auto3)], [lua50_disabled="(disabled)"])
if test "$with_lua50" != no; then
AC_AGI_COMPILE([Lua 5.0 (auto3)], [lua50], [$LUA50_CFLAGS], [$LUA50_LDFLAGS],[
extern "C" {
#include "lua.h"
#include "lauxlib.h"
}
#ifdef lua_open
#error This is not Lua 5.0
#endif
int main() {
lua_State *L = lua_open();
if (!L) return 1;
luaL_newmetatable(L, "test");
lua_close(L);
}])
fi
if test "$agi_cv_with_lua50" = "yes"; then
with_auto3="yes"
with_automation="yes"
AC_DEFINE(WITH_AUTO3, 1, [Enable Automation (auto3, DEPRECIATED!), requires lua 5.0])
else
with_auto3="no"
fi
AM_CONDITIONAL([HAVE_AUTO3_LUA], [test "$with_auto3" != "no"])
AC_SUBST(LUA50_CFLAGS)
AC_SUBST(LUA50_LDFLAGS)
#############
## Auto4 PERL
#############
AC_ARG_WITH(perl, [ --without-perl build without PERL Automation. (default: auto)], perl_disabled="(disabled)")
AC_ARG_WITH(perl-bin, [ --with-perl-bin=PATH location of PERL binary. (default: $PATH)], [WITH_PERL_BIN="$withval"])
AC_ARG_VAR([PERL_CFLAGS], [CFLAGS to use for Perl (default: -MExtUtils::Embed -eccflags -eperl_inc)])
AC_ARG_VAR([PERL_LDFLAGS], [LDFLAGS to use for Perl (default: -MExtUtils::Embed -eldopts)])
if test "$with_perl" != "no"; then
if test -z "$WITH_PERL_BIN"; then
AC_PATH_PROG([PERL_BIN],perl,no)
else
PERL_BIN="$WITH_PERL_BIN"
fi
AC_ARG_ENABLE(perl-console, [ --disable-perl-console disable PERL console (default=enabled)],perlconsole_disabled="(disabled)")
if test "$enable_perlconsole" != "no"; then
AC_DEFINE(WITH_PERLCONSOLE, 1, [Enable PERL Console support (for debugging purposes)])
fi
if test "$PERL_BIN" != "no"; then
AC_CACHE_CHECK(
[checking for perl version >= perl_required_version], [with_cv_perl],
[if $PERL_BIN -e 'require perl_required_version'; then with_cv_perl="yes"; else with_cv_perl="no"; fi])
if test "$with_cv_perl" = "yes"; then
AC_MSG_CHECKING([$PERL_BIN cflags])
if test -z "$PERL_CFLAGS"; then
PERL_CFLAGS=`$PERL_BIN -MExtUtils::Embed -eccflags -eperl_inc`
fi
AC_MSG_RESULT([$PERL_CFLAGS])
AC_MSG_CHECKING([$PERL_BIN libs])
if test -z "$PERL_LDFLAGS"; then
PERL_LDFLAGS=`$PERL_BIN -MExtUtils::Embed -eldopts`
fi
AC_MSG_RESULT([$PERL_LDFLAGS])
AC_AGI_COMPILE([Perl], [perl], [$PERL_CFLAGS], [$PERL_LDFLAGS],[
#include <EXTERN.h>
#include <perl.h>
int main(int argc, char **argv) {
static PerlInterpreter *my_perl;
PERL_SYS_INIT3(&argc,&argv,&env);
my_perl = perl_alloc();
if (!my_perl) return 1;
return 0;
}])
fi
fi
fi
if test "$agi_cv_with_cv_perl" = "no" && test "$with_cv_perl" = "yes"; then
AC_MSG_WARN([Perl detected, but it doesn't work...])
with_cv_perl="no"
fi
if test "$with_cv_perl" = "yes"; then
with_automation="yes"
AC_DEFINE(WITH_PERL, 1, [Enable PERL support.])
else
with_cv_perl="no"
fi
AC_SUBST(PERL_CFLAGS)
AC_SUBST(PERL_LDFLAGS)
AM_CONDITIONAL([HAVE_AUTO4_PERL], [test "$with_cv_perl" != "no"])
#############
## Auto4 Ruby
#############
AC_ARG_WITH(ruby, [ --without-ruby build without Ruby Automation. (default: auto)], ruby_disabled="(disabled)")
AC_ARG_WITH(ruby-bin, [ --with-ruby-bin=PATH location of RUBY binary. (default: $PATH)], [WITH_RUBY_BIN="$withval"])
AC_ARG_VAR([RUBY_CFLAGS], [CFLAGS to use for Ruby (default: Config::CONFIG archdir + CFLAGS)])
AC_ARG_VAR([RUBY_LDFLAGS], [LDFLAGS to use for Ruby (default: Cofig::CONFIG LIBRUBYARG)])
if test "$with_ruby" != "no"; then
if test -z "$WITH_RUBY_BIN"; then
AC_PATH_PROG([RUBY_BIN],ruby,no)
else
RUBY_BIN="$WITH_RUBY_BIN"
fi
if test "$RUBY_BIN" != "no"; then
AC_CACHE_CHECK(
[checking for ruby version >= ruby_required_version], [with_cv_ruby],
[if $RUBY_BIN -r rbconfig -e 'if Config::CONFIG@<:@"ruby_version"@:>@.to_f >= ruby_required_version then exit(0) else exit(1) end'; then
with_cv_ruby="yes"; else with_cv_ruby="no"; fi])
if test "$with_cv_ruby" = "yes"; then
AC_MSG_CHECKING([checking $RUBY_BIN -r rbconfig archdir, cflags])
if test -z "$RUBY_CFLAGS"; then
RUBY_CFLAGS=`$RUBY_BIN -r rbconfig -e "printf(\"-I%s %s\", Config::CONFIG@<:@'archdir'@:>@, Config::CONFIG@<:@'CFLAGS'@:>@)"`
fi
AC_MSG_RESULT([$RUBY_CFLAGS])
AC_MSG_CHECKING([checking $RUBY_BIN rbconfig libs])
if test -z "$RUBY_LDFLAGS"; then
RUBY_LDFLAGS=`$RUBY_BIN -r rbconfig -e "print Config::CONFIG@<:@'LIBRUBYARG'@:>@"`
fi
AC_MSG_RESULT([$RUBY_LDFLAGS])
AC_AGI_COMPILE([Ruby], [ruby], [$RUBY_CFLAGS], [$RUBY_LDFLAGS],[
#include <ruby.h>
int main(void) {
/* These supposidly call exit if they fail. */
ruby_init();
ruby_init_loadpath();
return 0;
}])
fi
fi
fi
if test "$agi_cv_with_cv_ruby" = "no" && test "$with_cv_ruby" = "yes"; then
AC_MSG_WARN([Ruby detected, but it doesn't work...])
with_cv_ruby="no"
fi
if test "$with_cv_ruby" = "yes"; then
with_automation="yes"
AC_DEFINE(WITH_RUBY, 1, [Enable RUBY Automation.])
else
with_cv_ruby="no"
fi
AC_SUBST(RUBY_CFLAGS)
AC_SUBST(RUBY_LDFLAGS)
AM_CONDITIONAL([HAVE_AUTO4_RUBY], [test "$with_cv_ruby" != "no"])
# Automation setup
if test "$with_automation" = "yes"; then
AC_DEFINE(WITH_AUTOMATION, 1, [Enable Automation support, requires any automation language.])
fi
AM_CONDITIONAL([HAVE_AUTOMATION], [test "$with_automation" = "yes"])
################
# Widget support
################
AM_OPTIONS_WXCONFIG
AM_PATH_WXCONFIG(2.8.1, [have_wxconfig=1], [have_wxconfig=0], [std,gl,stc])
if test "$have_wxconfig" != 1; then
AC_MSG_FAILURE([wxWidgets detection failed, please set --with-wx* or add
the libraries to your LDFLAGS, CXX/CFLAGS.])
fi
aegisub_save_CPPLAGS="$CPPLAGS"
CPPFLAGS="$WX_CFLAGS"
AC_ARG_ENABLE(check-wx-opengl, [--disable-check-wx-opengl
Force wxwidgets OpenGL support. ])
if test "$enable_check-wx-opengl" = "yes"; then
AC_AGI_LINK([wxWidgets OpenGL support], [wxopengl], [wx/glcanvas.h], [$GL_CFLAGS $WX_CFLAGS], [$GL_LIBS $WX_LIBS],[
#include <wx/glcanvas.h>
int main(void) {
wxGLCanvas *canvas;
wxGLContext *context;
return 0;
} ])
fi
if test "$with_agi_cv_wxopengl" = "no" || test "$enable_check-wx-opengl" = "no"; then
AC_MSG_FAILURE([wxWidgets OpenGL support missing])
fi
AC_ARG_ENABLE(wx-stc, [ --disable-check--wx-stc Force wxwidgets StyledTextCtrl support.])
if test "$enable_check-wx-stc" = "yes"; then
AC_AGI_LINK([wxWidgets StyledTextCtrl support], [wxstc], [wx/stc/stc.h], [$WX_CFLAGS], [$WX_LIBS],[
#include <wx/stc/stc.h>
int main(void) {
wxStyledTextCtrl *canvas;
return 0;
} ])
fi
if test "$with_agi_cv_wxstc" = "no" || test "$enable_check-wx-stc" = "yes"; then
AC_MSG_FAILURE([wxWidgets StyledTextCtrl support missing])
fi
################################################
# Internationalisation support (keep this last!)
################################################
AC_PROG_INTLTOOL
AM_GLIB_GNU_GETTEXT
GETTEXT_PACKAGE=aegisub
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
# Makefiles
AC_CONFIG_FILES([
Makefile
aegisub/Makefile
aegisub/bitmaps/Makefile
aegisub/posix/Makefile
aegisub/libosxutil/Makefile
universalchardet/Makefile
FFmpegSource2/Makefile
auto3/Makefile
libass/Makefile
automation/Makefile
po/Makefile.in
m4macros/Makefile
])
# Files that need substitution.
AC_CONFIG_FILES([
scripts/osx-bundle.sed
])
AC_OUTPUT
if test -z "$found_audio"; then
AC_MSG_NOTICE([
***********************************************************************
* No supported audio player interface was found on your system.
* If you want audio support in Aegisub you need to install one of
* these libraries:
* - PulseAudio
* * http://pulseaudio.org/
* - ALSA (Linux only) (Currently broken)
* * http://www.alsa-project.org/
* - PortAudio (version 18 only, version 19 is not compatible)
* * http://www.portaudio.com/
***********************************************************************
])
fi
if test -z "$found_video_provider"; then
AC_MSG_NOTICE([
***********************************************************************
* No supported video/audio reader interface was found on your system.
* You will not be able to open any video or audio files in Aegisub
* unless you install a supported video/audio provider.
* You will however still be able to open "dummy" video, ie. a blank,
* virtual video clip with subtitles overlaid.
* Currently we only support one video/audio provider on non-Windows
* systems:
* - FFmpeg (libavcodec + libavformat)
* * http://ffmpeg.mplayerhq.hu/
***********************************************************************
])
fi
AC_MSG_RESULT([
Scripting Engines:
auto3 Lua: $with_auto3 $lua50_disabled
auto4 Lua: $with_auto4 $lua51_disabled
auto4 Perl: $with_cv_perl $perl_disabled
auto4 Ruby: $with_cv_ruby $ruby_disabled
Audio Players:
ALSA: $with_alsa $alsa_disabled
OpenAL: $with_openal $openal_disabled
PortAudio: $with_portaudio $portaudio_disabled
PulseAudio: $with_pulseaudio $pulseaudio_disabled
A/V Support
FFMPEG: $with_ffmpeg $ffmpeg_disabled
(required for video providers)
Video Providers
FFMPEG: $with_provider_ffmpeg $ffmpeg_provider_disabled
FFmpegSource: $with_provider_ffmpegsource $ffmpegsource_provider_disabled
Subtitle Providers:
CSRI (ASA): $with_csri $csri_disabled
libASS $with_libass $libass_disabled
(both require iconv and fontconfig)
Misc Packages:
Hunspell: $with_hunspell $with_hunspell_version $hunspell_disabled
universalchardet: $with_univchardet $univchardet_disabled
]);