winamp/Src/external_dependencies/openmpt-trunk/build/autotools/configure.ac

347 lines
9.1 KiB
Plaintext
Raw Normal View History

2024-09-24 12:54:57 +00:00
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