1AC_INIT([vimpc], [0.09.1], [https://github.com/boysetsfrog/vimpc], [vimpc], [https://github.com/boysetsfrog/vimpc]) 2AC_LANG_PUSH([C++]) 3 4AC_PREREQ([2.59]) 5AM_INIT_AUTOMAKE([foreign]) 6AC_CONFIG_HEADERS([src/config.h]) 7AC_PROG_CXX 8 9# Need to check this directory on bsd systems 10CPPFLAGS="$CPPFLAGS -I/usr/local/include -I/opt/local/include" 11CXXFLAGS="$CXXFLAGS -D__STRICT_ANSI__" 12LDFLAGS="$LDFLAGS -L/opt/local/lib" 13 14AC_CHECK_HEADERS(sys/ioctl.h termios.h) 15 16AC_MSG_CHECKING(for svnversion) 17if test -d .svn && hash svnversion 2>/dev/null; then 18 AC_MSG_RESULT(yes) 19 PACKAGE_SVN_REVISION=`svnversion` 20 AC_DEFINE_UNQUOTED(PACKAGE_SVN_REVISION, "${PACKAGE_SVN_REVISION}", "Define to the subversion repository version of this package.") 21else 22 AC_MSG_RESULT(no) 23fi 24 25AC_MSG_CHECKING(for git) 26if test -d .git && hash git 2>/dev/null; then 27 AC_MSG_RESULT(yes) 28 PACKAGE_GIT_REVISION=`git rev-parse HEAD` 29 AC_DEFINE_UNQUOTED(PACKAGE_GIT_REVISION, "${PACKAGE_GIT_REVISION}", "Define to the git repository version of this package.") 30else 31 AC_MSG_RESULT(no) 32fi 33 34AX_PTHREAD([AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.])], 35 [AC_MSG_ERROR(vimpc requires pthread library)]) 36 37CFLAGS="$PTHREAD_CFLAGS $CFLAGS" 38CXXFLAGS="$PTHREAD_CFLAGS $CXXFLAGS" 39CC="$PTHREAD_CC"] 40 41AX_CXX_COMPILE_STDCXX_11(noext,mandatory) 42 43boost_default="no" 44 45AC_MSG_CHECKING(whether to enable boost automatically) 46AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <functional>] 47 [#include <atomic>] 48 [#include <thread>]], 49 [[std::thread thread; std::function<void()> function; std::atomic<bool> atom;]])], 50 AC_MSG_RESULT([no]), 51 [boost_default="yes" 52 AC_MSG_RESULT([yes])] 53) 54 55AC_ARG_ENABLE(boost, [ --enable-boost=[no/yes] turn on/off boost support [default=$boost_default]],, enable_boost=$boost_default) 56if test "x$enable_boost" = "xyes"; then 57AC_DEFINE_UNQUOTED(BOOST_SUPPORT, "1", "Define to 1 if boost support enabled") 58 59AX_BOOST_BASE([], [], [AC_MSG_ERROR(vimpc requires boost library)]) 60AX_BOOST_SYSTEM([], [], [AC_MSG_ERROR(vimpc requires boost system library)]) 61AX_BOOST_THREAD([], [], [AC_MSG_ERROR(vimpc requires boost thread library)]) 62 63AC_CHECK_HEADER(boost/thread.hpp, 64 [AC_DEFINE_UNQUOTED(HAVE_BOOST_THREAD,1,Define to 1 if <boost/thread.hpp> header file)], 65 [AC_MSG_ERROR(boostthread-dev library is required)]) 66 67AC_CHECK_HEADER(boost/foreach.hpp, 68 [AC_DEFINE_UNQUOTED(HAVE_BOOST_FOREACH,1,Define to 1 if <boost/foreach.hpp> header file)], 69 [AC_MSG_ERROR(boost-dev library is required)]) 70 71AC_CHECK_HEADER(boost/function.hpp, 72 [AC_DEFINE_UNQUOTED(HAVE_BOOST_FUNCTION,1,Define to 1 if <boost/function.hpp> header file)], 73 [AC_MSG_ERROR(boost-dev library is required)]) 74 75CPPFLAGS="$CPPFLAGS -DUSE_BOOST_THREAD -DUSE_BOOST_FUNCTIONAL -DUSE_BOOST_FOREACH" 76LIBS="$LIBS $BOOST_SYSTEM_LIB $BOOST_THREAD_LIB" 77 78AC_MSG_CHECKING([whether compiler supports lambda functions]) 79AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <boost/function.hpp>]], [[int a = 5; boost::function<int(int)> f = [&a](int b) { return a + b; }; f(8);]])], 80 AC_MSG_RESULT([yes]), 81 AC_MSG_RESULT([no]) 82 AC_MSG_ERROR([[Your compiler doesn't seem to support lambda functions, please upgrade (G++ >= 4.6)]])) 83else 84AC_MSG_CHECKING([whether compiler supports lambda functions]) 85AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <functional>]], [[int a = 5; std::function<int(int)> f = [&a](int b) { return a + b; }; f(8);]])], 86 AC_MSG_RESULT([yes]), 87 AC_MSG_RESULT([no]) 88 AC_MSG_ERROR([[Your compiler doesn't seem to support lambda functions, please upgrade (G++ >= 4.6)]])) 89fi 90 91MP_WITH_CURSES 92HAVE_CURS=$mp_cv_curses 93if test x$HAVE_CURS != xyes; then 94 AC_MSG_ERROR([vimpc requires the curses or ncurses library. Please install before compiling vimpc.]) 95fi 96 97LIBS="$LIBS $CURSES_LIB" 98 99AC_SEARCH_LIBS([keypad], [tinfow tinfo]) 100 101PKG_CHECK_MODULES(pcre, libpcre) 102 103AC_SUBST(pcre_LIBS) 104AC_SUBST(pcre_CFLAGS) 105 106AC_CHECK_HEADER(pcre.h, 107 [], 108 [AC_MSG_ERROR(libpcre-dev library is required)]) 109 110lyrics_default="yes" 111AC_ARG_ENABLE(lyrics, [ --enable-lyrics=[no/yes] turn on/off lyric fetching support [default=$lyrics_default]],, enable_lyrics=$lyrics_default) 112 113AM_CONDITIONAL([LYRICS_SUPPORT], [test x$enable_lyrics = xyes]) 114 115if test "x$enable_lyrics" = "xyes"; then 116AC_DEFINE_UNQUOTED(LYRICS_SUPPORT, "1", "Define to 1 if lyrics support enabled") 117 118PKG_CHECK_MODULES(curl, libcurl) 119 120AC_SUBST(curl_LIBS) 121AC_SUBST(curl_CFLAGS) 122 123AC_CHECK_HEADER(curl/curl.h, 124 [AC_DEFINE_UNQUOTED(HAVE_CURL_CURL_H,1,Define to 1 if <curl.h> header file)], 125 [AC_MSG_ERROR(libcurl library is required)]) 126fi 127 128taglib_default="yes" 129AC_ARG_ENABLE(taglib, [ --enable-taglib=[no/yes] turn on/off taglib support [default=$taglib_default]],, enable_taglib=$taglib_default) 130if test "x$enable_taglib" = "xyes"; then 131AC_DEFINE_UNQUOTED(TAG_SUPPORT, "1", "Define to 1 if tag support enabled") 132 133PKG_CHECK_MODULES(taglib, taglib) 134 135AC_SUBST(taglib_LIBS) 136AC_SUBST(taglib_CFLAGS) 137 138AC_CHECK_HEADER(taglib/taglib.h, 139 [AC_DEFINE_UNQUOTED(HAVE_TAGLIB_H,1,Define to 1 if <taglib.h> header file)], 140 [AC_MSG_ERROR(taglib-dev library is required)]) 141fi 142 143test_default="no" 144AC_ARG_ENABLE(test, [ --enable-test=[no/yes] turn on/off test support [default=$test_default]],, enable_test=$test_default) 145 146AM_CONDITIONAL([BUILD_TEST], [test x$enable_test = xyes]) 147 148if test "x$enable_test" = "xyes"; then 149AC_DEFINE_UNQUOTED(TEST_ENABLED, "1", "Define to 1 if test support is enabled") 150 151PKG_CHECK_MODULES(cppunit, cppunit) 152 153AC_SUBST(cppunit_LIBS) 154AC_SUBST(cppunit_CFLAGS) 155 156AC_CHECK_HEADER(cppunit/Test.h, 157 [AC_DEFINE_UNQUOTED(HAVE_TEST_H,1,Define to 1 if <Test.h> header file)], 158 [AC_MSG_ERROR(libcppunit-dev library is required)]) 159fi 160 161profiler_default="no" 162AC_ARG_ENABLE(profiler, [ --enable-profiler=[no/yes] turn on/off profiler support [default=$profiler_default]],, enable_profiler=$profiler_default) 163 164AM_CONDITIONAL([BUILD_PROFILER], [test x$enable_profiler = xyes]) 165 166if test "x$enable_profiler" = "xyes"; then 167AC_DEFINE_UNQUOTED(PROFILER_ENABLED, "1", "Define to 1 if profiler support is enabled") 168 169LIBS="$LIBS -lprofiler" 170fi 171 172 173AC_CHECK_HEADER(mpd/client.h, 174 [], 175 [AC_MSG_ERROR(mpdclient-dev library is required)]) 176 177PKG_CHECK_MODULES(mpdclient, libmpdclient) 178 179AC_SUBST(mpdclient_LIBS) 180AC_SUBST(mpdclient_CFLAGS) 181 182AC_MSG_CHECKING(whether to enable debugging) 183debug_default="no" 184AC_ARG_ENABLE(debug, [ --enable-debug=[no/yes] turn on debugging [default=$debug_default]],, enable_debug=$debug_default) 185if test "x$enable_debug" = "xyes"; then 186 CPPFLAGS="$CPPFLAGS -g -D__DEBUG_PRINTS -D__DEBUG_ASSERT" 187 AC_MSG_RESULT(yes) 188else 189 AC_MSG_RESULT(no) 190fi 191 192if test "x$enable_debug" = "xyes"; then 193 AC_CHECK_HEADER(execinfo.h, [AC_DEFINE_UNQUOTED(HAVE_EXECINFO_H,1,Define to 1 if there is an <execinfo.h> header file)],[]) 194fi 195 196AC_MSG_CHECKING(whether to enable warnings) 197warn_default="no" 198AC_ARG_ENABLE(warnings, [ --enable-warnings=[no/yes] turn on warnings [default=$warn_default]],, enable_warnings=$warn_default) 199if test "x$enable_warnings" = "xyes"; then 200 CPPFLAGS="$CPPFLAGS \\ 201 -Waddress -Warray-bounds -Wc++0x-compat -Wchar-subscripts -Wenum-compare -Wcomment -Wformat \\ 202 -Wmissing-braces -Wparentheses -Wreorder -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing \\ 203 -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized \\ 204 -Wformat -Wold-style-cast -Woverloaded-virtual -Wctor-dtor-privacy -Wsign-promo \\ 205 -Wswitch-default -Wswitch-enum -Wfloat-equal -Wshadow -Winit-self -Wformat-security \\ 206 -Wcast-qual -Wcast-align -Wmissing-declarations -Wcomment" 207 AC_MSG_RESULT(yes) 208else 209 AC_MSG_RESULT(no) 210fi 211 212 213CPPFLAGS="$CPPFLAGS -DHELP_DIRECTORY='\"$docdir\"'" 214 215AC_CONFIG_FILES([Makefile]) 216AC_OUTPUT 217