[Lcdproc] [patch] autoconf cleanup
Thomas Jarosch
thomas.jarosch@intra2net.com
Tue Oct 30 09:50:02 2007
--Boundary-00=_X4vJHFIi24mpeql
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hello together,
I'm currently developing a new driver for lcdproc which needs libusb and
libftdi for communication. I took the time to do some cleanup in configure.in
and the related parts, please have a look. Basically I did the following:
- Switched libftdi/libusb detection to pkgconfig. Pkgconfig has been around
since 2003 and is much cleaner than large and complex if/else constructs
in the configure.in script for every library.
- Renamed help string from "--enable-libusb" to "--disable-libusb"
as it's enabled by default and therefore more intuitive.
Also use AS_HELP_STRING macro for the formatting.
Please let me know what you think.
Cheers,
Thomas
--Boundary-00=_X4vJHFIi24mpeql
Content-Type: text/x-diff;
charset="iso-8859-1";
name="lcdproc-configure-cleanup.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="lcdproc-configure-cleanup.patch"
--- lcdproc.clean/configure.in 2007-09-14 09:00:49.000000000 +0200
+++ lcdproc-CVS-current-20070914/configure.in 2007-10-30 10:28:20.000000000 +0100
@@ -225,20 +225,14 @@ AC_DEFINE_UNQUOTED(API_VERSION, "0.5", [
dnl Check compiler flags to dynamically load modules
AC_MODULES_INFO
-
dnl ######################################################################
-dnl USB support
-dnl
-dnl not all options have effect at the moment
-
-AC_SUBST(libusb_libs)
-AC_SUBST(libusb_cflags)
-
+dnl libusb support
+dnl ######################################################################
AC_MSG_CHECKING([if libusb support has been enabled]);
AC_ARG_ENABLE(
libusb,
- [ --enable-libusb compile with USB support using libusb. ],
- [
+ [AS_HELP_STRING([--disable-libusb],[disable USB support using libusb])],
+ [
if test "$enableval" != "no"; then
enable_libusb="yes"
fi
@@ -248,90 +242,34 @@ AC_ARG_ENABLE(
AC_MSG_RESULT($enable_libusb)
if test "$enable_libusb" = "yes"; then
- AC_PATH_PROG(libusb_config, libusb-config, :)
-
- AC_ARG_WITH(
- libusb-includes,
- [ --with-libusb-includes=DIR
- libusb include files are in DIR
- (default: found by libusb-config). ],
- [
- if test "$withval" != "no"; then
- libusb_includepath="$withval"
- libusb_cflags="-I$withval"
- fi
- ],
- [
- AC_MSG_CHECKING(libusb CFLAGS)
- if test "x$libusb_config" != x ; then
- libusb_cflags=`$libusb_config --cflags`
- else
- for libusb_includepath in /usr/include /usr/local/include \
- /usr/include/libusb /usr/local/include/libusb \
- /usr/include/usb /usr/local/include/usb ; do \
- if test -f "${libusb_includepath}/usb.h" ; then
- libusb_cflags="-I$libusb_includepath"
- break
- fi
- done
- fi
- AC_MSG_RESULT($libusb_cflags)
- ]
- )
-
- if test x$libusb_includepath != x ; then
- AC_CHECK_FILE(
- $libusb_includepath/usb.h,
- [ : ] ,
- [ enable_libusb="no" ]
- )
- fi
+ PKG_CHECK_MODULES(LIBUSB, libusb,,enable_libusb=no)
fi
+AC_SUBST(LIBUSB_LIBS)
+AC_SUBST(LIBUSB_CFLAGS)
-if test "$enable_libusb" = "yes"; then
- AC_ARG_WITH(
- libusb-libraries,
- [ --with-libusb-libraries=DIR
- libusb library files are in DIR
- (default: found by libusb-config). ],
- [
- if test "$withval" != "no"; then
- libusb_libs="-L$withval -lusb"
- fi
- ],
- [
- AC_MSG_CHECKING(libusb library path)
- if test "x$libusb_config" != x ; then
- libusb_libs=`$libusb_config --libs`
- else
- for libusb_libpath in /lib /usr/lib /usr/local/lib \
- /lib/libusb /usr/lib/libusb /usr/local/lib/libusb \
- /lib/usb /usr/lib/usb /usr/local/lib/usb ; do
- if test -f "${libusb_libpath}/libusb.a" -o -f "${libusb_libpath}/libusb.so"; then
- libusb_libs="-L$libusb_libpath -lusb"
- break
- fi
- done
- fi
- AC_MSG_RESULT($libusb_libs)
- ]
- )
-
- AC_CHECK_LIB(
- usb,
- main,
- [ : ],
- [ enable_libusb="no" ],
- $libusb_libs
- )
-fi
+dnl ######################################################################
+dnl libftdi support
+dnl ######################################################################
+AC_MSG_CHECKING([if libftdi support has been enabled]);
+AC_ARG_ENABLE(
+ libftdi,
+ [AS_HELP_STRING([--disable-libftdi],[disable FTDI support using libftdi])],
+ [
+ if test "$enableval" != "no"; then
+ enable_libftdi="yes"
+ fi
+ ],
+ [
+ enable_libftdi="yes"
+ ]
+)
+AC_MSG_RESULT($enable_libftdi)
-if test "$enable_libusb" = "yes"; then
- AC_DEFINE(HAVE_LIBUSB,[1],[Define to 1 if you have the libusb library])
-else
- libusb_libs="";
- libusb_cflags="";
+if test "$enable_libftdi" = "yes"; then
+ PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.8,,enable_libftdi=no)
fi
+AC_SUBST(LIBFTDI_LIBS)
+AC_SUBST(LIBFTDI_CFLAGS)
dnl Select drivers to build
--- lcdproc.clean/acinclude.m4 2007-08-06 09:00:18.000000000 +0200
+++ lcdproc-CVS-current-20070914/acinclude.m4 2007-10-30 10:30:15.000000000 +0100
@@ -257,27 +257,11 @@ dnl else
])
;;
lis)
- AC_CHECK_HEADERS([usb.h ftdi.h],[
- AC_CHECK_LIB(ftdi, main,[
- LIBFTDI="-lusb -lftdi"
- DRIVERS="$DRIVERS lis${SO}"
- actdrivers=["$actdrivers lis"]
- ],[
-dnl else
- AC_MSG_WARN([The lis driver needs the ftdi library])
- ])
- ],[
-dnl else
- AC_MSG_WARN([The lis driver needs ftdi.h and usb.h])
- ])
- AC_CACHE_CHECK([for ftdi_setdtr() in libftdi], ac_cv_ftdi_setdtr,
- [oldlibs="$LIBS"
- LIBS="$LIBS $LIBFTDI"
- AC_TRY_LINK_FUNC(ftdi_setdtr, ac_cv_ftdi_setdtr=yes, ac_cv_ftdi_setdtr=no)
- LIBS="$oldlibs"
- ])
- if test "$ac_cv_ftdi_setdtrt" = no; then
- AC_MSG_WARN([Upgrade to libftdi >= version 0.8])
+ if test "$enable_libftdi" = yes ; then
+ DRIVERS="$DRIVERS lis${SO}"
+ actdrivers=["$actdrivers lis"]
+ else
+ AC_MSG_WARN([The lis driver needs the ftdi library])
fi
;;
MD8800)
@@ -392,19 +376,12 @@ dnl else
actdrivers=["$actdrivers tyan"]
;;
ula200)
- AC_CHECK_HEADERS([usb.h ftdi.h],[
- AC_CHECK_LIB(ftdi, ftdi_set_line_property,[
- LIBFTDI="-lusb -lftdi"
- DRIVERS="$DRIVERS ula200${SO}"
- actdrivers=["$actdrivers ula200"]
- ],[
-dnl else
- AC_MSG_WARN([The ula200 driver needs the ftdi library in version 0.7])
- ])
- ],[
-dnl else
- AC_MSG_WARN([The ula200 driver needs ftdi.h and usb.h])
- ])
+ if test "$enable_libftdi" = yes ; then
+ DRIVERS="$DRIVERS ula200${SO}"
+ actdrivers=["$actdrivers ula200"]
+ else
+ AC_MSG_WARN([The ula200 driver needs the ftdi library])
+ fi
;;
xosd)
AC_CHECK_HEADERS([xosd.h],[
--- lcdproc.clean/server/drivers/Makefile.am 2007-08-06 09:00:30.000000000 +0200
+++ lcdproc-CVS-current-20070914/server/drivers/Makefile.am 2007-10-29 16:46:18.000000000 +0100
@@ -22,11 +22,11 @@ pkglib_PROGRAMS = @DRIVERS@
EXTRA_PROGRAMS = bayrad CFontz CFontz633 CFontzPacket curses CwLnx ea65 EyeboxOne g15 glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 lcdm001 lcterm lirc lis MD8800 ms6931 mtc_s16209x MtxOrb NoritakeVFD picolcd pyramid sed1330 sed1520 serialPOS serialVFD shuttleVFD stv5730 svga t6963 text tyan sli ula200 xosd
noinst_LIBRARIES = libLCD.a libbignum.a
-IOWarrior_CFLAGS = @libusb_cflags@ $(AM_CFLAGS)
-hd44780_CFLAGS = @libusb_cflags@ $(AM_CFLAGS)
-g15_CFLAGS = @libusb_cflags@ $(AM_CFLAGS)
-picolcd_CFLAGS = @libusb_cflags@ $(AM_CFLAGS)
-shuttleVFD_CFLAGS = @libusb_cflags@ $(AM_CFLAGS)
+IOWarrior_CFLAGS = @LIBUSB_CFLAGS@ $(AM_CFLAGS)
+hd44780_CFLAGS = @LIBUSB_CFLAGS@ $(AM_CFLAGS)
+g15_CFLAGS = @LIBUSB_CFLAGS@ $(AM_CFLAGS)
+picolcd_CFLAGS = @LIBUSB_CFLAGS@ $(AM_CFLAGS)
+shuttleVFD_CFLAGS = @LIBUSB_CFLAGS@ $(AM_CFLAGS)
CFontz_LDADD = libLCD.a libbignum.a
CFontz633_LDADD = libLCD.a libbignum.a
@@ -35,11 +35,11 @@ curses_LDADD = @LIBCURSES@
CwLnx_LDADD = libLCD.a libbignum.a
g15_LDADD = libLCD.a @LIBG15@
glcdlib_LDADD = libLCD.a @LIBGLCD@
-hd44780_LDADD = libLCD.a @HD44780_DRIVERS@ @libusb_libs@ libbignum.a
+hd44780_LDADD = libLCD.a @HD44780_DRIVERS@ @LIBUSB_LIBS@ libbignum.a
hd44780_DEPENDENCIES = @HD44780_DRIVERS@
icp_a106_LDADD = libLCD.a
imon_LDADD = libLCD.a
-IOWarrior_LDADD = @libusb_libs@ libLCD.a libbignum.a
+IOWarrior_LDADD = @LIBUSB_LIBS@ libLCD.a libbignum.a
irman_LDADD = @LIBIRMAN@
lcterm_LDADD = libLCD.a
lirc_LDADD = @LIBLIRC_CLIENT@
@@ -48,11 +48,11 @@ MD8800_LDADD = libLCD.a
mtc_s16209x_LDADD = libLCD.a
MtxOrb_LDADD = libLCD.a libbignum.a
NoritakeVFD_LDADD = libLCD.a
-picolcd_LDADD = @libusb_libs@ libLCD.a libbignum.a
+picolcd_LDADD = @LIBUSB_LIBS@ libLCD.a libbignum.a
pyramid_LDADD = libLCD.a
serialPOS_LDADD = libLCD.a libbignum.a
serialVFD_LDADD = libLCD.a libbignum.a
-shuttleVFD_LDADD = @libusb_libs@ libLCD.a libbignum.a
+shuttleVFD_LDADD = @LIBUSB_LIBS@ libLCD.a libbignum.a
svga_LDADD = @LIBSVGA@
t6963_LDADD = libLCD.a
tyan_LDADD = libLCD.a libbignum.a
--Boundary-00=_X4vJHFIi24mpeql--