347 lines
9.1 KiB
Plaintext
347 lines
9.1 KiB
Plaintext
AC_INIT([libopenmpt], [!!MPT_LIBOPENMPT_VERSION_MAJOR!!.!!MPT_LIBOPENMPT_VERSION_MINOR!!.!!MPT_LIBOPENMPT_VERSION_PATCH!!!!MPT_LIBOPENMPT_VERSION_PREREL!!+!!MPT_SEMVER_METADATA_PREFIX!!.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/])
|
|
AC_PREREQ([2.68])
|
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AC_CONFIG_FILES([Makefile libopenmpt/libopenmpt.pc Doxyfile])
|
|
|
|
AM_INIT_AUTOMAKE([1.11 -Wall -Werror foreign subdir-objects])
|
|
|
|
AM_PROG_AR
|
|
|
|
LT_INIT
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
PKG_PROG_PKG_CONFIG([0.24])
|
|
AC_PROG_CC
|
|
AM_PROG_CC_C_O
|
|
AC_PROG_CXX
|
|
AC_PROG_INSTALL
|
|
|
|
LIBOPENMPT_LTVER_CURRENT=!!MPT_LIBOPENMPT_LTVER_CURRENT!!
|
|
LIBOPENMPT_LTVER_REVISION=!!MPT_LIBOPENMPT_LTVER_REVISION!!
|
|
LIBOPENMPT_LTVER_AGE=!!MPT_LIBOPENMPT_LTVER_AGE!!
|
|
AC_SUBST([LIBOPENMPT_LTVER_CURRENT])
|
|
AC_SUBST([LIBOPENMPT_LTVER_REVISION])
|
|
AC_SUBST([LIBOPENMPT_LTVER_AGE])
|
|
|
|
AC_DEFINE([MPT_SVNURL], ["!!MPT_SVNURL!!"], [svn version])
|
|
AC_DEFINE([MPT_SVNVERSION], ["!!MPT_SVNVERSION!!"], [svn version])
|
|
AC_DEFINE([MPT_SVNDATE], ["!!MPT_SVNDATE!!"], [svn date])
|
|
AC_DEFINE([MPT_PACKAGE], [!!MPT_PACKAGE!!], [is package])
|
|
|
|
|
|
AC_ARG_VAR(CXXSTDLIB_PCLIBSPRIVATE, [C++ standard library (or libraries) required for static linking. This will be put in the pkg-config file libopenmpt.pc Libs.private field and used for nothing else.])
|
|
|
|
|
|
AC_CANONICAL_HOST
|
|
case $host_os in
|
|
mingw32*)
|
|
LIBOPENMPT_WIN32_LIBS="-lole32 -lrpcrt4"
|
|
LIBOPENMPT_LIBS_PRIVATE_WIN32="-lole32 -lrpcrt4"
|
|
OPENMPT123_WIN32_LIBS=-lwinmm
|
|
WIN32_CPPFLAGS=
|
|
WIN32_CXXFLAGS="-municode -mthreads"
|
|
WIN32_CFLAGS="-municode -mthreads"
|
|
WIN32_CONSOLE_CXXFLAGS=-mconsole
|
|
WIN32_CONSOLE_CFLAGS=-mconsole
|
|
;;
|
|
*)
|
|
LIBOPENMPT_WIN32_LIBS=
|
|
LIBOPENMPT_LIBS_PRIVATE_WIN32=
|
|
OPENMPT123_WIN32_LIBS=
|
|
WIN32_CPPFLAGS=
|
|
WIN32_CXXFLAGS=
|
|
WIN32_CFLAGS=
|
|
WIN32_CONSOLE_CXXFLAGS=
|
|
WIN32_CONSOLE_CFLAGS=
|
|
;;
|
|
esac
|
|
AC_SUBST([LIBOPENMPT_WIN32_LIBS])
|
|
AC_SUBST([OPENMPT123_WIN32_LIBS])
|
|
AC_SUBST([WIN32_CPPFLAGS])
|
|
AC_SUBST([WIN32_CXXFLAGS])
|
|
AC_SUBST([WIN32_CFLAGS])
|
|
AC_SUBST([WIN32_CONSOLE_CXXFLAGS])
|
|
AC_SUBST([WIN32_CONSOLE_CFLAGS])
|
|
|
|
LIBOPENMPT_REQUIRES_PRIVATE=
|
|
LIBOPENMPT_LIBS_PRIVATE=
|
|
|
|
# Required libopenmpt dependency: zlib
|
|
ZLIB_PKG=
|
|
AC_ARG_WITH([zlib], AS_HELP_STRING([--without-zlib], [Disable use of zlib.]))
|
|
AS_IF([test "x$with_zlib" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([ZLIB], [zlib],
|
|
[
|
|
ZLIB_PKG=zlib
|
|
AC_DEFINE([MPT_WITH_ZLIB], [], [with zlib])
|
|
], [AC_MSG_ERROR([Unable to find zlib.])])
|
|
]
|
|
)
|
|
|
|
# Required libopenmpt dependency: mpg123
|
|
MPG123_PKG=
|
|
AC_ARG_WITH([mpg123], AS_HELP_STRING([--without-mpg123], [Disable use of libmpg123.]))
|
|
AS_IF([test "x$with_mpg123" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([MPG123], [libmpg123 >= 1.14.0],
|
|
[
|
|
MPG123_PKG=libmpg123
|
|
AC_DEFINE([MPT_WITH_MPG123], [], [with mpg123])
|
|
], [AC_MSG_ERROR([Unable to find libmpg123.])])
|
|
]
|
|
)
|
|
|
|
# Required libopenmpt dependency: ogg
|
|
OGG_PKG=
|
|
AC_ARG_WITH([ogg], AS_HELP_STRING([--without-ogg], [Disable use of libogg.]))
|
|
AS_IF([test "x$with_ogg" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([OGG], [ogg],
|
|
[
|
|
OGG_PKG=ogg
|
|
AC_DEFINE([MPT_WITH_OGG], [], [with ogg])
|
|
], [AC_MSG_ERROR([Unable to find libogg.])])
|
|
]
|
|
)
|
|
|
|
# Required libopenmpt dependency: vorbis
|
|
VORBIS_PKG=
|
|
AC_ARG_WITH([vorbis], AS_HELP_STRING([--without-vorbis], [Disable use of libvorbis.]))
|
|
AS_IF([test "x$with_vorbis" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([VORBIS], [vorbis],
|
|
[
|
|
VORBIS_PKG=vorbis
|
|
AC_DEFINE([MPT_WITH_VORBIS], [], [with vorbis])
|
|
], [AC_MSG_ERROR([Unable to find libvorbis.])])
|
|
]
|
|
)
|
|
|
|
# Required libopenmpt dependency: vorbisfile
|
|
VORBISFILE_PKG=
|
|
AC_ARG_WITH([vorbisfile], AS_HELP_STRING([--without-vorbisfile], [Disable use of libvorbisfile.]))
|
|
AS_IF([test "x$with_vorbisfile" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([VORBISFILE], [vorbisfile],
|
|
[
|
|
VORBISFILE_PKG=vorbisfile
|
|
AC_DEFINE([MPT_WITH_VORBISFILE], [], [with vorbisfile])
|
|
], [AC_MSG_ERROR([Unable to find libvorbisfile.])])
|
|
]
|
|
)
|
|
|
|
|
|
LIBOPENMPT_REQUIRES_PRIVATE="$ZLIB_PKG $MPG123_PKG $OGG_PKG $VORBIS_PKG $VORBISFILE_PKG"
|
|
LIBOPENMPT_LIBS_PRIVATE="$CXXSTDLIB_PCLIBSPRIVATE $LIBOPENMPT_LIBS_PRIVATE_WIN32"
|
|
AC_SUBST([LIBOPENMPT_REQUIRES_PRIVATE])
|
|
AC_SUBST([LIBOPENMPT_LIBS_PRIVATE])
|
|
|
|
|
|
# openmpt123
|
|
AC_ARG_ENABLE([openmpt123], AS_HELP_STRING([--disable-openmpt123], [Disable the openmpt123 command line player.]))
|
|
AM_CONDITIONAL([ENABLE_OPENMPT123], [test "x$enable_openmpt123" != "xno"])
|
|
|
|
|
|
# examples
|
|
AC_ARG_ENABLE([examples], AS_HELP_STRING([--disable-examples], [Disable the example programs.]))
|
|
AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" != "xno"])
|
|
|
|
|
|
# tests
|
|
AC_ARG_ENABLE([tests], AS_HELP_STRING([--disable-tests], [Disable the test suite.]))
|
|
AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" != "xno"])
|
|
|
|
|
|
# Optional openmpt123 dependency
|
|
AC_ARG_WITH([pulseaudio], AS_HELP_STRING([--with-pulseaudio], [Enable use of libpulse and libpulse-simple (enabled by default on Linux).]))
|
|
AS_IF([test "x$enable_openmpt123" != "xno"],[
|
|
case $host_os in
|
|
linux*)
|
|
AS_IF([test "x$with_pulseaudio" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([PULSEAUDIO], [libpulse libpulse-simple],
|
|
[
|
|
have_pulseaudio=1
|
|
AC_DEFINE([MPT_WITH_PULSEAUDIO], [], [with libpulseaudio])
|
|
],
|
|
[
|
|
have_pulseaudio=0
|
|
AC_MSG_ERROR([Unable to find libpulse and/or libpulse-simple.])
|
|
]
|
|
)
|
|
],
|
|
[
|
|
have_pulseaudio=0
|
|
]
|
|
)
|
|
;;
|
|
*)
|
|
AS_IF([test "x$with_pulseaudio" = "xyes"],
|
|
[
|
|
PKG_CHECK_MODULES([PULSEAUDIO], [libpulse libpulse-simple],
|
|
[
|
|
have_pulseaudio=1
|
|
AC_DEFINE([MPT_WITH_PULSEAUDIO], [], [with libpulseaudio])
|
|
],
|
|
[
|
|
have_pulseaudio=0
|
|
AC_MSG_ERROR([Unable to find libpulse and/or libpulse-simple.])
|
|
]
|
|
)
|
|
],
|
|
[
|
|
have_pulseaudio=0
|
|
]
|
|
)
|
|
;;
|
|
esac
|
|
],[have_pulseaudio=0])
|
|
|
|
# Optional openmpt123 and examples dependency
|
|
AC_ARG_WITH([portaudio], AS_HELP_STRING([--without-portaudio], [Disable use of libportaudio.]))
|
|
AS_IF([test "x$enable_openmpt123$enable_examples" != "xnono"],[
|
|
AS_IF([test "x$with_portaudio" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([PORTAUDIO], [portaudio-2.0],
|
|
[
|
|
have_portaudio=1
|
|
AC_DEFINE([MPT_WITH_PORTAUDIO], [], [with libportaudio])
|
|
],
|
|
[
|
|
have_portaudio=0
|
|
AC_MSG_ERROR([Unable to find libportaudio.])
|
|
]
|
|
)
|
|
],
|
|
[
|
|
have_portaudio=0
|
|
]
|
|
)
|
|
],[have_portaudio=0])
|
|
AM_CONDITIONAL([HAVE_PORTAUDIO], [test x$have_portaudio = x1])
|
|
|
|
# Optional examples dependency: PortAudio C++
|
|
AC_ARG_WITH([portaudiocpp], AS_HELP_STRING([--without-portaudiocpp], [Disable use of libportaudiocpp.]))
|
|
AS_IF([test "x$enable_examples" != "xno"],[
|
|
AS_IF([test "x$with_portaudiocpp" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([PORTAUDIOCPP], [portaudiocpp],
|
|
[
|
|
have_portaudiocpp=1
|
|
AC_DEFINE([MPT_WITH_PORTAUDIOCPP], [], [with libportaudiocpp])
|
|
],
|
|
[
|
|
have_portaudiocpp=0
|
|
AC_MSG_ERROR([Unable to find libportaudiocpp.])
|
|
]
|
|
)
|
|
],
|
|
[
|
|
have_portaudiocpp=0
|
|
]
|
|
)
|
|
],[have_portaudiocpp=0])
|
|
AM_CONDITIONAL([HAVE_PORTAUDIOCPP], [test x$have_portaudiocpp = x1])
|
|
|
|
# Optional disabled openmpt123 dependency: libsdl2
|
|
AC_ARG_WITH([sdl2], AS_HELP_STRING([--with-sdl2], [Enable use of libsdl2.]))
|
|
AS_IF([test "x$enable_openmpt123" != "xno"],[
|
|
AS_IF([test "x$with_sdl2" = "xyes"],
|
|
[
|
|
PKG_CHECK_MODULES([SDL2], [sdl2 >= 2.0.4], [AC_DEFINE([MPT_WITH_SDL2], [], [with libsdl2])], [AC_MSG_ERROR([Unable to find libsdl2.])])
|
|
]
|
|
)
|
|
])
|
|
|
|
# Optional openmpt123 dependency: libsndfile
|
|
AC_ARG_WITH([sndfile], AS_HELP_STRING([--without-sndfile], [Disable use of libsndfile.]))
|
|
AS_IF([test "x$enable_openmpt123" != "xno"],[
|
|
AS_IF([test "x$with_sndfile" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([SNDFILE], [sndfile], [AC_DEFINE([MPT_WITH_SNDFILE], [], [with libsndfile])], [AC_MSG_ERROR([Unable to find libsndfile.])])
|
|
]
|
|
)
|
|
])
|
|
|
|
# Optional openmpt123 dependency: libFLAC
|
|
AC_ARG_WITH([flac], AS_HELP_STRING([--without-flac], [Disable use of libflac.]))
|
|
AS_IF([test "x$enable_openmpt123" != "xno"],[
|
|
AS_IF([test "x$with_flac" != "xno"],
|
|
[
|
|
PKG_CHECK_MODULES([FLAC], [flac >= 1.3.0], [AC_DEFINE([MPT_WITH_FLAC], [], [with libflac])], [AC_MSG_ERROR([Unable to find libflac >= 1.3.0.])])
|
|
]
|
|
)
|
|
])
|
|
|
|
# We want a modern C compiler
|
|
AC_PROG_CC_STDC
|
|
#AC_PROG_CC_C99
|
|
|
|
# We need C++17 support
|
|
#AX_CXX_COMPILE_STDCXX(20, [noext], [optional])
|
|
#AS_IF([test "x$HAVE_CXX20" != "x1"],
|
|
# [
|
|
# AX_CXX_COMPILE_STDCXX(17, [noext], [mandatory])
|
|
# ],[]
|
|
#)
|
|
AX_CXX_COMPILE_STDCXX(17, [noext], [mandatory])
|
|
|
|
AC_LANG_PUSH([C])
|
|
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [CFLAGS="$CFLAGS -fvisibility=hidden"])
|
|
AX_CFLAGS_WARN_ALL
|
|
AC_LANG_POP([C])
|
|
|
|
AC_LANG_PUSH([C++])
|
|
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [CXXFLAGS="$CXXFLAGS -fvisibility=hidden"])
|
|
AX_CXXFLAGS_WARN_ALL
|
|
AC_LANG_POP([C++])
|
|
|
|
# mingw c++ thread
|
|
AC_LANG_PUSH([C++])
|
|
case $host_os in
|
|
mingw32*)
|
|
AC_CHECK_HEADER([mingw.mutex.h],
|
|
[
|
|
have_mingwstdtthreads=1
|
|
],
|
|
[
|
|
have_mingwstdtthreads=0
|
|
]
|
|
)
|
|
;;
|
|
*)
|
|
have_mingwstdtthreads=0
|
|
;;
|
|
esac
|
|
AC_LANG_POP([C++])
|
|
AS_IF([test "x$have_mingwstdtthreads" = "x1"],
|
|
[
|
|
MINGWSTDTHREADS_CPPFLAGS=-DMPT_WITH_MINGWSTDTHREADS
|
|
],
|
|
[
|
|
MINGWSTDTHREADS_CPPFLAGS=
|
|
]
|
|
)
|
|
AC_SUBST([MINGWSTDTHREADS_CPPFLAGS])
|
|
|
|
DX_DOXYGEN_FEATURE(ON)
|
|
DX_DOT_FEATURE(OFF)
|
|
DX_HTML_FEATURE(ON)
|
|
|
|
DX_MAN_FEATURE(OFF)
|
|
DX_CHM_FEATURE(OFF)
|
|
DX_CHI_FEATURE(OFF)
|
|
DX_RTF_FEATURE(OFF)
|
|
DX_XML_FEATURE(OFF)
|
|
DX_PDF_FEATURE(OFF)
|
|
DX_PS_FEATURE(OFF)
|
|
|
|
DX_INIT_DOXYGEN([libopenmpt], [Doxyfile], [doxygen-doc])
|
|
|
|
AC_OUTPUT
|
|
|