mirror of https://github.com/odrling/Aegisub
863 lines
23 KiB
Plaintext
863 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"
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
AM_CONDITIONAL([BUILD_DARWIN], [test "$build_darwin" = "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
|
|
]);
|