configure.ac 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. dnl Process this file with autoconf to produce a configure script.
  2. AC_PREREQ(2.59)
  3. AC_INIT(Open62541, 1.0)
  4. AC_CANONICAL_SYSTEM
  5. AM_INIT_AUTOMAKE([subdir-objects])
  6. AC_PROG_MAKE_SET
  7. # Default CFLAGS is -g -02. Set depending on debug flag.
  8. if test -z $CFLAGS; then
  9. CFLAGS=''
  10. fi
  11. AM_PATH_PYTHON
  12. AC_PROG_CC
  13. AC_PROG_LN_S
  14. AM_PROG_CC_C_O
  15. AC_CHECK_LIB([m],[exp],,AC_MSG_ERROR([Libm missing]))
  16. PKG_CHECK_MODULES([CHECK], [check >= 0.9.12],[have_check="yes"],
  17. AC_MSG_WARN([Check not found or check version lower than 0.9.12; cannot run unit tests!])
  18. [have_check="no"])
  19. AM_CONDITIONAL([HAVE_CHECK], [test x"$have_check" = "xyes"])
  20. AM_CONDITIONAL([TARGET_WIN],[test "${host_os}" = "mingw32"])
  21. AM_CONDITIONAL([TARGET_LINUX],[test "${host_os}" = "linux-gnu" || test "${host_os}" = "linux"])
  22. #adding platform-dependent information to compile flags
  23. AM_COND_IF([TARGET_WIN],
  24. AC_DEFINE([WINDOWS])) #define WINDOWS is accessible from pre-processor
  25. AM_COND_IF([TARGET_LINUX],
  26. AC_DEFINE([LINUX]))
  27. #debugging
  28. AC_ARG_ENABLE(debug,
  29. AS_HELP_STRING([--enable-debug],
  30. [enable debugging, default: no]),
  31. [case "${enableval}" in
  32. yes) debug=true; verbose=false ;;
  33. no) debug=false; verbose=false ;;
  34. verbose) debug=true; verbose=true ;;
  35. *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
  36. esac],[debug=false])
  37. AM_CONDITIONAL(DEBUG, test x"$debug" = x"true")
  38. AM_COND_IF([DEBUG],
  39. AC_DEFINE([DEBUG])) #define DEBUG is accessible from pre-processor
  40. AM_CONDITIONAL(VERBOSE, test x"$verbose" = x"true")
  41. AM_COND_IF([VERBOSE],
  42. AC_DEFINE([VERBOSE])) #define VERBOSE is accessible from pre-processor
  43. #profile
  44. # 100: nano
  45. # 200: embedded
  46. # 900: all available features
  47. AC_ARG_ENABLE(profile,
  48. AS_HELP_STRING([--enable-profile], [select supported features, default: all]),
  49. [case "${enableval}" in
  50. nano) profile=100;;
  51. embedded) profile=200;;
  52. all) profile=900;;
  53. *) AC_MSG_ERROR([bad value ${enableval} for --enable-profile]);;
  54. esac],[profile=900])
  55. AC_DEFINE([PROFILE], [x"$profile"])
  56. #xml encoding
  57. AM_CONDITIONAL(UA_ENCODING_XML, test x"$profile" -ge 200)
  58. AM_COND_IF([UA_ENCODING_XML],
  59. AC_DEFINE([UA_ENCODING_XML], [1])
  60. AC_CHECK_LIB([expat],[XML_Parse],,AC_MSG_ERROR([Libexpat missing])))
  61. #multithreading
  62. AC_ARG_ENABLE(multithreading,
  63. AS_HELP_STRING([--enable-multithreading],
  64. [enable multithreading, default: yes]),
  65. [case "${enableval}" in
  66. yes) multithreading=true ;;
  67. no) multithreading=false ;;
  68. *) AC_MSG_ERROR([bad value ${enableval} for --enable-multithreading]) ;;
  69. esac],[multithreading=false])
  70. AM_CONDITIONAL(MULTITHREADING, test x"$multithreading" = x"true")
  71. AM_COND_IF([MULTITHREADING],
  72. AC_DEFINE([MULTITHREADING])) #define MULTITHREADING is accessible from pre-processor
  73. #coverage
  74. AC_ARG_ENABLE(coverage,
  75. AS_HELP_STRING([--enable-coverage],
  76. [enable coverage, default: no]),
  77. [case "${enableval}" in
  78. yes) coverage=true ;;
  79. no) coverag=false ;;
  80. *) AC_MSG_ERROR([bad value ${enableval} for --enable-coverage]) ;;
  81. esac],[coverage=false])
  82. AM_CONDITIONAL(COVERAGE, test x"$coverage" = x"true")
  83. AM_COND_IF([COVERAGE],
  84. AC_DEFINE([COVERAGE])) #define MULTITHREADING is accessible from pre-processor
  85. #doxygen start
  86. AC_ARG_ENABLE(doxygen,
  87. AS_HELP_STRING([--enable-doxygen],
  88. [enable doxygen, default: no]),
  89. [case "${enableval}" in
  90. yes) enabledoxygen=true ;;
  91. no) enabledoxygen=false ;;
  92. *) AC_MSG_ERROR([bad value ${enableval} for --enable-doxygen]) ;;
  93. esac],[enabledoxygen=false])
  94. AM_CONDITIONAL(ENABLE_DOXYGEN, test x"$enabledoxygen" = x"true")
  95. AC_CHECK_PROGS([DOXYGEN], [doxygen])
  96. AC_CHECK_PROGS([DOT], [dot])
  97. #break if doxygen enabled but not present
  98. if test x"$enabledoxygen" = x"true"; then
  99. if test -z "$DOXYGEN"; then
  100. AC_MSG_ERROR([Doxygen not found])
  101. fi
  102. if test -z "$DOT"; then
  103. AC_MSG_ERROR([Graphviz not found])
  104. fi
  105. fi
  106. AM_COND_IF([ENABLE_DOXYGEN], [AC_CONFIG_FILES([doc/Doxyfile])])
  107. #doxygen end
  108. #language wrappers
  109. AC_ARG_ENABLE(python_wrapper,
  110. AS_HELP_STRING([--enable-python-wrapper],
  111. [build python-wrapper, default: no]),
  112. [case "${enableval}" in
  113. yes) python_wrapper=true ;;
  114. no) python_wrapper=false ;;
  115. *) AC_MSG_ERROR([bad value ${enableval} for --enable-python-wrapper]) ;;
  116. esac],[python_wrapper=false])
  117. AM_CONDITIONAL(PYTHON_WRAPPER, test x"$python_wrapper" = x"true")
  118. AM_COND_IF([PYTHON_WRAPPER],
  119. AC_DEFINE([PYTHON_WRAPPER]))
  120. AC_ARG_ENABLE(lua_wrapper,
  121. AS_HELP_STRING([--enable-lua-wrapper],
  122. [build lua-wrapper, default: no]),
  123. [case "${enableval}" in
  124. yes) lua_wrapper=true ;;
  125. no) lua_wrapper=false ;;
  126. *) AC_MSG_ERROR([bad value ${enableval} for --enable-lua-wrapper]) ;;
  127. esac],[lua_wrapper=false])
  128. AM_CONDITIONAL(LUA_WRAPPER, test x"$lua_wrapper" = x"true")
  129. AM_COND_IF([LUA_WRAPPER],
  130. AC_DEFINE([LUA_WRAPPER]))
  131. AC_LIBTOOL_WIN32_DLL
  132. AC_PROG_LIBTOOL
  133. AC_CONFIG_MACRO_DIR([m4])
  134. AC_CONFIG_FILES(Makefile src/Makefile tests/Makefile examples/src/Makefile doc/Makefile wrappers/Makefile wrappers/python/Makefile wrappers/lua/Makefile)
  135. AC_OUTPUT