123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- 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
|