summaryrefslogtreecommitdiff
path: root/configure.in
blob: 39f9adeb2d03a9130d5a577f616b45a745e833c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
dnl Process this file with autoconf to produce a configure script.
AC_INIT(jackd/jackd.c)

AC_CONFIG_AUX_DIR(.)

JACK_MAJOR_VERSION=0
JACK_MINOR_VERSION=33
JACK_MICRO_VERSION=2

BETA=

AC_SUBST(JACK_MAJOR_VERSION)
AC_SUBST(JACK_MINOR_VERSION)
AC_SUBST(JACK_MICRO_VERSION)

JACK_SO_VERSION=${JACK_MAJOR_VERSION}:${JACK_MINOR_VERSION}:${JACK_MICRO_VERSION}${BETA}
JACK_VERSION=$JACK_MAJOR_VERSION.$JACK_MINOR_VERSION.${JACK_MICRO_VERSION}${BETA}
JACK_RELEASE=$JACK_MAJOR_VERSION-$JACK_MINOR_VERSION-${JACK_MICRO_VERSION}${BETA}

AC_SUBST(JACK_SO_VERSION)
AC_SUBST(JACK_VERSION)
AC_SUBST(JACK_RELEASE)

AM_INIT_AUTOMAKE(jack-audio-connection-kit,${JACK_VERSION})

AC_PROG_CC
AC_PROG_CXX
AC_PROG_LD
AM_PROG_LIBTOOL

JACK_CFLAGS='-I$(top_srcdir) -DADDON_DIR=\"$(ADDON_DIR)\" -g -Wall -D_REENTRANT'
JACK_OPT_CFLAGS='-I$(top_srcdir) -DADDON_DIR=\"$(ADDON_DIR)\" -D_REENTRANT -O6 -Wall -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops -fmove-all-movables'

AC_ARG_ENABLE(optimize,
              [  --enable-optimize       ask the compiler for its best optimizations],
              [ if test "x$enable_optimize" != "xno" ; then JACK_CFLAGS="$JACK_OPT_CFLAGS" ; fi ])

USE_CAPABILITIES=false

AC_ARG_ENABLE(capabilities,
              [  --enable-capabilities   use libcap to gain realtime scheduling priviledges],
              [ if test "x$enable_capabilities" != "xno" ; then
                    AC_CHECK_LIB(cap, capgetp,
                                 [AC_CHECK_HEADER(sys/capability.h,
                                                  [HAVE_CAPABILITIES=true],
                                                  [AC_MSG_WARN([*** no kernel support for capabilities])
                                                   HAVE_CAPABILITIES=false]
                                  )],
                                 [AC_MSG_WARN([*** no libcap present])
                                  HAVE_CAPABILITIES=false]
                    )
                    if test "x$HAVE_CAPABILITIES" = "xtrue"; then
                        AC_CHECK_PROG(HAVE_CAPABILITIES, md5sum, true, false)
                    fi
                    if test "x$HAVE_CAPABILITIES" = "xfalse"; then
                        AC_MSG_WARN([*** required program md5sum not found])
                    fi
                    if test "x$HAVE_CAPABILITIES" = "xfalse"; then
                        AC_MSG_ERROR([*** Capabilities support not present. Run configure again without --enable-capabilities.])
                    fi
                    USE_CAPABILITIES=true
                    JACK_CFLAGS="$JACK_CFLAGS -DUSE_CAPABILITIES"
                fi
              ]
)

AC_SUBST(JACK_CFLAGS)

STRIPPED_JACKD=false
AC_ARG_ENABLE(stripped-jackd,
              [  --enable-stripped-jackd strip jack before computing its md5 sum ],
              [ if test "x$USE_CAPABILITIES" != "xtrue" ; then
                    AC_MSG_WARN([*** capabilities not enabled, stripped jackd has no effect])
                elif test "x$enable_stripped_jackd" != "xno"; then
                    STRIPPED_JACKD=true
                fi
              ]
)

# plugins (just jack_alsa.so at the moment) go in the addon dir.

ADDON_DIR=${libdir}/jack
AC_SUBST(ADDON_DIR)

AC_ARG_WITH(html-dir,
            [  --with-html-dir=PATH    where to install the html documentation])

if test "x$with_html_dir" = "x" ; then
    HTML_DIR='${datadir}/gtk-doc/html'
else
    HTML_DIR=$with_html_dir
fi

AC_SUBST(HTML_DIR)

# jack depends on alsa 0.9 and glib. some example apps depend on libsndfile and fltk.

AM_PATH_GLIB(1.0.0,
             [:],
             [AC_MSG_ERROR([*** JACK requires GLib, but it does not appear to be installed])]
)

AC_CHECK_LIB(asound,snd_pcm_drop,
	     [:],
             [AC_MSG_ERROR([*** JACK currently requires ALSA (0.9.X) which you don't appear to have])],
	     [-lm]
)

AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_CHECK_LIB(fltk,main,
             [AC_CHECK_HEADER(FL/Fl.H,
                              [HAVE_FLTK=true],
                              [HAVE_FLTK=false]
              )],
             [HAVE_FLTK=false],
             [-L/usr/X11R6/lib -lX11 -lXext]
)
AC_LANG_RESTORE
if test $HAVE_FLTK = "false"; then
             AC_MSG_WARN([*** no fltk found, the fltk example client will not be built])
fi

AC_CHECK_LIB(sndfile,main,
             [AC_CHECK_HEADER(sndfile.h,
                              [HAVE_SNDFILE=true],
                              [HAVE_SNDFILE=false]
              )],
	     [HAVE_SNDFILE=false]
)
if test $HAVE_SNDFILE = "false"; then
             AC_MSG_WARN([*** no libsndfile found, the jackrec example client will not be built])
fi

# you need doxygen to make dist.
AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false)
if test $HAVE_DOXYGEN = "false"; then
             AC_MSG_WARN([*** doxygen not found, docs will not be built])
fi

AM_CONDITIONAL(HAVE_FLTK, $HAVE_FLTK)
AM_CONDITIONAL(HAVE_SNDFILE, $HAVE_SNDFILE)
AM_CONDITIONAL(HAVE_DOXYGEN, $HAVE_DOXYGEN)
AM_CONDITIONAL(USE_CAPABILITIES, $USE_CAPABILITIES)
AM_CONDITIONAL(STRIPPED_JACKD, $STRIPPED_JACKD)
AC_OUTPUT(
Makefile
jack.pc
jack.spec
jack/Makefile
jackd/Makefile
libjack/Makefile
drivers/Makefile
drivers/alsa/Makefile
example-clients/Makefile
doc/Makefile
doc/reference.doxygen
)