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.

232 lines
7.2KB

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