Aegisub/configure.in

884 lines
24 KiB
Text
Raw Normal View History

AC_PREREQ(2.57)
######################
# aegisub version info
######################
m4_define([aegisub_major_version], [2])
m4_define([aegisub_minor_version], [1])
m4_define([aegisub_version], [aegisub_major_version.aegisub_minor_version-dev])
###################
# Required packages
###################
m4_define([ffmpeg_required_version], [1])
m4_define([portaudio_required_version], [1])
m4_define([pulseaudio_required_version], [1])
m4_define([pkgconfig_required_version], [0.20])
m4_define([freetype_required_version], [9.7.0])
m4_define([fontconfig_required_version], [2.4])
m4_define([perl_required_version], [5.004])
m4_define([ruby_required_version], [1.8])
m4_define([lua_auto4_required_version], [5.1])
m4_define([lua_auto3_required_version], [5.0])
#######
# 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"
;;
*)
build_default="yes"
;;
esac
AM_CONDITIONAL([BUILD_DARWIN], [test "$build_darwin" = "yes"])
AM_CONDITIONAL([BUILD_DEFAULT], [test "$build_default" = "yes"])
########################
# Configurable variables
########################
aegisubdatadir="$datadir/aegisub/2.1"
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([0.20])
#################
# 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
SVN_VERSION=`svnversion .`
PACKAGE_STRING="${PACKAGE_STRING}-r$SVN_VERSION"
PACKAGE_VERSION="${PACKAGE_VERSION}-r$SVN_VERSION"
VERSION="${VERSION}-r$SVN_VERSION"
fi
###################################################
# 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_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
##############################
AC_CHECK_HEADER([wchar.h],,[AC_MSG_FAILURE([aegisub requires wide character support])])
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_with_opengl" = "no"; then
AC_MSG_FAILURE([Please install a working OpenGL library.])
fi
PKG_CHECK_MODULES(FREETYPE, freetype2 >= 9.7.0,
AC_DEFINE(WITH_FREETYPE2, 1, [Enable FreeType 2 support.]),
[AC_MSG_FAILURE([aegisub requires >= FreeType2 2.1.9])])
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;
}])
if test "$agi_with_freetype" = "no"; then
AC_MSG_FAILURE([Please install a working Freetype library.])
fi
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.4,
AC_DEFINE(WITH_FONTCONFIG, 1, [Enable FontConfig support.]),
[AC_MSG_FAILURE([aegisub requires >= fontconfig >= 2.4])])
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_with_fontconfig" = "no"; then
AC_MSG_FAILURE([Please install a working Fontconfig library.])
fi
#################
# Audio Providers
#################
#######
## 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_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_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_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 Providers
#################
AC_ARG_WITH(ffmpeg, [ --without-ffmpeg build without FFMPEG video provider.. (default: auto)], ffmpeg_disabled="(disabled)")
if test "$with_ffmpeg" != "no"; then
AC_CHECK_LIB([avcodec], [avcodec_init],AVCODEC_LDFLAGS="-lavcodec", [with_ffmpeg=no])
AC_CHECK_LIB([avformat], [av_read_frame],AVFORMAT_LDFLAGS="-lavformat", [with_ffmpeg=no])
if test "$build_darwin" = "yes"; then
AC_CHECK_LIB([avutil], [av_free],[AVUTIL_LDFLAGS="-lavutil"], [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" = "yes" || test "$with_swscale_lib" = "yes"; then
with_ffmpeg="yes";
else
with_ffmpeg="no";
fi
if test "$with_ffmpeg" = "yes"; then
found_video_provider=yes
with_ffmpeg="yes"
AC_DEFINE(WITH_FFMPEG, 1, [Enable FFMPEG Video Provider])
fi
fi
AC_SUBST(SWSCALE_LDFLAGS)
AC_SUBST(AVCODEC_LDFLAGS)
AC_SUBST(AVFORMAT_LDFLAGS)
AC_SUBST(AVUTIL_LDFLAGS)
AM_CONDITIONAL([HAVE_FFMPEG], [test "$with_ffmpeg" != "no"])
###################
# Subtitle Provider
###################
AC_ARG_ENABLE(libass, [ --disable-libass disable libass support (default=enabled)],libass_disabled="(disabled)")
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
ICONV_LDFLAGS="$LDFLAGS -liconv";
fi
if test -z "$ICONV_CFLAGS"; then
ICONV_CFLAGS="$CPPFLAGS";
fi
if test "$enable_libass" != "no"; then
aegisub_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$ICONV_CFLAGS"
AC_CHECK_HEADER(iconv.h, [ICONV_CFLAGS="$ICONV_CFLAGS"; with_iconv="yes"], with_iconv="no")
CPPFLAGS="$aegisub_save_CPPFLAGS"
aegisub_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$ICONV_LDFLAGS"
AC_CHECK_LIB([iconv], [iconv_open],[ICONV_LDFLAGS="$ICONV_LDFLAGS"; with_iconv="yes"], with_iconv="no")
LDFLAGS="$aegisub_save_LDFLAGS"
if test "$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])
fi
AC_SUBST(ICONV_LDFLAGS)
AC_SUBST(ICONV_CFLAGS)
AC_SUBST(LIBASS_LIBS)
AC_SUBST(LIBASS_CFLAGS)
AM_CONDITIONAL([WITH_LIBASS], [test "$with_libass" = "yes"])
###########
## Hunspell
###########
AC_ARG_WITH(hunspell, [ --without-hunspell build without hunspell support (default: auto)], hunspell_disabled="(disabled)")
if test "x$with_hunspell" != xno; then
PKG_CHECK_MODULES(HUNSPELL, hunspell <= 1.1.10, [with_old_hunspell=yes], [with_old_hunspell=no])
fi
AC_AGI_COMPILE([Hunspell], [hunspell], [$HUNSPELL_CFLAGS], [$HUNSPELL_LIBS],[
#include <hunspell.hxx>
int main(void) {
Hunspell *hunspell;
hunspell = new Hunspell(NULL,NULL);
if (!hunspell) return 1;
return 0;
])
if test "$agi_with_hunspell" = "no" && test "$with_hunspell" = "yes"; then
AC_MSG_WARN([Hunspell detected, but it doesn't work..])
with_old_hunspell="no"
fi
AM_CONDITIONAL([HAVE_HUNSPELL], [test "$with_old_hunspell" != "no"])
if test "$with_old_hunspell" = "yes"; then
AC_DEFINE(WITH_OLD_HUNSPELL, 1, [Enable Older Hunspell support.])
HUNSPELL_CFLAGS="$HUNSPELL_CFLAGS -DWITH_OLD_HUNSPELL"
with_hunspell="yes"
with_hunspell_version="(old hunspell)"
else
with_hunspell="no"
fi
######################
## universalchardetect
######################
AC_ARG_ENABLE(univchardet, [ --disable-univchardet diable 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_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_LDFLAGS"; then
LUA_LDFLAGS="-llua";
fi
AC_ARG_WITH(lua,
[ --without-lua build without lua 5.1 (auto4)], [lua_disabled="(disabled)"])
if test "$with_lua" != no; then
aegisub_save_CPPFLAGS="$CPPFLAGS"
aegisub_save_LDFLAGS="$LDFLAGS"
CPPFLAGS="$CPPFLAGS $LUA_CFLAGS"
LDFLAGS="$LDFLAGS $LUA_LDFLAGS"
AC_CACHE_CHECK(
[whether Lua 5.1 works], [with_lua],
[AC_COMPILE_IFELSE([
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;
}],
[with_lua="yes"],
[with_lua="no"])
])
CPPFLAGS="$aegisub_save_CPPFLAGS"
LDFLAGS="$aegisub_save_LDFLAGS"
fi
if test "$with_lua" != "no"; then
with_auto4="yes"
with_automation="yes"
AC_DEFINE(WITH_AUTO4_LUA, 1, [Enable Automation (auto4), requires lua])
else
with_auto4="no"
LUA_CFLAGS=""
LUA_LDFLAGS=""
fi
AM_CONDITIONAL([HAVE_AUTO4_LUA], [test "$with_auto4" != "no"])
AC_SUBST(LUA50_CFLAGS)
AC_SUBST(LUA50_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
AC_ARG_WITH(lua50,
[ --without-lua50 build without lua 5.0 (auto3)], [lua_disabled="(disabled)"])
if test "$with_lua50" != no; then
aegisub_save_CPPFLAGS="$CPPFLAGS"
aegisub_save_LDFLAGS="$LDFLAGS"
CPPFLAGS="$CPPFLAGS $LUA50_CFLAGS"
LDFLAGS="$LDFLAGS $LUA50_LDFLAGS"
AC_CACHE_CHECK(
[whether Lua 5.0 works], [with_lua50],
[AC_COMPILE_IFELSE([
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);
}],
[with_lua50="yes"],
[with_lua50="no"])
])
CPPFLAGS="$aegisub_save_CPPFLAGS"
LDFLAGS="$aegisub_save_LDFLAGS"
fi
if test "$with_lua50" != "no"; then
with_auto3="yes"
with_automation="yes"
AC_DEFINE(WITH_AUTO3, 1, [Enable Automation (auto3, DEPRECIATED!), requires lua 5.0])
else
with_auto3="no"
LUA50_CFLAGS=""
LUA50_LDFLAGS=""
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 -z "$perl_disabled"; then
if test -z "$WITH_PERL_BIN"; then
AC_PATH_PROG([PERL_BIN],perl,no)
else
PERL_BIN="$WITH_PERL_BIN"
fi
# XXX: add a --with-perlconsole flag.
# AC_DEFINE(WITH_PERLCONSOLE, 1, [Enable PERL Console support (for debugging purposes)])
if test "$PERL_BIN" != "no"; then
AC_CACHE_CHECK(
[checking for perl version >= 5.004], [with_perl],
[if $PERL_BIN -e 'require 5.004'; then with_perl="yes"; else with_perl="no"; fi])
if test "$with_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_with_perl" = "no" && test "$with_perl" = "yes"; then
AC_MSG_WARN([Perl detected, but it doesn't work..])
with_perl="no"
fi
if test "$with_perl" = "yes"; then
with_automation="yes"
AC_DEFINE(WITH_PERL, 1, [Enable PERL support.])
fi
AC_SUBST(PERL_CFLAGS)
AC_SUBST(PERL_LDFLAGS)
AM_CONDITIONAL([HAVE_AUTO4_PERL], [test "$with_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 -z "$ruby_disabled"; 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 >= 1.8], [with_ruby],
[if $RUBY_BIN -r rbconfig -e 'if Config::CONFIG@<:@"ruby_version"@:>@.to_f >= 1.8 then exit(0) else exit(1) end'; then
with_ruby="yes"; else with_ruby="no"; fi])
if test "$with_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_with_ruby" = "no" && test "$with_ruby" = "yes"; then
AC_MSG_WARN([Ruby detected, but it doesn't work..])
with_ruby="no"
fi
if test "$with_ruby" = "yes"; then
with_automation="yes"
AC_DEFINE(WITH_RUBY, 1, [Enable RUBY Automation.])
fi
AC_SUBST(RUBY_CFLAGS)
AC_SUBST(RUBY_LDFLAGS)
AM_CONDITIONAL([HAVE_AUTO4_RUBY], [test "$with_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(wx-opengl, [ --enable-wx-opengl Force wxwidgets OpenGL support. ])
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;
return 0;
}])
if test "$with_agi_wxopengl" = "no"; then
AC_MSG_FAILURE([wxWidgets OpenGL support missing])
fi
AC_ARG_ENABLE(wx-styledtextctrl, [ --enable-wx-styledtextctrl
Force wxwidgets StyledTextCtrl support.])
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;
}
])
if test "$with_agi_wxstc" = "no"; then
AC_MSG_FAILURE([wxWidgets StyledTextCtrl support missing])
fi
################################################
# Internationalisation support (keep this last!)
################################################
AC_PROG_INTLTOOL
AM_GLIB_GNU_GETTEXT
GETTEXT_PACKAGE=aegisub21
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
AC_OUTPUT([
Makefile
aegisub/Makefile
aegisub/bitmaps/Makefile
aegisub/posix/Makefile
universalchardet/Makefile
auto3/Makefile
libass/Makefile
automation/Makefile
po/Makefile.in
m4macros/Makefile
])
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:
auto4 Perl: $with_perl $perl_disabled
auto3: $with_auto3 $lua50_disabled
auto4: $with_auto4 $lua_disabled
auto4 Ruby: $with_ruby $ruby_disabled
Audio Providers:
ALSA: $with_alsa $alsa_disabled
OpenAL: $with_openal $openal_disabled
PortAudio: $with_portaudio $portaudio_disabled
PulseAudio: $with_pulseaudio $pulseaudio_disabled
Video Providers
ffmpeg: $with_ffmpeg $ffmpeg_disabled
Subtitle Providers:
asa: $with_asa
libass $with_libass (requires iconv, fontconfig) $libass_disabled
Misc Packages:
hunspell: $with_hunspell $with_hunspell_version $hunspell_disabled
universalchardet: $with_univchardet $univchardet_disabled
]);