X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=configure.ac;h=90f2eb5f96c4afd219db972bb4275a846d85f1c2;hb=bafead2b6d377aa967b2bff463d8aa1e868cb30f;hp=4210617a38a7d234ec9b9fcfdecdf1dd60c93da3;hpb=8e33ed9c6e4effc890e9a25a6ce077f12f13c265;p=comedilib.git diff --git a/configure.ac b/configure.ac index 4210617..90f2eb5 100644 --- a/configure.ac +++ b/configure.ac @@ -1,12 +1,96 @@ +# libtool version: current:revision:age +# +# If the library source code has changed at all since the last update, then +# increment revision (`c:r:a' becomes `c:r+1:a'). +# +# If any interfaces have been added, removed, or changed since the last update, +# increment current, and set revision to 0. +# +# If any interfaces have been added since the last public release, then +# increment age. +# +# If any interfaces have been removed since the last public release, then set +# age to 0. +# +# In summary: +# +# If any interface has been changed or removed, `c:r:a' becomes `c+1:0:0'; +# else if any interface has been added, `c:r:a' becomes `c+1:0:a+1'; +# else, `c:r:a' becomes `c:r+1:a'. +# +m4_define([comedilib_lt_current], [10]) +m4_define([comedilib_lt_revision], [1]) +m4_define([comedilib_lt_age], [10]) +# Set 'letter', normally empty. See below for rules. +m4_define([comedilib_version_letter], []) -AC_INIT +#libscxi c:r:a +m4_define([scxi_lt_current], [9]) +m4_define([scxi_lt_revision], [0]) +m4_define([scxi_lt_age], [9]) + +# comedilib library version: major.minor.micro +# comedilib package version: major.minor.micro[letter] +# +# Currently: +# * 'major' may be incremented at the whim of the maintainers. +# * 'minor' is libtool 'current' minus the value of 'current' when major +# changed (comedilib_major_base_current). +# * 'micro' is libtool 'revision'. +# * 'letter' is normally absent and is removed if any of 'major', 'minor' +# or 'micro' are changed between releases. Otherwise it is set if the +# only changes between releases are outside the library source code or +# language binding, for example the comedilib manual, "readme" files +# or sample configuration files. When it needs to be set, it is set to +# 'a' if previously absent, otherwise the next lower-case ASCII letter +# in the sequence. (In the unlikely event that we we need to go beyond +# 'z', append an extra letter.) +# +# Example package version sequence: 0.10.1, 0.10.1a, 0.10.1b, 0.10.2, +# 0.10.2a, ..., 0.10.2z, 0.10.2za, 0,10.2zb, 0.11.0. + +# Gentle reminder: The comedilib manual mentions the version of comedilib +# it applies to. This is done by setting the 'comedilib_version' entity +# in "doc/comedilib.ent". That needs to be edited manually as it is not +# updated automatically. Policy: the version of the manual is usually only +# updated if the contents have changed since the previous release. In that +# case, it is set to the comedilib package version. + +# Manually set 'comedilib_major_base_current' to new 'comedilib_lt_current' +# whenever 'comedilib_version_major' is incremented below. +m4_define([comedilib_major_base_current], [0]) + +m4_define([comedilib_version_major], [0]) +m4_define([comedilib_version_minor], + [m4_eval(comedilib_lt_current - comedilib_major_base_current)]) +m4_define([comedilib_version_micro], [comedilib_lt_revision]) +m4_define([comedilib_pkg_version], + [m4_join([], + m4_join([.], comedilib_version_major, + comedilib_version_minor, + comedilib_version_micro), + comedilib_version_letter)]) + +AC_INIT([comedilib], [comedilib_pkg_version]) AC_CANONICAL_TARGET([]) -AS_VERSION(comedilib, COMEDILIB, 0, 7, 19, 1) +COMEDILIB_VERSION_MAJOR=comedilib_version_major +COMEDILIB_VERSION_MINOR=comedilib_version_minor +COMEDILIB_VERSION_MICRO=comedilib_version_micro +AC_SUBST(COMEDILIB_VERSION_MAJOR) +AC_SUBST(COMEDILIB_VERSION_MINOR) +AC_SUBST(COMEDILIB_VERSION_MICRO) + +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([.]) #COMEDILIB_DEBUG="-Wall -Werror" COMEDILIB_DEBUG="-Wall" -AM_INIT_AUTOMAKE($PACKAGE,$VERSION) -AS_LIBTOOL(COMEDILIB, 0, 7, 18, yes) +AM_INIT_AUTOMAKE([-Wall -Werror]) + +# AS_LIBTOOL arguments are (prefix, current, revision, age) +AS_LIBTOOL(COMEDILIB, comedilib_lt_current, comedilib_lt_revision, comedilib_lt_age) +SCXI_SO_VERSION=scxi_lt_current:scxi_lt_revision:scxi_lt_age +AC_SUBST(SCXI_SO_VERSION) AM_CONFIG_HEADER(config.h) @@ -15,47 +99,231 @@ ACLOCAL="$ACLOCAL -I m4" AM_MAINTAINER_MODE AC_PROG_CC -AM_PROG_CC_STDC +AM_PROG_CC_C_O +AC_PROG_CC_STDC AC_ISC_POSIX AM_PROG_LEX AC_PROG_YACC +AC_PROG_LIBTOOL AC_HEADER_STDC([]) -COMEDILIB_CFLAGS="$COMEDILIB_CFLAGS -I\$(top_srcdir)/include $COMEDILIB_DEBUG" +AX_TLS + +COMEDILIB_CFLAGS="$COMEDILIB_CFLAGS -I\$(top_srcdir)/include -I\$(top_builddir)/include $COMEDILIB_DEBUG" COMEDILIB_LIBS="$COMEDILIB_LIBS \$(top_builddir)/lib/libcomedi.la -lm" AC_SUBST(COMEDILIB_CFLAGS) AC_SUBST(COMEDILIB_LIBS) -AM_PATH_PYTHON -AM_CHECK_PYTHON_HEADERS(HAVE_PYTHON=yes,[HAVE_PYTHON=no;AC_MSG_WARN([python headers not found, disabling python binding])]) -AM_CONDITIONAL(HAVE_PYTHON, [test "x$HAVE_PYTHON" = xyes]) +# autoconf backwards compatibility +if test "$datarootdir" = ""; then + datarootdir='${datadir}' + AC_SUBST(datarootdir) +fi + +if test "$docdir" = ""; then + docdir='${datarootdir}/doc/${PACKAGE}' + AC_SUBST(docdir) +fi + +if test "$htmldir" = ""; then + htmldir='${docdir}' + AC_SUBST(htmldir) +fi + +if test "$pdfdir" = ""; then + pdfdir='${docdir}' + AC_SUBST(pdfdir) +fi + +#swig +AC_PATH_PROG(SWIG, swig, "no") +if test "$SWIG" == "no" ; then + AC_MSG_WARN([swig not found, will not be able to build swig based bindings]) +fi + +#python +AC_ARG_ENABLE([python-binding], + [AS_HELP_STRING([--disable-python-binding], + [Disable building of Python binding])], + [ENABLE_PYTHON=$enableval],[ENABLE_PYTHON="yes"]) +if test "$ENABLE_PYTHON" == "yes" && test "$SWIG" != "no"; then + AM_PATH_PYTHON + AM_CHECK_PYTHON_HEADERS(HAVE_PYTHON=yes,[HAVE_PYTHON=no;AC_MSG_WARN([python headers not found, disabling python binding])]) +else + HAVE_PYTHON="no" +fi +AM_CONDITIONAL(HAVE_PYTHON, [test "$HAVE_PYTHON" == "yes" && test "$ENABLE_PYTHON" == "yes"]) AS_COMPILER_FLAG([-fno-strict-aliasing],[PYTHON_QUIET="$PYTHON_QUIET -fno-strict-aliasing"], true ) AS_COMPILER_FLAG([-Wno-unused-function],[PYTHON_QUIET="$PYTHON_QUIET -Wno-unused-function"], true ) AC_SUBST(PYTHON_QUIET) -AC_PATH_PROG(JW_PATH, jw, no) -if test x$JW_PATH = xno ; then - AC_MSG_WARN([docbook-tools (jw) not found, disabling documentation]) +# ruby +AC_ARG_ENABLE([ruby-binding], + [AS_HELP_STRING([--enable-ruby-binding], + [Enable building of Ruby binding])], + [ENABLE_RUBY=$enableval], [ENABLE_RUBY="no"]) +if test "$ENABLE_RUBY" == "yes" && test "$SWIG" != "no"; then + AC_PATH_PROG(RUBY, ruby, no) + if test "$RUBY" != "no" ; then + RUBY_INC_DIR=`$RUBY -e "require 'rbconfig'; c = ::Config::CONFIG; print c[['archdir']];"` + AC_CHECK_HEADER([$RUBY_INC_DIR/ruby.h],[],[ENABLE_RUBY="no";AC_MSG_WARN([ruby.h not found, disabling Ruby binding])]) + else + AC_MSG_WARN([ruby not found, disabling ruby binding]) + ENABLE_RUBY="no" + fi +else + ENABLE_RUBY="no" +fi + +AM_CONDITIONAL(HAVE_RUBY, [test "$ENABLE_RUBY" == "yes"]) + +AC_ARG_VAR(RUBY_PREFIX,[path prefix for Ruby binding]) +AC_ARG_VAR(RUBY_SO_DIR,[path for Ruby extensions]) +if test "$RUBY_PREFIX" != "" ; then + RUBY_CONFIG_OPTIONS="$RUBY_CONFIG_OPTIONS --prefix=\$(RUBY_PREFIX)" +fi +if test "$RUBY_SO_DIR" != "" ; then + RUBY_CONFIG_OPTIONS="$RUBY_CONFIG_OPTIONS --so-dir=\$(RUBY_SO_DIR)" +fi +AC_SUBST(RUBY_CONFIG_OPTIONS) + +# scxi +AC_ARG_ENABLE([scxi], + [AS_HELP_STRING([--enable-scxi], [Enable SCXI convenience library])], + [ENABLE_SCXI=$enableval], [ENABLE_SCXI="no"]) +AM_CONDITIONAL(BUILD_SCXI, [test "$ENABLE_SCXI" == "yes"]) + +# docbook +AC_ARG_ENABLE([docbook], + [AS_HELP_STRING([--disable-docbook], [Disable docbook])], + [ENABLE_DOCBOOK=$enableval],[ENABLE_DOCBOOK="yes"]) + +if test "$ENABLE_DOCBOOK" == "yes"; then + AC_PATH_PROG(XMLTO, xmlto, no) + if test "$XMLTO" = "no" ; then + AC_MSG_WARN([xmlto not found, will not be able to rebuild documentation]) + fi +else + XMLTO="no" fi -AM_CONDITIONAL(HAVE_DOCBOOK, [test "x$JW_PATH" != xno]) +if test "$XMLTO" != "no"; then + AC_ARG_WITH([pdf-backend], + [AS_HELP_STRING([--with-pdf-backend=[[yes|no|dblatex|fop|default]]], + [Enable or disable PDF generation with backend])], + [WITH_PDF_BACKEND=$withval],[WITH_PDF_BACKEND="yes"]) + case "$WITH_PDF_BACKEND" in + no) + PDF_BACKEND="no" + ;; + yes) + # Prefer dblatex, then default backend. + # Could use [dblatex fop] to prefer dblatex or fop. + AC_CHECK_PROGS([PDF_BACKEND], [dblatex], [default]) + # The default backend is broken, so avoid it for now. + if test "$PDF_BACKEND" = "default"; then + AC_MSG_WARN([Default PDF backend is broken, disabling PDF generation]) + AC_MSG_WARN([(dblatex is recommended for PDF generation)]) + PDF_BACKEND="no" + fi + if test "$PDF_BACKEND" != "no"; then + AC_MSG_NOTICE([Will use $PDF_BACKEND backend for PDF generation]) + fi + ;; + default) + # Use xmlto's default backend. + PDF_BACKEND="default" + ;; + dblatex|fop) + AC_CHECK_PROG([PDF_BACKEND], [$WITH_PDF_BACKEND], + [$WITH_PDF_BACKEND], [no]) + if test "$PDF_BACKEND" = "no"; then + AC_MSG_WARN([$WITH_PDF_BACKEND not found, disabling PDF generation]) + fi + ;; + *) + AC_MSG_WARN([Bad --with-pdf-backend option, disabling PDF generation]) + PDF_BACKEND="no" + ;; + esac +else + PDF_BACKEND="no" +fi +case $PDF_BACKEND in +fop|default) + AC_MSG_WARN([$PDF_BACKEND PDF backend might not work. --without-pdf-backend disables PDF generation.]) + ;; +esac +AM_CONDITIONAL(HAVE_XMLTO, [test "$XMLTO" != "no"]) +AM_CONDITIONAL(BUILD_PDF, [test "$PDF_BACKEND" != "no"]) +AM_CONDITIONAL(BUILD_PDF_USING_DBLATEX, [test "$PDF_BACKEND" = "dblatex"]) +AM_CONDITIONAL(BUILD_PDF_USING_FOP, [test "$PDF_BACKEND" = "fop"]) + +pcmciadir="\${sysconfdir}/pcmcia" +AC_SUBST(pcmciadir) + +# firmware +AC_ARG_ENABLE([firmware], + [AS_HELP_STRING([--disable-firmware], [Disable installation of firmware files])], + [ENABLE_FIRMWARE=$enableval],[ENABLE_FIRMWARE="yes"]) + +# new udev hotplug +AC_ARG_WITH([udev-hotplug], + [AS_HELP_STRING([--with-udev-hotplug=[[/lib]]], [enable udev hotplug])], + [ENABLE_UDEVHOTPLUG=$withval], [ENABLE_UDEVHOTPLUG="no"]) +AM_CONDITIONAL(INSTALL_UDEVHOTPLUG, [test "$ENABLE_UDEVHOTPLUG" != "no"]) +if test "$ENABLE_UDEVHOTPLUG" != "no"; then + if test "$ENABLE_UDEVHOTPLUG" == "yes"; then + AC_MSG_ERROR([udev-hotplug needs a path as an argument (usually: --enable-udev-hotplug=/lib).]) + fi + if test "$ENABLE_UDEVHOTPLUG" != "/lib"; then + AC_MSG_WARN([Installing the udev scripts in the non-standard location: $ENABLE_UDEVHOTPLUG (should be --enable-udev-hotplug=/lib)]) + fi + udevrulesdir="$ENABLE_UDEVHOTPLUG/udev/rules.d/" + udevscriptsdir="$ENABLE_UDEVHOTPLUG/udev" + AC_SUBST(udevrulesdir) + AC_SUBST(udevscriptsdir) + if test "$ENABLE_FIRMWARE" == "yes"; then + udevfirmwaredir="$ENABLE_UDEVHOTPLUG/firmware" + AC_SUBST(udevfirmwaredir) + fi +else + ENABLE_UDEVHOTPLUG="no" +fi + +if test "$ENABLE_UDEVHOTPLUG" = "no" ; then + AC_MSG_WARN([No hotplug mechanism will be installed. Consult ./configure --help if you want hotplug.]) +fi AC_CONFIG_FILES( Makefile -comedi_calibrate/Makefile comedi_config/Makefile +comedi_board_info/Makefile +c++/Makefile +c++/include/Makefile +etc/Makefile +etc/pcmcia/Makefile +etc/hotplug/Makefile +etc/hotplug/usb/Makefile +etc/hotplug/usb/usbdux/Makefile +etc/hotplug/usb/usbduxfast/Makefile +etc/hotplug/usb/usbduxsigma/Makefile +etc/udev/Makefile doc/Makefile demo/Makefile include/Makefile +include/comedilib_version.h lib/Makefile man/Makefile -python/Makefile +scxi/Makefile +swig/Makefile +swig/python/Makefile +swig/ruby/Makefile testing/Makefile comedilib.spec +comedilib.pc ) AC_OUTPUT - -