configure.ac 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. # -*- Autoconf -*-
  2. # Process this file with autoconf to produce a configure script.
  3. AC_PREREQ(2.60)
  4. AC_INIT(vcmi, 0.89) # Follow VCMI_VERSION in GameConstants.h
  5. AM_INIT_AUTOMAKE
  6. AC_CONFIG_MACRO_DIR([aclocal/m4])
  7. # Checks for build toolchain
  8. AC_LANG(C++)
  9. AC_PROG_CXX
  10. AC_ENABLE_SHARED
  11. AC_DISABLE_STATIC
  12. AC_PROG_LIBTOOL
  13. AX_COMPILER_VENDOR
  14. # Use silent rules if supported.
  15. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
  16. AC_ARG_ENABLE(debug,
  17. [ --disable-debug turn off debugging (default=enable)],
  18. [ if test x$enableval = xyes ; then
  19. enable_debug="yes"
  20. else
  21. enable_debug="no"
  22. fi],
  23. [ enable_debug="yes" ])
  24. if test "x$GXX" = "xyes" -a "x$enable_debug" = "xyes" ; then
  25. CXXFLAGS="$CXXFLAGS -O0 -ggdb"
  26. fi
  27. # For gcc and compatible compilers, enable compilation warnings, but
  28. # selectively disable some because too many are generated.
  29. if test "x$GXX" = "xyes" ; then
  30. CXXFLAGS="$CXXFLAGS -std=c++0x -Wall -Wextra -Wcast-align -Wpointer-arith -Wno-switch -Wno-sign-compare -Wno-unused-parameter"
  31. fi
  32. # extra clang parameters
  33. if test "x${ax_cv_cxx_compiler_vendor}" = "xclang" ; then
  34. CXXFLAGS="$CXXFLAGS -Wno-cast-align -Wno-overloaded-virtual"
  35. fi
  36. # extra Intel icc parameters
  37. if test "x${ax_cv_cxx_compiler_vendor}" = "xintel" ; then
  38. CXXFLAGS="$CXXFLAGS -diag-disable 383,981,1418,869,1563,2259,1782,444,271,1,10156,1419"
  39. fi
  40. # Check for Boost libraries
  41. AX_BOOST_BASE([1.36])
  42. AX_BOOST_SYSTEM
  43. AX_BOOST_FILESYSTEM
  44. AX_BOOST_THREAD
  45. AX_BOOST_IOSTREAMS
  46. AX_BOOST_PROGRAM_OPTIONS
  47. # Check which libs are necessary
  48. AC_CHECK_LIB(rt, shm_open)
  49. AC_CHECK_LIB(dl, dlopen)
  50. # Check for SDL - Will accept 1.2 and 1.3
  51. AM_PATH_SDL("1.2.0", :, AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]))
  52. # Check for SDL headers and libraries
  53. AC_CHECK_HEADERS([SDL/SDL.h SDL/SDL_mixer.h SDL/SDL_image.h SDL/SDL_ttf.h], [], [AC_MSG_ERROR([Header not found. Install missing devel package.])])
  54. AC_CHECK_LIB(SDL,SDL_Init,,AC_MSG_ERROR([SDL library not found. Please install it.]))
  55. AC_CHECK_LIB(SDL_mixer,main,,AC_MSG_ERROR([SDL_mixer library not found. Please install it.]))
  56. AC_CHECK_LIB(SDL_image,IMG_Load,,AC_MSG_ERROR([SDL_image library not found. Please install it.]))
  57. AC_CHECK_LIB(SDL_ttf,main,,AC_MSG_ERROR([SDL_ttf library not found. Please install it.]))
  58. # Check for ffmpeg libraries
  59. saved_LIBS=$LIBS
  60. saved_CFLAGS=$CFLAGS
  61. FFMPEG_CXXFLAGS=""
  62. FFMPEG_LIBS=
  63. LIBS="$LIBS `pkg-config --libs libavcodec libavformat libavutil libswscale`"
  64. CFLAGS="$CFLAGS `pkg-config --cflags libavformat libswscale`"
  65. AC_CHECK_LIB(avformat,av_register_all,,AC_MSG_ERROR([FFMpeg avformat library not found. Please install it.]))
  66. AC_CHECK_LIB(swscale,sws_getContext,,AC_MSG_ERROR([FFMpeg swscale library not found. Please install it.]))
  67. FFMPEG_LIBS="$LIBS"
  68. FFMPEG_CXXFLAGS="$CFLAGS $AVCODEC_DECODE_VIDEO2 $AV_REGISTER_PROTOCOL2"
  69. LIBS=$saved_LIBS
  70. CFLAGS=$saved_CFLAGS
  71. # Checks for header files.
  72. AC_HEADER_STDC
  73. AC_CHECK_HEADERS([fcntl.h stdlib.h string.h])
  74. CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
  75. AC_CHECK_HEADERS([boost/filesystem.hpp boost/algorithm/string.hpp boost/algorithm/string/replace.hpp boost/filesystem/operations.hpp boost/assign/std/vector.hpp boost/algorithm/string/find.hpp boost/function.hpp boost/bind.hpp],,AC_MSG_ERROR([Required boost headers not found. Please install it.]))
  76. # Checks for library functions.
  77. AC_CHECK_FUNCS([atexit memset pow select sqrt])
  78. CXXFLAGS="$CXXFLAGS -DM_DATA_DIR=\\\"\$(pkgdatadir)\\\" -DM_BIN_DIR=\\\"\$(bindir)\\\" -DM_LIB_DIR=\\\"\$(pkglibdir)\\\""
  79. AC_SUBST(SDL_LIBS)
  80. AC_SUBST(SDL_CXXFLAGS)
  81. AC_SUBST(FFMPEG_LIBS)
  82. AC_SUBST(FFMPEG_CXXFLAGS)
  83. VCMI_AI_LIBS_DIR="$libdir/vcmi/AI"
  84. AC_SUBST(VCMI_AI_LIBS_DIR)
  85. VCMI_SCRIPTING_LIBS_DIR="$libdir/vcmi/Scripting"
  86. AC_SUBST(VCMI_SCRIPTING_LIBS_DIR)
  87. AC_OUTPUT(Makefile lib/Makefile client/Makefile server/Makefile AI/FuzzyLite/Makefile AI/Makefile AI/StupidAI/Makefile AI/EmptyAI/Makefile AI/VCAI/Makefile Scripting/ERM/Makefile)