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