configure.ac 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. # this file with autoconf to produce a configure script.
  2. # Sections
  3. # Version numbers
  4. # Setup
  5. # Dependencies
  6. # Output
  7. ### Version numbers
  8. # Release Version
  9. m4_define([project_major_version], [0])
  10. m4_define([project_minor_version], [1])
  11. m4_define([project_micro_version], [0])
  12. m4_define([project_nano_version], [0])
  13. # LT_VERSION
  14. # If library source has changed since last release, increment revision
  15. # If public symbols have been added, removed or changed since last release,
  16. # increment current and set revision to 0
  17. # If public symbols have been added since last release, increment age
  18. # If public symbols have been removed since last release, set age to 0
  19. m4_define([project_lt_current], [1])
  20. m4_define([project_lt_revision], [0])
  21. m4_define([project_lt_age], [0])
  22. # Combine numbers to various version variables (different uses)
  23. # Display the nano_version only if it's not '0'
  24. m4_define([project_base_version],
  25. project_major_version.project_minor_version.project_micro_version)
  26. m4_define([project_full_version],
  27. [m4_if(project_nano_version, [0],
  28. project_base_version, project_base_version.project_nano_version)])
  29. # You should set project_released to one in order to mark this as a released version
  30. # and to avoid date on version number
  31. m4_define(project_released, [0])
  32. m4_define([project_maybe_datestamp],
  33. m4_if(project_released, [1],
  34. [], [m4_esyscmd([date +.%Y%m%d | tr -d '\n\r'])]))
  35. m4_define([project_version], project_full_version[]project_maybe_datestamp)
  36. m4_define([project_major_minor_version], project_major_version.project_minor_version)
  37. m4_define([project_module_version], project_lt_current)
  38. ### Setup
  39. # Initialise autoconf with project details, version
  40. AC_INIT([libgtkflow], project_version,
  41. [], [libgtkflow],
  42. [])
  43. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
  44. AC_PREREQ([2.65])
  45. AC_COPYRIGHT([Copyright (C) 2015 Daniel Brendle, (C) 2015 Daniel Espinosa])
  46. # Configure various files and settings for autoconf/automake
  47. AC_CONFIG_MACRO_DIR([m4])
  48. AC_CONFIG_SRCDIR([Makefile.am])
  49. AC_CONFIG_HEADERS([config.h])
  50. AC_CONFIG_SRCDIR([configure.ac])
  51. AM_INIT_AUTOMAKE([1.11 dist-xz no-define
  52. no-dist-gzip tar-ustar -Wno-portability])
  53. AM_MAINTAINER_MODE([enable])
  54. AC_PROG_CC
  55. AM_PROG_CC_C_O
  56. # Initialise libtools (handles library creation) with stuff from above
  57. LT_INIT(win32-dll)
  58. PKG_PROG_PKG_CONFIG([0.21])
  59. GLIB_GSETTINGS
  60. AC_SUBST([CFLAGS])
  61. AC_SUBST([CPPFLAGS])
  62. AC_SUBST([LDFLAGS])
  63. LT_CURRENT=project_lt_current
  64. LT_REVISION=project_lt_revision
  65. LT_AGE=project_lt_age
  66. AC_SUBST([LT_CURRENT])
  67. AC_SUBST([LT_REVISION])
  68. AC_SUBST([LT_AGE])
  69. PROJECT_MAJOR_MINOR_VERSION=project_major_minor_version
  70. AC_SUBST([PROJECT_MAJOR_MINOR_VERSION])
  71. # This is used to identify a set of API compatible beatween versions
  72. # - If new versions are compatible with the actual one, just leave this untouched
  73. # - If new version breaks API change it in order to allow paralled installations
  74. # with old versions. Change name of pc files to use a new API too.
  75. API_VERSION=0.2
  76. AC_SUBST([API_VERSION])
  77. LIBGTKFLOW_VERSION=project_base_version
  78. AC_SUBST([LIBGTKFLOW_VERSION])
  79. IT_PROG_INTLTOOL([0.35.0])
  80. GETTEXT_PACKAGE=libgtkflow
  81. AC_SUBST(GETTEXT_PACKAGE)
  82. AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],
  83. [The domain to use with gettext])
  84. AM_GLIB_GNU_GETTEXT
  85. GXML_LOCALEDIR=[${datadir}/locale]
  86. AC_SUBST(GXML_LOCALEDIR)
  87. ### Dependencies
  88. # TODO: what do we do about libvala's versioning? set it back to -0.18 and see what happens when we upgraded from Fedora 18 to 19
  89. GLIB_REQUIRED=2.32.0
  90. VALA_REQUIRED=0.26.0
  91. LIBVALA_REQUIRED=0.26
  92. VALADOC_REQUIRED=0.3.1
  93. # Check deps
  94. PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
  95. PKG_CHECK_MODULES(GOBJECT, gobject-2.0 >= $GLIB_REQUIRED)
  96. PKG_CHECK_MODULES(GTK, gtk+-3.0 > 3.14.5)
  97. # Check for vala
  98. VALAC_CHECK
  99. # Check for GObject Introspection
  100. GOBJECT_INTROSPECTION_CHECK([1.32.0])
  101. # Documentation with Valadoc
  102. AC_ARG_ENABLE([docs],
  103. AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
  104. [enable_docs=$enableval], [enable_docs=no])
  105. AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
  106. have_valadoc=no
  107. if test x$enable_docs = xyes; then
  108. # make sure the library is new enough and the program exists
  109. AC_PATH_PROG([VALADOC], [valadoc], [no])
  110. if test "x$VALADOC" = "xno";
  111. then
  112. AC_MSG_RESULT([valadoc documentation not build because not found])
  113. else
  114. VAPIDIR=`$PKG_CONFIG --variable=vapidir libvala-$LIBVALA_REQUIRED`
  115. have_valadoc="yes"
  116. AC_SUBST(VALADOC)
  117. fi
  118. fi
  119. AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
  120. AC_ARG_ENABLE([devhelp-docs],
  121. AS_HELP_STRING([--enable-devhelp-docs],[Enable DevHelp documentation generation]),
  122. [enable_devhelp_docs=$enableval], [enable_devhelp_docs=no])
  123. AC_ARG_ENABLE([gtk-docs],
  124. AS_HELP_STRING([--enable-gtk-docs],[Enable gtk-doc documentation generation]),
  125. [enable_gtk_docs=$enableval], [enable_gtk_docs=no])
  126. AC_ARG_ENABLE([gir-docs],
  127. AS_HELP_STRING([--enable-gir-docs],[Enable documented GIR generation]),
  128. [enable_gir_docs=$enableval], [enable_gir_docs=no])
  129. have_gtkdoc=no
  130. if test x$enable_gtk_docs = xyes; then
  131. if test x$have_valadoc = xyes; then
  132. PKG_CHECK_MODULES([GTKDOC], gtk-doc)
  133. have_gtkdoc=yes
  134. else
  135. AC_MSG_ERROR([valadoc is required, to generate gtk-doc documentation. Use --enable-valadoc])
  136. fi
  137. fi
  138. if test x$enable_devhelp_docs = xyes; then
  139. if test x$have_valadoc = xno -o x$have_gtkdoc = xno; then
  140. AC_MSG_ERROR([valadoc and gtk-doc is required, to generate devhelp documentation. Use --enable-valadoc and --enable-gtk-doc])
  141. fi
  142. fi
  143. if test x$enable_gir_docs = xyes; then
  144. if test x$have_valadoc = xno; then
  145. AC_MSG_ERROR([valadoc is required, to generate GIR documentation. Use --enable-valadoc and --enable-gtk-doc])
  146. fi
  147. fi
  148. dnl Find yelp-build program
  149. enable_mallard_doc="no"
  150. girdocs=no
  151. devhelpdocs=no
  152. gtkdocs=no
  153. if test x$enable_docs = xyes; then
  154. AC_PATH_PROG(YELP_BUILD, [yelp-build], [no])
  155. if test "x$YELP_BUILD" = "xno";
  156. then
  157. AC_MSG_RESULT([Mallard documentation not build because yelp-build has not been found])
  158. else
  159. YELP_HELP_INIT
  160. AC_SUBST(YELP_BUILD)
  161. enable_mallard_doc="yes"
  162. fi
  163. if test x$enable_devhelp_docs = xyes; then
  164. devhelpdocs=yes
  165. fi
  166. if test x$enable_gtk_docs = xyes; then
  167. gtkdocs=yes
  168. fi
  169. if test x$enable_gir_docs = xyes; then
  170. if test x$found_introspection = xyes; then
  171. girdocs=yes
  172. else
  173. girdocs="no, use --enable-introspection"
  174. fi
  175. fi
  176. fi
  177. AM_CONDITIONAL(ENABLE_MALLARD_DOC, [test "$enable_mallard_doc" = "yes"])
  178. AM_CONDITIONAL([ENABLE_GIR_DOCS], [test "x$girdocs" = "xyes"])
  179. AM_CONDITIONAL([ENABLE_DEVHELP_DOCS], [test "x$devhelpdocs" = "xyes"])
  180. AM_CONDITIONAL([ENABLE_GTK_DOCS], [test "x$gtkdocs" = "xyes"])
  181. debug=no
  182. AC_ARG_ENABLE(debug,
  183. AS_HELP_STRING([--enable-debug], [Enable Debug options [default=no]]),
  184. [debug=$enableval], [debug="no"])
  185. AM_CONDITIONAL(DEBUG, [test $debug = yes])
  186. dnl Check Cross Compile
  187. dnl ******************************
  188. dnl Check for Operating System
  189. dnl ******************************
  190. dnl linklibext is the shared link library extension, which varies by platform
  191. #EXPORT_SYM_REGEX='-export-symbols-regex "^(gxml_|fnYM49765777344607__gxml).*"'
  192. #AC_MSG_CHECKING([for platform])
  193. #platform_win32=no
  194. #linklibext=".so"
  195. case "$host" in
  196. *-mingw*)
  197. # AC_MSG_RESULT([Win32 - MinGW])
  198. platform_win32=yes
  199. # AC_DEFINE([USING_MINGW],[],[Using MinGW])
  200. # NO_UNDEFINED='-no-undefined'
  201. # LIBTOOL_EXPORT_OPTIONS=
  202. # linklibext=".dll"
  203. # AC_CHECK_TOOL(WINDRES, windres, windres)
  204. # AC_SUBST(WINDRES)
  205. # AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
  206. # AC_SUBST(DLLTOOL)
  207. ;;
  208. *)
  209. # AC_MSG_RESULT([Unix])
  210. # NO_UNDEFINED=''
  211. # LIBTOOL_EXPORT_OPTIONS=$EXPORT_SYM_REGEX
  212. # ;;
  213. esac
  214. AM_CONDITIONAL(PLATFORM_WIN32, [test x$platform_win32 = xyes])
  215. #AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
  216. #AC_SUBST(NO_UNDEFINED)
  217. ### Autoconf generating Makefiles
  218. AC_CONFIG_FILES([
  219. Makefile
  220. libgflow/Makefile
  221. libgflow/gflow-0.2.pc
  222. libgflow/namespace-info.vala
  223. libgtkflow/Makefile
  224. libgtkflow/gtkflow-0.2.pc
  225. libgtkflow/namespace-info.vala
  226. docs/Makefile
  227. docs/valadoc/Makefile
  228. docs/valadoc/gtk-doc/Makefile
  229. docs/valadoc/devhelp/Makefile
  230. po/Makefile.in
  231. test/Makefile
  232. test/tests-config.vala
  233. examples/Makefile
  234. ])
  235. AC_OUTPUT
  236. # Print configuration summary
  237. echo ""
  238. echo " Configuration summary for libgtkflow-$LIBGTKFLOW_VERSION"
  239. echo " Installation prefix: $prefix"
  240. echo " GObject Introspection: $found_introspection"
  241. echo " Documentation: ${enable_docs}"
  242. echo " DevHelp Doc: `if test x${devhelpdocs} = xyes; then echo yes; else echo no; fi`"
  243. echo " Gtk-Doc: `if test x${gtkdocs} = xyes; then echo yes; else echo no; fi`"
  244. echo " GIR Documented: $girdocs"
  245. echo " Debug: $debug"
  246. echo " Platform: $host"
  247. echo ""