forked from mia/Aegisub
* Fix font_file_lister to use fontconfig for unix, freetype for OS X * Set bevelbutton to be conditional for Darwin only. (this fixes the header missing header as well) Originally committed to SVN as r2152.
866 lines
23 KiB
Plaintext
866 lines
23 KiB
Plaintext
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])
|
|
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)
|
|
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"
|
|
CFLAGS="$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_LIBS"; 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(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"])
|
|
|
|
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])
|
|
PERL_CFLAGS=`$PERL_BIN -MExtUtils::Embed -eccflags -eperl_inc`
|
|
AC_MSG_RESULT([$PERL_CFLAGS])
|
|
|
|
AC_MSG_CHECKING([$PERL_BIN libs])
|
|
PERL_LDFLAGS=`$PERL_BIN -MExtUtils::Embed -eldopts`
|
|
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"])
|
|
|
|
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])
|
|
RUBY_CFLAGS=`$RUBY_BIN -r rbconfig -e "printf(\"-I%s %s\", Config::CONFIG@<:@'archdir'@:>@, Config::CONFIG@<:@'CFLAGS'@:>@)"`
|
|
AC_MSG_RESULT([$RUBY_CFLAGS])
|
|
|
|
AC_MSG_CHECKING([checking $RUBY_BIN rbconfig libs])
|
|
RUBY_LDFLAGS=`$RUBY_BIN -r rbconfig -e "print Config::CONFIG@<:@'LIBRUBYARG'@:>@"`
|
|
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
|
|
]);
|