jack1 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
6.8KB

  1. dnl Process this file with autoconf to produce a configure script.
  2. AC_INIT(jackd/jackd.c)
  3. AC_CONFIG_AUX_DIR(.)
  4. dnl ---
  5. dnl HOWTO: updating the JACK version number
  6. dnl
  7. dnl major version = ask on jackit-devel :)
  8. dnl minor version = incremented when any of the public or internal
  9. dnl interfaces are changed
  10. dnl micro version = incremented when implementation-only
  11. dnl changes are made
  12. dnl ---
  13. JACK_MAJOR_VERSION=0
  14. JACK_MINOR_VERSION=40
  15. JACK_MICRO_VERSION=0
  16. dnl ---
  17. dnl HOWTO: updating the libjack interface version
  18. dnl
  19. dnl current = incremented whenever the public libjack API is changed
  20. dnl revision = incremented when the libjack implementation is changed
  21. dnl age = current libjack is both source and binary compatible with
  22. dnl libjack interfaces current,current-1,...,current-age
  23. dnl
  24. dnl Note! see libtool documentation for detailed documentation
  25. dnl ---
  26. JACK_API_CURRENT=0
  27. JACK_API_REVISION=4
  28. JACK_API_AGE=0
  29. AC_SUBST(JACK_MAJOR_VERSION)
  30. AC_SUBST(JACK_MINOR_VERSION)
  31. AC_SUBST(JACK_MICRO_VERSION)
  32. AC_SUBST(JACK_API_MAJOR_VERSION)
  33. AC_SUBST(JACK_API_MINOR_VERSION)
  34. AC_SUBST(JACK_API_MICRO_VERSION)
  35. JACK_SO_VERSION=${JACK_API_CURRENT}:${JACK_API_REVISION}:${JACK_API_AGE}
  36. JACK_VERSION=$JACK_MAJOR_VERSION.$JACK_MINOR_VERSION.${JACK_MICRO_VERSION}${BETA}
  37. JACK_RELEASE=$JACK_MAJOR_VERSION-$JACK_MINOR_VERSION-${JACK_MICRO_VERSION}${BETA}
  38. AC_SUBST(JACK_SO_VERSION)
  39. AC_SUBST(JACK_VERSION)
  40. AC_SUBST(JACK_RELEASE)
  41. AM_INIT_AUTOMAKE(jack-audio-connection-kit,${JACK_VERSION})
  42. AM_MAINTAINER_MODE
  43. AM_CONFIG_HEADER(config.h)
  44. AC_PROG_CC
  45. AC_PROG_CXX
  46. AC_PROG_LD
  47. AM_PROG_LIBTOOL
  48. AC_C_BIGENDIAN
  49. AC_CHECK_HEADERS(string.h strings.h)
  50. AC_CHECK_FUNC(getopt_long, , AC_MSG_ERROR([GNU getopt is required to build jack]))
  51. AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent))
  52. AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
  53. AC_CHECK_FUNC(connect, , AC_CHECK_LIB(inet, connect))
  54. AC_CHECK_FUNCS(on_exit atexit)
  55. JACK_CORE_CFLAGS='-I$(top_srcdir) -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall'
  56. JACK_CFLAGS="$JACK_CORE_CFLAGS -g"
  57. JACK_OPT_CFLAGS="$JACK_CORE_CFLAGS -O6 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops -fmove-all-movables"
  58. AC_ARG_ENABLE(optimize,
  59. [ --enable-optimize ask the compiler for its best optimizations],
  60. [ if test "x$enable_optimize" != "xno" ; then JACK_CFLAGS="$JACK_OPT_CFLAGS" ; fi ])
  61. AC_SUBST(JACK_CFLAGS)
  62. AC_ARG_ENABLE(debug,
  63. [ --enable-debug enable debugging messages in jackd and libjack],
  64. [ if test "x$enable_debug" != "xno" ; then
  65. AC_DEFINE(DEBUG_ENABLED,,[Enable debugging messages])
  66. fi
  67. ]
  68. )
  69. USE_CAPABILITIES=false
  70. AC_ARG_ENABLE(capabilities,
  71. [ --enable-capabilities use libcap to gain realtime scheduling priviledges],
  72. [ if test "x$enable_capabilities" != "xno" ; then
  73. AC_CHECK_LIB(cap, capgetp,
  74. [AC_CHECK_HEADER(sys/capability.h,
  75. [HAVE_CAPABILITIES=true],
  76. [AC_MSG_WARN([*** no kernel support for capabilities])
  77. HAVE_CAPABILITIES=false]
  78. )],
  79. [AC_MSG_WARN([*** no libcap present])
  80. HAVE_CAPABILITIES=false]
  81. )
  82. if test "x$HAVE_CAPABILITIES" = "xtrue"; then
  83. AC_CHECK_PROG(HAVE_CAPABILITIES, md5sum, true, false)
  84. fi
  85. if test "x$HAVE_CAPABILITIES" = "xfalse"; then
  86. AC_MSG_WARN([*** required program md5sum not found])
  87. fi
  88. if test "x$HAVE_CAPABILITIES" = "xfalse"; then
  89. AC_MSG_ERROR([*** Capabilities support not present. Run configure again without --enable-capabilities.])
  90. fi
  91. USE_CAPABILITIES=true
  92. AC_DEFINE(USE_CAPABILITIES,,[Enable POSIX 1.e capabilities support])
  93. fi
  94. ]
  95. )
  96. STRIPPED_JACKD=false
  97. AC_ARG_ENABLE(stripped-jackd,
  98. [ --enable-stripped-jackd strip jack before computing its md5 sum ],
  99. [ if test "x$USE_CAPABILITIES" != "xtrue" ; then
  100. AC_MSG_WARN([*** capabilities not enabled, stripped jackd has no effect])
  101. elif test "x$enable_stripped_jackd" != "xno"; then
  102. STRIPPED_JACKD=true
  103. fi
  104. ]
  105. )
  106. # plugins go in the addon dir.
  107. AS_AC_EXPAND(ADDON_DIR,${libdir}/jack)
  108. AC_SUBST(ADDON_DIR)
  109. AC_DEFINE_UNQUOTED(ADDON_DIR,"$ADDON_DIR",[Directory for plugins])
  110. AC_ARG_WITH(html-dir,
  111. [ --with-html-dir=PATH where to install the html documentation])
  112. if test "x$with_html_dir" = "x" ; then
  113. HTML_DIR='${pkgdatadir}'
  114. else
  115. HTML_DIR=$with_html_dir
  116. fi
  117. AC_SUBST(HTML_DIR)
  118. # jack depends on alsa 0.9. some example apps depend on libsndfile and fltk.
  119. AC_CHECK_LIB(asound,snd_pcm_drop,
  120. [
  121. HAVE_ALSA="true"
  122. ALSA_LIBS=-lasound
  123. ],
  124. [
  125. HAVE_ALSA="false"
  126. AC_MSG_WARN([ALSA 0.9 support not found])
  127. ],
  128. [-lm]
  129. )
  130. AC_SUBST(ALSA_LIBS)
  131. dnl replace me with a proper test
  132. HAVE_SOLARIS="false"
  133. if test "x$HAVE_ALSA" != "xtrue"; then
  134. if test "x$HAVE_SOLARIS" != "xtrue"; then
  135. AC_MSG_ERROR([*** Neither Solaris nor ALSA audio support was found, aborting...])
  136. fi
  137. fi
  138. AC_LANG_SAVE
  139. AC_LANG_CPLUSPLUS
  140. AC_CHECK_LIB(fltk,main,
  141. [AC_CHECK_HEADER(FL/Fl.H,
  142. [HAVE_FLTK=true],
  143. [HAVE_FLTK=false]
  144. )],
  145. [HAVE_FLTK=false],
  146. [-L/usr/X11R6/lib -lX11 -lXext]
  147. )
  148. AC_LANG_RESTORE
  149. if test $HAVE_FLTK = "false"; then
  150. AC_MSG_WARN([*** no fltk found, the fltk example client will not be built])
  151. fi
  152. HAVE_SNDFILE=false
  153. PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0,[HAVE_SNDFILE=true], [true])
  154. if test x$HAVE_SNDFILE = xfalse; then
  155. AC_MSG_WARN([*** the jackrec example client will not be built])
  156. fi
  157. # you need doxygen to make dist.
  158. AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false)
  159. if test $HAVE_DOXYGEN = "false"; then
  160. AC_MSG_WARN([*** doxygen not found, docs will not be built])
  161. fi
  162. AM_CONDITIONAL(HAVE_FLTK, $HAVE_FLTK)
  163. AM_CONDITIONAL(HAVE_SNDFILE, $HAVE_SNDFILE)
  164. AM_CONDITIONAL(HAVE_DOXYGEN, $HAVE_DOXYGEN)
  165. AM_CONDITIONAL(USE_CAPABILITIES, $USE_CAPABILITIES)
  166. AM_CONDITIONAL(STRIPPED_JACKD, $STRIPPED_JACKD)
  167. AM_CONDITIONAL(HAVE_ALSA, $HAVE_ALSA)
  168. AM_CONDITIONAL(HAVE_SOLARIS, $HAVE_SOLARIS)
  169. AC_OUTPUT(
  170. Makefile
  171. jack.pc
  172. jack.spec
  173. jack/Makefile
  174. jackd/Makefile
  175. libjack/Makefile
  176. drivers/Makefile
  177. drivers/alsa/Makefile
  178. drivers/solaris/Makefile
  179. example-clients/Makefile
  180. doc/Makefile
  181. doc/reference.doxygen
  182. )