Updated usbdux firmware files. The udev hotplug mechanism
[comedilib.git] / configure.ac
1 # libtool version: current:revision:age
2 #
3 # If the library source code has changed at all since the last update, then
4 # increment revision (`c:r:a' becomes `c:r+1:a').
5 #
6 # If any interfaces have been added, removed, or changed since the last update,
7 # increment current, and set revision to 0.
8 #
9 # If any interfaces have been added since the last public release, then
10 # increment age.
11 #
12 # If any interfaces have been removed since the last public release, then set
13 # age to 0.
14 #
15 # In summary:
16 #
17 #  If any interface has been changed or removed, `c:r:a' becomes `c+1:0:0';
18 #  else if any interface has been added, `c:r:a' becomes `c+1:0:a+1';
19 #  else, `c:r:a' becomes `c:r+1:a'.
20 #
21 m4_define([comedilib_lt_current], [10])
22 m4_define([comedilib_lt_revision], [0])
23 m4_define([comedilib_lt_age], [10])
24
25 #libscxi c:r:a
26 m4_define([scxi_lt_current], [9])
27 m4_define([scxi_lt_revision], [0])
28 m4_define([scxi_lt_age], [9])
29
30 # comedilib version: major.minor.micro
31 #
32 # Currently:
33 #  * 'major' may be incremented at the whim of the maintainers.
34 #  * 'minor' is libtool 'current' minus the value of 'current' when major
35 #    changed (comedilib_major_base_current).
36 #  * 'micro' is libtool 'revision'.
37
38 # Manually set 'comedilib_major_base_current' to new 'comedilib_lt_current'
39 # whenever 'comedilib_version_major' is incremented below.
40 m4_define([comedilib_major_base_current], [0])
41
42 m4_define([comedilib_version_major], [0])
43 m4_define([comedilib_version_minor],
44           [m4_eval(comedilib_lt_current - comedilib_major_base_current)])
45 m4_define([comedilib_version_micro], [comedilib_lt_revision])
46 m4_define([comedilib_pkg_version],
47           [comedilib_version_major.comedilib_version_minor.comedilib_version_micro])
48
49 AC_INIT([comedilib], [comedilib_pkg_version])
50 AC_CANONICAL_TARGET([])
51
52 COMEDILIB_VERSION_MAJOR=comedilib_version_major
53 COMEDILIB_VERSION_MINOR=comedilib_version_minor
54 COMEDILIB_VERSION_MICRO=comedilib_version_micro
55 AC_SUBST(COMEDILIB_VERSION_MAJOR)
56 AC_SUBST(COMEDILIB_VERSION_MINOR)
57 AC_SUBST(COMEDILIB_VERSION_MICRO)
58
59 AC_CONFIG_MACRO_DIR([m4])
60 AC_CONFIG_AUX_DIR([.])
61 #COMEDILIB_DEBUG="-Wall -Werror"
62 COMEDILIB_DEBUG="-Wall"
63 AM_INIT_AUTOMAKE([-Wall -Werror])
64
65 # AS_LIBTOOL arguments are (prefix, current, revision, age)
66 AS_LIBTOOL(COMEDILIB, comedilib_lt_current, comedilib_lt_revision, comedilib_lt_age)
67 SCXI_SO_VERSION=scxi_lt_current:scxi_lt_revision:scxi_lt_age
68 AC_SUBST(SCXI_SO_VERSION)
69
70 AM_CONFIG_HEADER(config.h)
71
72 ACLOCAL="$ACLOCAL -I m4"
73
74 AM_MAINTAINER_MODE
75
76 AC_PROG_CC
77 AM_PROG_CC_C_O
78 AC_PROG_CC_STDC
79 AC_ISC_POSIX
80 AM_PROG_LEX
81 AC_PROG_YACC
82 AC_PROG_LIBTOOL
83
84 AC_HEADER_STDC([])
85
86 AX_TLS
87
88 COMEDILIB_CFLAGS="$COMEDILIB_CFLAGS -I\$(top_srcdir)/include -I\$(top_builddir)/include $COMEDILIB_DEBUG"
89 COMEDILIB_LIBS="$COMEDILIB_LIBS \$(top_builddir)/lib/libcomedi.la -lm"
90 AC_SUBST(COMEDILIB_CFLAGS)
91 AC_SUBST(COMEDILIB_LIBS)
92
93 # autoconf backwards compatibility
94 if test "$datarootdir" = ""; then
95         datarootdir='${datadir}'
96         AC_SUBST(datarootdir)
97 fi
98
99 if test "$docdir" = ""; then
100         docdir='${datarootdir}/doc/${PACKAGE}'
101         AC_SUBST(docdir)
102 fi
103
104 if test "$htmldir" = ""; then
105         htmldir='${docdir}'
106         AC_SUBST(htmldir)
107 fi
108
109 if test "$pdfdir" = ""; then
110         pdfdir='${docdir}'
111         AC_SUBST(pdfdir)
112 fi
113
114 #swig
115 AC_PATH_PROG(SWIG, swig, "no")
116 if test "$SWIG" == "no" ; then
117         AC_MSG_WARN([swig not found, will not be able to build swig based bindings])
118 fi
119
120 #python
121 AC_ARG_ENABLE([python-binding],
122         [AS_HELP_STRING([--disable-python-binding],
123                 [Disable building of Python binding])],
124         [ENABLE_PYTHON=$enableval],[ENABLE_PYTHON="yes"])
125 if test "$ENABLE_PYTHON" == "yes" && test "$SWIG" != "no"; then
126         AM_PATH_PYTHON
127         AM_CHECK_PYTHON_HEADERS(HAVE_PYTHON=yes,[HAVE_PYTHON=no;AC_MSG_WARN([python headers not found, disabling python binding])])
128 else
129         HAVE_PYTHON="no"
130 fi
131 AM_CONDITIONAL(HAVE_PYTHON, [test "$HAVE_PYTHON" == "yes" && test "$ENABLE_PYTHON" == "yes"])
132
133 AS_COMPILER_FLAG([-fno-strict-aliasing],[PYTHON_QUIET="$PYTHON_QUIET -fno-strict-aliasing"], true )
134 AS_COMPILER_FLAG([-Wno-unused-function],[PYTHON_QUIET="$PYTHON_QUIET -Wno-unused-function"], true )
135 AC_SUBST(PYTHON_QUIET)
136
137 # ruby
138 AC_ARG_ENABLE([ruby-binding],
139         [AS_HELP_STRING([--enable-ruby-binding],
140                 [Enable building of Ruby binding])],
141         [ENABLE_RUBY=$enableval], [ENABLE_RUBY="no"])
142 if test "$ENABLE_RUBY" == "yes" && test "$SWIG" != "no"; then
143         AC_PATH_PROG(RUBY, ruby, no)
144         if test "$RUBY" != "no" ; then
145                 RUBY_INC_DIR=`$RUBY -e "require 'rbconfig'; c = ::Config::CONFIG; print c[['archdir']];"`
146                 AC_CHECK_HEADER([$RUBY_INC_DIR/ruby.h],[],[ENABLE_RUBY="no";AC_MSG_WARN([ruby.h not found, disabling Ruby binding])])
147         else
148                 AC_MSG_WARN([ruby not found, disabling ruby binding])
149                 ENABLE_RUBY="no"
150         fi
151 else
152         ENABLE_RUBY="no"
153 fi
154
155 AM_CONDITIONAL(HAVE_RUBY, [test "$ENABLE_RUBY" == "yes"])
156
157 AC_ARG_VAR(RUBY_PREFIX,[path prefix for Ruby binding])
158 AC_ARG_VAR(RUBY_SO_DIR,[path for Ruby extensions])
159 if test "$RUBY_PREFIX" != "" ; then
160         RUBY_CONFIG_OPTIONS="$RUBY_CONFIG_OPTIONS --prefix=\$(RUBY_PREFIX)"
161 fi
162 if test "$RUBY_SO_DIR" != "" ; then
163         RUBY_CONFIG_OPTIONS="$RUBY_CONFIG_OPTIONS --so-dir=\$(RUBY_SO_DIR)"
164 fi
165 AC_SUBST(RUBY_CONFIG_OPTIONS)
166
167 # scxi
168 AC_ARG_ENABLE([scxi],
169         [AS_HELP_STRING([--enable-scxi], [Enable SCXI convenience library])],
170         [ENABLE_SCXI=$enableval], [ENABLE_SCXI="no"])
171 AM_CONDITIONAL(BUILD_SCXI, [test "$ENABLE_SCXI" == "yes"])
172
173 # docbook
174 AC_ARG_ENABLE([docbook],
175         [AS_HELP_STRING([--disable-docbook], [Disable docbook])],
176         [ENABLE_DOCBOOK=$enableval],[ENABLE_DOCBOOK="yes"])
177
178 if test "$ENABLE_DOCBOOK" == "yes"; then
179         AC_PATH_PROG(XMLTO, xmlto, no)
180         if test "$XMLTO" = "no" ; then
181                 AC_MSG_WARN([xmlto not found, will not be able to rebuild documentation])
182         fi
183         AC_PATH_PROG(DBLATEX, dblatex, no)
184         if test "$DBLATEX" = "no" ; then
185                 AC_MSG_WARN([dblatex not found, will not be able to generate pdfs])
186         fi
187 else
188         XMLTO="no"
189         DBLATEX="no"
190 fi
191 AM_CONDITIONAL(HAVE_XMLTO, [test "$XMLTO" != "no"])
192 AM_CONDITIONAL(HAVE_DBLATEX, [test "$DBLATEX" != "no"])
193
194 pcmciadir="\${sysconfdir}/pcmcia"
195 AC_SUBST(pcmciadir)
196
197
198
199 # new udev hotplug
200 AC_ARG_WITH([udev-hotplug],
201         [AS_HELP_STRING([--with-udev-hotplug=[[/lib]]], [enable udev hotplug])],
202         [ENABLE_UDEVHOTPLUG=$withval], [ENABLE_UDEVHOTPLUG="no"])
203 AM_CONDITIONAL(INSTALL_UDEVHOTPLUG, [test "$ENABLE_UDEVHOTPLUG" != "no"])
204 if test "$ENABLE_UDEVHOTPLUG" != "no"; then
205         if  test "$ENABLE_UDEVHOTPLUG" == "yes"; then
206                 AC_MSG_ERROR([udev-hotplug needs a path as an argument (usually: --enable-udev-hotplug=/lib).])
207         fi
208         if test "$ENABLE_UDEVHOTPLUG" != "/lib"; then
209                 AC_MSG_WARN([Installing the udev scripts in the non-standard location: $ENABLE_UDEVHOTPLUG (should be --enable-udev-hotplug=/lib)])
210         fi
211         if test "$sysconfdir" != "/etc"; then
212                 AC_MSG_WARN([udev hotplug works only if sysconfdir is set to /etc.])
213         fi
214         udevrulesdir="$ENABLE_UDEVHOTPLUG/udev/rules.d/"
215         udevfirmwaredir="$ENABLE_UDEVHOTPLUG/firmware"
216         udevscriptsdir="$ENABLE_UDEVHOTPLUG/udev"
217         AC_SUBST(udevrulesdir)
218         AC_SUBST(udevfirmwaredir)
219         AC_SUBST(udevscriptsdir)
220 else
221         ENABLE_UDEVHOTPLUG="no"
222 fi
223
224
225 # old hotplug mechanism
226 AC_ARG_ENABLE([etc-hotplug],
227         [AS_HELP_STRING([--enable-etc-hotplug],
228                 [enable old hotplug in /etc/hotplug])],
229         [ENABLE_ETCHOTPLUG=$enableval], [ENABLE_ETCHOTPLUG="no"])
230 AM_CONDITIONAL(INSTALL_ETCHOTPLUG, [test "$ENABLE_ETCHOTPLUG" != "no"])
231
232 if test "$ENABLE_ETCHOTPLUG" != "no"; then
233 #see: http://linux-hotplug.sourceforge.net/
234 #the hotplug expects the device dependent scripts here:
235         usbhotplugdir="\${sysconfdir}/hotplug/usb"
236         AC_SUBST(usbhotplugdir)
237
238 #firmware for the hotplug script
239 #see: http://linux-hotplug.sourceforge.net/
240         usbfirmwaredir="\${datadir}/usb"
241         AC_SUBST(usbfirmwaredir)
242         if test "$sysconfdir" != "/etc"; then
243                 AC_MSG_WARN([hotplug works only if sysconfdir is set to /etc.])
244         fi
245 fi
246
247 if test "$ENABLE_ETCHOTPLUG" = "no" && test "$ENABLE_UDEVHOTPLUG" = "no" ; then
248                 AC_MSG_WARN([No hotplug mechanism will be installed. Consult ./configure --help if you want hotplug.])
249 fi
250
251 AC_CONFIG_FILES(
252 Makefile
253 comedi_config/Makefile
254 c++/Makefile
255 c++/include/Makefile
256 etc/Makefile
257 etc/pcmcia/Makefile
258 etc/hotplug/Makefile
259 etc/hotplug/usb/Makefile
260 etc/hotplug/usb/usbdux/Makefile
261 etc/hotplug/usb/usbduxfast/Makefile
262 etc/hotplug/usb/usbduxsigma/Makefile
263 etc/udev/Makefile
264 doc/Makefile
265 demo/Makefile
266 include/Makefile
267 include/comedilib_version.h
268 lib/Makefile
269 man/Makefile
270 scxi/Makefile
271 swig/Makefile
272 swig/python/Makefile
273 swig/ruby/Makefile
274 testing/Makefile
275 comedilib.spec
276 comedilib.pc
277 )
278
279 AC_OUTPUT