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.

821 lines
24KB

  1. dnl Process this file with autoconf to produce a configure script.
  2. dnl $Id$
  3. AC_INIT(jackd/jackd.c)
  4. AC_CONFIG_AUX_DIR(config)
  5. AC_CANONICAL_TARGET
  6. dnl ---
  7. dnl HOWTO: updating the JACK version number
  8. dnl
  9. dnl major version = ask on jackit-devel :)
  10. dnl minor version = incremented when any of the public or internal
  11. dnl interfaces are changed
  12. dnl micro version = incremented when implementation-only
  13. dnl changes are made
  14. dnl ---
  15. JACK_MAJOR_VERSION=0
  16. JACK_MINOR_VERSION=114
  17. JACK_MICRO_VERSION=3
  18. dnl ---
  19. dnl HOWTO: updating the jack protocol version
  20. dnl
  21. dnl increment the protocol version whenever a change is
  22. dnl made to the way libjack communicates with jackd
  23. dnl that would break applications linked with an older
  24. dnl version of libjack.
  25. dnl ---
  26. JACK_PROTOCOL_VERSION=23
  27. dnl ---
  28. dnl HOWTO: updating the libjack interface version
  29. dnl
  30. dnl current = incremented whenever the public libjack API is changed
  31. dnl revision = incremented when the libjack implementation is changed
  32. dnl age = current libjack is both source and binary compatible with
  33. dnl libjack interfaces current,current-1,...,current-age
  34. dnl
  35. dnl Note! see libtool documentation for detailed documentation
  36. dnl
  37. dnl Note Also! until we reach CURRENT>=1, the rules are somewhat
  38. dnl slacker than this, and closer to those for the JACK version
  39. dnl number.
  40. dnl ---
  41. JACK_API_CURRENT=0
  42. JACK_API_REVISION=28
  43. JACK_API_AGE=0
  44. AC_SUBST(JACK_MAJOR_VERSION)
  45. AC_SUBST(JACK_MINOR_VERSION)
  46. AC_SUBST(JACK_MICRO_VERSION)
  47. AC_SUBST(JACK_PROTOCOL_VERSION)
  48. AC_DEFINE_UNQUOTED(PROTOCOL_VERSION, "$JACK_PROTOCOL_VERSION", [Protocol version])
  49. AC_SUBST(JACK_API_MAJOR_VERSION)
  50. AC_SUBST(JACK_API_MINOR_VERSION)
  51. AC_SUBST(JACK_API_MICRO_VERSION)
  52. JACK_SO_VERSION=${JACK_API_CURRENT}:${JACK_API_REVISION}:${JACK_API_AGE}
  53. JACK_VERSION=$JACK_MAJOR_VERSION.$JACK_MINOR_VERSION.${JACK_MICRO_VERSION}${BETA}
  54. JACK_RELEASE=$JACK_MAJOR_VERSION-$JACK_MINOR_VERSION-${JACK_MICRO_VERSION}${BETA}
  55. AC_SUBST(JACK_SO_VERSION)
  56. AC_SUBST(JACK_VERSION)
  57. AC_SUBST(JACK_RELEASE)
  58. AM_INIT_AUTOMAKE(jack-audio-connection-kit,${JACK_VERSION})
  59. AM_MAINTAINER_MODE
  60. AM_CONFIG_HEADER(config.h)
  61. AC_ENABLE_STATIC(no)
  62. AC_ENABLE_SHARED(yes)
  63. AC_PROG_CC
  64. AC_PROG_CXX
  65. AC_PROG_LD
  66. AM_PROG_LIBTOOL
  67. AC_PROG_LN_S
  68. AC_C_BIGENDIAN
  69. AC_MSG_CHECKING([platform dependencies])
  70. HOST_DEFAULT_TMP_DIR=/dev/shm
  71. case "${host_os}" in
  72. freebsd*)
  73. # current FreeBSD header files conflict with the OSS driver's
  74. # barrier code, this may be fixed in 5.3, stay tuned.
  75. USE_BARRIER="no"
  76. ;;
  77. openbsd*)
  78. # pthread_barrier* not implemented
  79. USE_BARRIER="no"
  80. # need small realtime stack
  81. JACK_THREAD_STACK_TOUCH=10000
  82. ;;
  83. darwin*)
  84. JACK_THREAD_STACK_TOUCH=10000 # need small realtime stack
  85. JACK_CPP_VARARGS_BROKEN=1
  86. JACK_DO_NOT_MLOCK=1
  87. JACK_USE_MACH_THREADS=1
  88. OS_LDFLAGS="-framework CoreAudio -framework CoreServices -framework AudioUnit"
  89. TRY_POSIX_SHM=yes # POSIX shm works better
  90. HOST_DEFAULT_TMP_DIR=/tmp
  91. ;;
  92. esac
  93. AC_SUBST(OS_LDFLAGS)
  94. #
  95. # We need to establish suitable defaults for a 64-bit OS
  96. libnn=lib
  97. case "${host_os}" in
  98. linux*)
  99. case "${host_cpu}" in
  100. x86_64|mips64|ppc64|sparc64|s390x)
  101. libnn=lib64
  102. ;;
  103. esac
  104. ;;
  105. solaris*)
  106. ## libnn=lib/sparcv9 ## on 64-bit only, but that's compiler-specific
  107. ;;
  108. esac
  109. ## take care not to override the command-line setting
  110. if test "${libdir}" = '${exec_prefix}/lib'; then
  111. libdir='${exec_prefix}/'${libnn}
  112. fi
  113. # system-dependent config.h values
  114. test "x$JACK_THREAD_STACK_TOUCH" = "x" && JACK_THREAD_STACK_TOUCH=500000
  115. AC_DEFINE_UNQUOTED(JACK_THREAD_STACK_TOUCH,
  116. [$JACK_THREAD_STACK_TOUCH],
  117. [Guaranteed size of realtime stack])
  118. if test "x$JACK_CPP_VARARGS_BROKEN" != "x"; then
  119. AC_DEFINE_UNQUOTED(JACK_CPP_VARARGS_BROKEN,
  120. [$JACK_CPP_VARARGS_BROKEN],
  121. [CPP has a broken varargs implementation])
  122. fi
  123. if test "x$JACK_USE_MACH_THREADS" != "x"; then
  124. AC_DEFINE_UNQUOTED(JACK_USE_MACH_THREADS,
  125. [$JACK_USE_MACH_THREADS],
  126. [Use MACH threads where possible])
  127. fi
  128. # headers
  129. AC_CHECK_HEADERS(string.h strings.h alloca.h)
  130. AC_CHECK_HEADERS(getopt.h, [], [
  131. for d in /Developer/SDKs/MacOSX10.3.0.sdk/usr/include/ ; do
  132. AC_CHECK_HEADERS($d/getopt.h, [], [CFLAGS="$CFLAGS -I$d"])
  133. done])
  134. AC_CHECK_HEADER(/usr/include/nptl/pthread.h,
  135. [CFLAGS="$CFLAGS -I/usr/include/nptl"])
  136. # functions and libraries
  137. AC_CHECK_FUNC(getopt_long, [],
  138. AC_MSG_ERROR([*** JACK requires GNU getopt_long]))
  139. AC_CHECK_FUNC(gethostent, [], AC_CHECK_LIB(nsl, gethostent))
  140. AC_CHECK_FUNC(setsockopt, [], AC_CHECK_LIB(socket, setsockopt))
  141. AC_CHECK_FUNC(connect, [], AC_CHECK_LIB(inet, connect))
  142. AC_CHECK_FUNC(dlopen, [],
  143. AC_CHECK_LIB(dl, dlopen, [],
  144. AC_MSG_ERROR([*** JACK requires dynamic load support])))
  145. AC_CHECK_FUNC(pthread_create, [],
  146. AC_CHECK_LIB(pthread, pthread_create, [],
  147. AC_MSG_ERROR([*** JACK requires POSIX threads support])))
  148. AC_CHECK_FUNCS(on_exit atexit)
  149. AC_CHECK_FUNCS(posix_memalign)
  150. AC_CHECK_LIB(m, sin)
  151. AC_CHECK_FUNC(clock_gettime,
  152. [
  153. AC_DEFINE(HAVE_CLOCK_GETTIME,0,"Whether or not clock_gettime can be found in system libraries")
  154. ],
  155. #
  156. # if not found, check librt specifically
  157. #
  158. AC_CHECK_LIB(rt, clock_gettime,
  159. [
  160. AC_DEFINE(HAVE_CLOCK_GETTIME,1,"Whether or not clock_gettime can be found in system libraries")
  161. OS_LDFLAGS="$OS_LDFLAGS -lrt"
  162. ])
  163. )
  164. # should we use mlockall() on this platform?
  165. if test "x$JACK_DO_NOT_MLOCK" = "x"; then
  166. AC_CHECK_HEADER(sys/mman.h,
  167. [AC_CHECK_FUNC(mlockall,
  168. [AC_DEFINE(USE_MLOCK, 1, [Use POSIX memory locking])])])
  169. fi
  170. # look for system support for POSIX shm API
  171. AC_ARG_ENABLE(posix-shm,
  172. AC_HELP_STRING([--enable-posix-shm], [use POSIX shm API]),
  173. [TRY_POSIX_SHM=$enableval])
  174. if test "x$TRY_POSIX_SHM" = "xyes"
  175. then
  176. AC_CHECK_FUNC(shm_open, [],
  177. AC_CHECK_LIB(rt, shm_open, [], [TRY_POSIX_SHM=no]))
  178. fi
  179. AC_MSG_CHECKING([shared memory support])
  180. if test "x$TRY_POSIX_SHM" = "xyes"
  181. then
  182. AC_MSG_RESULT([POSIX shm_open().])
  183. AC_DEFINE(USE_POSIX_SHM,1,[Use POSIX shared memory interface])
  184. JACK_SHM_TYPE='"POSIX"'
  185. USE_POSIX_SHM="true"
  186. else
  187. AC_MSG_RESULT([System V shmget().])
  188. JACK_SHM_TYPE='"System V"'
  189. USE_POSIX_SHM="false"
  190. fi
  191. AC_DEFINE_UNQUOTED(JACK_SHM_TYPE, [$JACK_SHM_TYPE],
  192. [JACK shared memory type])
  193. AM_CONDITIONAL(USE_POSIX_SHM, $USE_POSIX_SHM)
  194. JACK_CORE_CFLAGS="-I\$(top_srcdir)/config -I\$(top_srcdir) \
  195. -I\$(top_srcdir) -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall"
  196. JACK_OPT_CFLAGS="$JACK_CORE_CFLAGS -O3 \
  197. -ffast-math -funroll-loops -fprefetch-loop-arrays"
  198. JACK_CFLAGS="$JACK_CORE_CFLAGS $CFLAGS"
  199. AC_ARG_WITH(cpu-target,
  200. [ --with-cpu-target=cpu-type explicit, overriding argument for gcc -march= flag])
  201. dnl
  202. dnl figure out how best to optimize
  203. dnl JOQ: this should be done via config/configure.hosts
  204. dnl
  205. dnl ----------------------------------------------------------------------
  206. if test "$target_cpu" = "powerpc64" ; then
  207. AC_ARG_ENABLE(cell,
  208. [ --enable-cell enable Cell BE support (default=no)],,
  209. [ enable_cell=no ])
  210. if test "x$enable_cell" = xyes; then
  211. AC_DEFINE(ENABLE_CELLBE, 1, [Define to 1 if you need support for the Cell BE.])
  212. fi
  213. fi
  214. if test "$target_cpu" = "powerpc" -o "$target_cpu" = "powerpc64" ; then
  215. AC_DEFINE(POWERPC, 1, "Are we running a ppc CPU?")
  216. ############################
  217. # Check for Altivec assembly
  218. ############################
  219. AC_ARG_ENABLE(altivec,
  220. [ --enable-altivec enable Altivec support (default=auto)],,
  221. [ enable_altivec=yes ])
  222. if test "x$enable_altivec" = xyes; then
  223. AC_MSG_CHECKING(whether we can compile Altivec code)
  224. AC_COMPILE_IFELSE([asm ("vand %v0, %v0, %v0");],
  225. AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if Altivec assembly is available.])
  226. AC_DEFINE(HAVE_ALTIVEC_LINUX, 1, "Is there Altivec Support ?")
  227. ALTIVEC_OPT_FLAGS="-maltivec -mabi=altivec"
  228. AC_MSG_RESULT(yes)
  229. ,
  230. enable_altivec=no
  231. AC_MSG_RESULT(no)
  232. AC_MSG_WARN([The assembler does not support the Altivec command set.])
  233. )
  234. fi
  235. dnl -mcpu=7450 does not reliably work with gcc 3.*
  236. JACK_OPT_CFLAGS="-D_REENTRANT -O2 -mcpu=7400 $ALTIVEC_OPT_FLAGS -mhard-float -mpowerpc-gfxopt"
  237. if test "$target_cpu" = "powerpc64"; then
  238. JACK_OPT_CFLAGS="-D_REENTRANT -O2 -mcpu=powerpc64 $ALTIVEC_OPT_FLAGS -mhard-float"
  239. fi
  240. elif echo $target_cpu | egrep '(i.86|x86_64)' >/dev/null; then
  241. dnl Check for MMX/SSE assembly
  242. if test -r /proc/cpuinfo ; then
  243. procflags=`grep '^flags' /proc/cpuinfo`
  244. if echo $procflags | grep -s mmx ; then
  245. cpu_supports_mmx=yes
  246. fi
  247. if echo $procflags | grep -s sse ; then
  248. cpu_supports_sse=yes
  249. fi
  250. fi
  251. AC_ARG_ENABLE(optimization-by-compiler,
  252. [ --enable-optimization-by-compiler use compiler (NOT processor) capabilities to determine optimization flags],,
  253. optimization_by_compiler=no
  254. )
  255. AC_ARG_ENABLE(optimization-by-cpu,
  256. [ --enable-optimization-by-cpu use processor capabilities to determine optimization flags],,
  257. optimization_by_cpu=yes
  258. )
  259. AC_ARG_ENABLE(mmx,
  260. [ --enable-mmx enable MMX support (default=auto)],,
  261. enable_mmx=yes)
  262. AC_ARG_ENABLE(sse,
  263. [ --enable-sse enable SSE support (default=auto)],,
  264. enable_sse=$enable_mmx)
  265. if test "x$enable_mmx" = xyes; then
  266. AC_MSG_CHECKING(whether we can compile MMX code)
  267. AC_COMPILE_IFELSE([asm ("movq 0, %mm0");],
  268. AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
  269. AC_MSG_RESULT(yes)
  270. if test x$optimization_by_cpu = xyes ; then
  271. if test x$cpu_supports_mmx = xyes ; then
  272. MMX_FLAGS="-mmmx"
  273. fi
  274. else
  275. MMX_FLAGS="-mmmx"
  276. fi
  277. AC_MSG_RESULT(yes)
  278. ,
  279. enable_mmx=no
  280. AC_MSG_RESULT(no)
  281. AC_MSG_WARN([The assembler does not support the MMX command set.])
  282. )
  283. fi
  284. if test "x$enable_sse" = xyes; then
  285. AC_MSG_CHECKING(whether we can compile SSE code)
  286. AC_COMPILE_IFELSE([asm ("movntps %xmm0, 0");],
  287. AC_DEFINE(USE_SSE, 1,
  288. [Define to 1 if SSE assembly is available.])
  289. if test x$optimization_by_cpu = xyes ; then
  290. if test x$cpu_supports_sse = xyes ; then
  291. SSE_FLAGS="-msse -mfpmath=sse"
  292. fi
  293. else
  294. SSE_FLAGS="-msse -mfpmath=sse"
  295. fi
  296. AC_MSG_RESULT(yes)
  297. ,
  298. enable_sse=no
  299. AC_MSG_RESULT(no)
  300. AC_MSG_WARN(
  301. [The assembler does not support the SSE command set.]
  302. )
  303. )
  304. fi
  305. AC_DEFINE(x86, 1, "Nope it's intel")
  306. COMMON_X86_OPT_FLAGS="-DREENTRANT -O3 -fomit-frame-pointer -ffast-math -funroll-loops"
  307. if test x$with_cpu_target != x ; then
  308. JACK_OPT_CFLAGS="-march=$with_cpu_target"
  309. else
  310. if test "$target_cpu" = "i586"; then
  311. JACK_OPT_CFLAGS="-march=i586 "
  312. elif test "$target_cpu" = "i686"; then
  313. JACK_OPT_CFLAGS="-march=i686"
  314. elif test "$target_cpu" = "x86_64"; then
  315. JACK_OPT_CFLAGS="-march=k8"
  316. else
  317. :
  318. fi
  319. fi
  320. JACK_OPT_CFLAGS="$COMMON_X86_OPT_FLAGS $JACK_OPT_CFLAGS $MMX_FLAGS $SSE_FLAGS"
  321. fi
  322. AC_ARG_ENABLE(dynsimd,
  323. [ --enable-dynsimd enable dynamic SIMD selection (default=no)],,
  324. enable_dynsimd=no)
  325. if test "x$enable_dynsimd" = xyes; then
  326. AC_DEFINE(USE_DYNSIMD, 1, [Define to 1 to use dynamic SIMD selection.])
  327. dnl This needs update once there's more than x86/x86-64 supported
  328. SIMD_CFLAGS="-msse -msse2 -m3dnow"
  329. AC_SUBST(SIMD_CFLAGS)
  330. fi
  331. AC_ARG_ENABLE(optimize,
  332. AC_HELP_STRING([--enable-optimize],
  333. [ask the compiler for its best optimizations]),
  334. [ if test x$enable_optimize != xno ; then
  335. JACK_CFLAGS="$JACK_CORE_CFLAGS $JACK_OPT_CFLAGS"
  336. AC_MSG_WARN([optimization in use.........................])
  337. else
  338. # no optimization, so lets get debugging symbols instead
  339. JACK_OPT_CFLAGS="-g"
  340. AC_MSG_WARN([no optimization.........................])
  341. fi
  342. ]
  343. )
  344. AC_SUBST(JACK_CFLAGS)
  345. dnl
  346. dnl use JACK_CFLAGS for jackd compilation
  347. dnl
  348. CFLAGS=$JACK_CFLAGS
  349. # allow buffer resizing unless --disable-resize specified
  350. buffer_resizing=yes
  351. AC_ARG_ENABLE(resize,
  352. AC_HELP_STRING([--enable-resize], [enable buffer resizing feature]),
  353. [
  354. if test x$enable_resize = xno ; then
  355. buffer_resizing=no
  356. fi
  357. if test x$buffer_resizing != xno; then
  358. AC_DEFINE(DO_BUFFER_RESIZE,,[Enable buffer resizing])
  359. fi
  360. ]
  361. )
  362. AC_ARG_ENABLE(ensure-mlock,
  363. AC_HELP_STRING([--enable-ensure-mlock],
  364. [fail if unable to lock memory]),
  365. [
  366. if test x$enable_ensure_mlock != xno ; then
  367. AC_DEFINE(ENSURE_MLOCK,,[Ensure that memory locking succeeds])
  368. fi
  369. ]
  370. )
  371. AC_ARG_ENABLE(debug,
  372. AC_HELP_STRING([--enable-debug],
  373. [enable debugging messages in jackd and libjack]),
  374. [
  375. if test x$enable_debug != xno ; then
  376. AC_DEFINE(DEBUG_ENABLED,,[Enable debugging messages])
  377. fi
  378. ]
  379. )
  380. AC_ARG_ENABLE(timestamps,
  381. AC_HELP_STRING([--enable-timestamps],
  382. [allow clients to use the JACK timestamp API]),
  383. [
  384. if test x$enable_timestamps != xno ; then
  385. AC_DEFINE(WITH_TIMESTAMPS,,[Enable JACK timestamp API])
  386. fi
  387. ]
  388. )
  389. AC_ARG_ENABLE(preemption-check,
  390. AC_HELP_STRING([--enable-preemption-check],
  391. [check for inappropriate realtime preemption]),
  392. [
  393. if test x$enable_preemption_check != xno ; then
  394. echo checking for realtime preemption bugs
  395. AC_DEFINE(DO_PREEMPTION_CHECKING,,
  396. [check realtime preemption])
  397. fi
  398. ])
  399. USE_CAPABILITIES=false
  400. AC_ARG_ENABLE(capabilities,
  401. [ --enable-capabilities !!! LINUX 2.4 KERNELS ONLY !!! use libcap to gain realtime scheduling priviledges],
  402. [ if test "x$enable_capabilities" != "xno" ; then
  403. AC_CHECK_LIB(cap, capgetp,
  404. [AC_CHECK_HEADER(sys/capability.h,
  405. [HAVE_CAPABILITIES=true],
  406. [AC_MSG_WARN([*** no kernel support for capabilities])
  407. HAVE_CAPABILITIES=false]
  408. )],
  409. [AC_MSG_WARN([*** no libcap present])
  410. HAVE_CAPABILITIES=false]
  411. )
  412. if test "x$HAVE_CAPABILITIES" = "xtrue"; then
  413. AC_CHECK_PROG(HAVE_CAPABILITIES, md5sum, true, false)
  414. fi
  415. if test "x$HAVE_CAPABILITIES" = "xfalse"; then
  416. AC_MSG_WARN([*** required program md5sum not found])
  417. fi
  418. if test "x$HAVE_CAPABILITIES" = "xfalse"; then
  419. AC_MSG_ERROR([*** Capabilities support not present. Run configure again without --enable-capabilities.])
  420. fi
  421. USE_CAPABILITIES=true
  422. AC_DEFINE(USE_CAPABILITIES,,[Enable POSIX 1.e capabilities support])
  423. fi
  424. ]
  425. )
  426. with_oldtrans=yes
  427. AC_ARG_ENABLE(oldtrans,
  428. [ --disable-oldtrans remove old transport interfaces],
  429. [ if test "x$enable_oldtrans" = "xno" ; then
  430. with_oldtrans=no
  431. fi
  432. ]
  433. )
  434. if test "x$with_oldtrans" != "xno" ; then
  435. AC_DEFINE(OLD_TRANSPORT,,[Include old transport interfaces])
  436. fi
  437. STRIPPED_JACKD=false
  438. AC_ARG_ENABLE(stripped-jackd,
  439. [ --enable-stripped-jackd strip jack before computing its md5 sum ],
  440. [ if test "x$USE_CAPABILITIES" != "xtrue" ; then
  441. AC_MSG_WARN([*** capabilities not enabled, stripped jackd has no effect])
  442. elif test "x$enable_stripped_jackd" != "xno"; then
  443. STRIPPED_JACKD=true
  444. fi
  445. ]
  446. )
  447. # plugins go in the addon dir.
  448. ADDON_DIR='${libdir}/jack'
  449. AC_SUBST(ADDON_DIR)
  450. AS_AC_EXPAND(ADDON_DIR_EXPANDED,${libdir}/jack)
  451. AC_DEFINE_UNQUOTED(ADDON_DIR,"$ADDON_DIR_EXPANDED",[Directory for plugins])
  452. AC_ARG_WITH(html-dir,
  453. [ --with-html-dir=PATH where to install the html documentation])
  454. if test "x$with_html_dir" = "x" ; then
  455. HTML_DIR='${pkgdatadir}'
  456. else
  457. HTML_DIR=$with_html_dir
  458. fi
  459. AC_SUBST(HTML_DIR)
  460. # allow specifying default tmpdir
  461. AC_ARG_WITH(default-tmpdir,
  462. [ --with-default-tmpdir=PATH where jackd and clients will put tmp files (/dev/shm)])
  463. if test "x$with_default_tmpdir" = "x" ; then
  464. DEFAULT_TMP_DIR=$HOST_DEFAULT_TMP_DIR
  465. else
  466. DEFAULT_TMP_DIR=$with_default_tmpdir
  467. fi
  468. AC_SUBST(DEFAULT_TMP_DIR)
  469. AC_DEFINE_UNQUOTED(DEFAULT_TMP_DIR,"$DEFAULT_TMP_DIR",[Default tmp directory])
  470. # Check for barrier functions in the pthreads library. The default
  471. # option setting may be OS-dependent, otherwise it's "yes".
  472. test "x$USE_BARRIER" = "x" && USE_BARRIER="yes"
  473. AC_ARG_WITH(barrier,
  474. AC_HELP_STRING([--without-barrier],
  475. [avoid using pthread barrier functions]),
  476. [ USE_BARRIER=$withval ])
  477. if test "x$USE_BARRIER" = "xyes"; then
  478. AC_CHECK_LIB([pthread], [pthread_barrier_init],
  479. AC_DEFINE(USE_BARRIER, 1, [Use pthread barrier functions]))
  480. fi
  481. # some example-clients need libsndfile
  482. HAVE_SNDFILE=false
  483. PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0,[HAVE_SNDFILE=true], [true])
  484. if test x$HAVE_SNDFILE = xfalse; then
  485. AC_MSG_WARN([*** the jackrec example client will not be built])
  486. fi
  487. # NetJack backend and internal client need libsamplerate
  488. HAVE_SAMPLERATE=false
  489. PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.2,[HAVE_SAMPLERATE=true], [true])
  490. if test x$HAVE_SAMPLERATE = xfalse; then
  491. AC_MSG_WARN([*** the NetJack backend and internal client will not be built])
  492. else
  493. CFLAGS="$CFLAGS $SAMPLERATE_CFLAGS"
  494. LIBS="$LIBS $SAMPLERATE_LIBS"
  495. fi
  496. # Note: A bug in pkg-config causes problems if the first occurence of
  497. # PKG_CHECK_MODULES can be disabled. So, if you're going to use
  498. # PKG_CHECK_MODULES inside a --disable-whatever check, you need to
  499. # do it somewhere *below* this comment.
  500. # Check which backend drivers can be built. The last one successfully
  501. # configured becomes the default JACK driver; so the order of
  502. # precedence is: alsa, sun, oss, coreaudio, portaudio, dummy.
  503. JACK_DEFAULT_DRIVER=\"dummy\"
  504. AC_ARG_ENABLE(portaudio, [ --disable-portaudio ignore PortAudio driver ],
  505. TRY_PORTAUDIO=$enableval , TRY_PORTAUDIO=no )
  506. HAVE_PA="false"
  507. if test "x$TRY_PORTAUDIO" = "xyes"
  508. then
  509. # check for portaudio V18
  510. AC_CHECK_LIB(portaudio, Pa_Initialize,
  511. [ AC_CHECK_HEADERS(portaudio.h,
  512. [ HAVE_PA="true"
  513. PA_LIBS=-lportaudio
  514. JACK_DEFAULT_DRIVER=\"portaudio\"
  515. ])
  516. ])
  517. AC_SUBST(PA_LIBS)
  518. fi
  519. AM_CONDITIONAL(HAVE_PA, $HAVE_PA)
  520. AC_ARG_ENABLE(coreaudio, [ --disable-coreaudio ignore CoreAudio driver ],
  521. TRY_COREAUDIO=$enableval , TRY_COREAUDIO=yes )
  522. HAVE_COREAUDIO="false"
  523. if test "x$TRY_COREAUDIO" = "xyes"
  524. then
  525. # check for coreaudio
  526. AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
  527. [ HAVE_COREAUDIO="true"
  528. JACK_DEFAULT_DRIVER=\"coreaudio\"
  529. ])
  530. fi
  531. AM_CONDITIONAL(HAVE_COREAUDIO, $HAVE_COREAUDIO)
  532. AC_ARG_ENABLE(oss, [ --disable-oss ignore OSS driver ],
  533. TRY_OSS=$enableval , TRY_OSS=yes )
  534. HAVE_OSS="false"
  535. if test "x$TRY_OSS" = "xyes"
  536. then
  537. # check for Open Sound System
  538. AC_CHECK_HEADER([sys/soundcard.h],
  539. [HAVE_OSS="true"
  540. JACK_DEFAULT_DRIVER=\"oss\"])
  541. fi
  542. AM_CONDITIONAL(HAVE_OSS, $HAVE_OSS)
  543. AC_ARG_ENABLE(sun, [ --disable-sun ignore Sun driver ],
  544. TRY_SUN=$enableval , TRY_SUN=yes )
  545. HAVE_SUN="false"
  546. if test "x$TRY_SUN" = "xyes"
  547. then
  548. # check for Sun audio API
  549. AC_CHECK_HEADER([sys/audioio.h],
  550. [HAVE_SUN="true"
  551. JACK_DEFAULT_DRIVER=\"sun\"])
  552. fi
  553. AM_CONDITIONAL(HAVE_SUN, $HAVE_SUN)
  554. AC_ARG_ENABLE(freebob, [ --disable-freebob ignore FreeBob driver ],
  555. TRY_FREEBOB=$enableval , TRY_FREEBOB=yes )
  556. HAVE_FREEBOB="false"
  557. if test "x$TRY_FREEBOB" = "xyes"
  558. then
  559. # check for FreeBob libraries
  560. PKG_CHECK_MODULES(LIBFREEBOB, libfreebob >= 1.0.0,
  561. [HAVE_FREEBOB="true"
  562. JACK_DEFAULT_DRIVER=\"freebob\"
  563. ], AC_MSG_RESULT([no]))
  564. AC_SUBST([LIBFREEBOB_CFLAGS])
  565. AC_SUBST([LIBFREEBOB_LIBS])
  566. fi
  567. AM_CONDITIONAL(HAVE_FREEBOB,$HAVE_FREEBOB)
  568. AC_ARG_ENABLE(firewire, [ --disable-firewire ignore FireWire driver (FFADO) ],
  569. TRY_FIREWIRE=$enableval , TRY_FIREWIRE=yes )
  570. HAVE_FIREWIRE="false"
  571. if test "x$TRY_FIREWIRE" = "xyes"
  572. then
  573. # check for FFADO libraries
  574. PKG_CHECK_MODULES(LIBFFADO, libffado >= 1.999.17,
  575. [HAVE_FIREWIRE="true"
  576. JACK_DEFAULT_DRIVER=\"firewire\"
  577. ], AC_MSG_RESULT([no]))
  578. AC_SUBST([LIBFFADO_CFLAGS])
  579. AC_SUBST([LIBFFADO_LIBS])
  580. fi
  581. AM_CONDITIONAL(HAVE_FIREWIRE,$HAVE_FIREWIRE)
  582. AC_ARG_ENABLE(alsa, [ --disable-alsa ignore ALSA driver ],
  583. TRY_ALSA=$enableval , TRY_ALSA=yes )
  584. HAVE_ALSA="false"
  585. if test "x$TRY_ALSA" = "xyes"
  586. then
  587. # check for ALSA >= 1.0.0
  588. PKG_CHECK_MODULES(ALSA, alsa >= 1.0.0,
  589. [HAVE_ALSA="true"
  590. ALSA_LIBS=-lasound
  591. JACK_DEFAULT_DRIVER=\"alsa\"
  592. ], AC_MSG_RESULT([no]), [-lm]
  593. )
  594. AC_SUBST(ALSA_LIBS)
  595. fi
  596. AM_CONDITIONAL(HAVE_ALSA, $HAVE_ALSA)
  597. HAVE_ALSA_MIDI=$HAVE_ALSA
  598. AM_CONDITIONAL(HAVE_ALSA_MIDI, $HAVE_ALSA_MIDI)
  599. if test "$JACK_DEFAULT_DRIVER" = \"dummy\"; then
  600. AC_MSG_WARN([Only the dummy driver can be built])
  601. fi
  602. AC_DEFINE_UNQUOTED(JACK_DEFAULT_DRIVER,
  603. [$JACK_DEFAULT_DRIVER],
  604. [Default JACK driver])
  605. # On some systems, readline depends on termcap or ncurses. But, the
  606. # MacOSX linker complains bitterly if these libraries are explicitly
  607. # referenced.
  608. #
  609. # AC_CHECK_LIB() foolishly assumes that checking a library for an entry
  610. # point always returns the same result regardless of any dependent
  611. # libraries specified. The `unset ac_cv_lib_readline_readline' erases
  612. # the cached result to work around this problem.
  613. READLINE_DEPS=""
  614. HAVE_READLINE=true
  615. AC_CHECK_LIB(readline, readline, [:],
  616. [unset ac_cv_lib_readline_readline
  617. AC_CHECK_LIB(readline, readline, [READLINE_DEPS="-ltermcap"],
  618. [unset ac_cv_lib_readline_readline
  619. AC_CHECK_LIB(readline, readline,
  620. [READLINE_DEPS="-lncurses"], [HAVE_READLINE=false], "-lncurses")],
  621. "-ltermcap")])
  622. AC_CHECK_HEADER(readline/chardefs.h, [], [HAVE_READLINE=false])
  623. if test x$HAVE_READLINE = xfalse; then
  624. AC_MSG_WARN([*** the jack_transport example client will not be built])
  625. fi
  626. AC_SUBST(READLINE_DEPS)
  627. # you need doxygen to make dist.
  628. AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false)
  629. if test $HAVE_DOXYGEN = "false"; then
  630. AC_MSG_WARN([*** doxygen not found, docs will not be built])
  631. fi
  632. AM_CONDITIONAL(HAVE_SNDFILE, $HAVE_SNDFILE)
  633. AM_CONDITIONAL(HAVE_SAMPLERATE, $HAVE_SAMPLERATE)
  634. AM_CONDITIONAL(HAVE_READLINE, $HAVE_READLINE)
  635. AM_CONDITIONAL(HAVE_DOXYGEN, $HAVE_DOXYGEN)
  636. AM_CONDITIONAL(USE_CAPABILITIES, $USE_CAPABILITIES)
  637. AM_CONDITIONAL(STRIPPED_JACKD, $STRIPPED_JACKD)
  638. AC_OUTPUT(
  639. Makefile
  640. config/Makefile
  641. config/cpu/Makefile
  642. config/cpu/alpha/Makefile
  643. config/cpu/cris/Makefile
  644. config/cpu/generic/Makefile
  645. config/cpu/i386/Makefile
  646. config/cpu/i486/Makefile
  647. config/cpu/ia64/Makefile
  648. config/cpu/m68k/Makefile
  649. config/cpu/mips/Makefile
  650. config/cpu/powerpc/Makefile
  651. config/cpu/s390/Makefile
  652. config/os/Makefile
  653. config/os/generic/Makefile
  654. config/os/gnu-linux/Makefile
  655. config/os/macosx/Makefile
  656. config/sysdeps/Makefile
  657. doc/Makefile
  658. doc/reference.doxygen
  659. drivers/Makefile
  660. drivers/alsa/Makefile
  661. drivers/alsa-midi/Makefile
  662. drivers/dummy/Makefile
  663. drivers/oss/Makefile
  664. drivers/sun/Makefile
  665. drivers/portaudio/Makefile
  666. drivers/coreaudio/Makefile
  667. drivers/freebob/Makefile
  668. drivers/firewire/Makefile
  669. drivers/netjack/Makefile
  670. example-clients/Makefile
  671. tools/Makefile
  672. jack.pc
  673. jack.spec
  674. jack/Makefile
  675. jack/version.h
  676. jackd/Makefile
  677. jackd/jackd.1
  678. libjack/Makefile
  679. )
  680. dnl
  681. dnl Output summary message
  682. dnl
  683. echo
  684. echo $PACKAGE $VERSION :
  685. echo
  686. echo \| Build with ALSA support............................... : $HAVE_ALSA
  687. echo \| Build with old FireWire \(FreeBob\) support............. : $HAVE_FREEBOB
  688. echo \| Build with new FireWire \(FFADO\) support............... : $HAVE_FIREWIRE
  689. echo \| Build with OSS support................................ : $HAVE_OSS
  690. echo \| Build with Sun audio support.......................... : $HAVE_SUN
  691. echo \| Build with CoreAudio support.......................... : $HAVE_COREAUDIO
  692. echo \| Build with PortAudio support.......................... : $HAVE_PA
  693. echo \| Build with NetJack support............................ : $HAVE_SAMPLERATE
  694. echo \| Compiler optimization flags........................... : $JACK_OPT_CFLAGS
  695. echo \| Compiler full flags................................... : $CFLAGS
  696. echo \| Install dir for libjack + backends.................... : $libdir/jack
  697. echo \|
  698. echo \| Default driver backend................................ : $JACK_DEFAULT_DRIVER
  699. echo \| Shared memory interface............................... : $JACK_SHM_TYPE
  700. echo \| IPC Temporary directory............................... : $DEFAULT_TMP_DIR
  701. echo \| Install prefix........................................ : $prefix
  702. echo \| Default tmp dir....................................... : $DEFAULT_TMP_DIR
  703. echo