]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2001-03-14 15:14:59 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 14 Mar 2001 15:14:59 +0000 (15:14 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 14 Mar 2001 15:14:59 +0000 (15:14 +0000)
added ppdev parallel port access

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@118 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

HD44780.c
NEWS
README.HD44780
TODO
config.h.in
configure
configure.in
lcd4linux.conf.sample

index f0a3d3ca4eb3af1dd035c58364383b6e0517bec8..6e0cd52c07f89c2d15e1576d3777dcee491d46aa 100644 (file)
--- a/HD44780.c
+++ b/HD44780.c
@@ -1,4 +1,4 @@
-/* $Id: HD44780.c,v 1.14 2001/03/12 13:44:58 reinelt Exp $
+/* $Id: HD44780.c,v 1.15 2001/03/14 15:14:59 reinelt Exp $
  *
  * driver for display modules based on the HD44780 chip
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: HD44780.c,v $
+ * Revision 1.15  2001/03/14 15:14:59  reinelt
+ * added ppdev parallel port access
+ *
  * Revision 1.14  2001/03/12 13:44:58  reinelt
  *
  * new udelay() using Time Stamp Counters
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <fcntl.h>
 #include <time.h>
 #include <errno.h>
+#include <sys/ioctl.h>
+
 #ifdef HAVE_SYS_IO_H
 #include <sys/io.h>
+#define WITH_OUTB
 #else
 #ifdef HAVE_ASM_IO_H
 #include <asm/io.h>
-#else
-#error "neither sys/io.h nor asm/io.h found!"
+#define WITH_OUTB
 #endif
 #endif
 
+#if defined (HAVE_LINUX_PARPORT_H) && defined (HAVE_LINUX_PPDEV_H)
+#define WITH_PPDEV
+#include <linux/parport.h>
+#include <linux/ppdev.h>
+#endif
+
+#if !defined(WITH_OUTB) && !defined(WITH_PPDEV)
+#error neither outb() nor ppdev() possible
+#error cannot compile HD44780 driver
+#endif
+
 #include "debug.h"
 #include "cfg.h"
 #include "display.h"
@@ -147,7 +164,16 @@ typedef struct {
 } SEGMENT;
 
 static LCD Lcd;
+
+
+#ifdef WITH_OUTB
 static unsigned short Port=0;
+#endif
+
+#ifdef WITH_PPDEV
+static char *PPdev=NULL;
+static int   PPfd=-1;
+#endif
 
 static char Txt[4][40];
 static BAR  Bar[4][40];
@@ -157,43 +183,142 @@ static int nSegment=2;
 static SEGMENT Segment[128] = {{ len1:0,   len2:0,   type:255, used:0, ascii:32 },
                               { len1:255, len2:255, type:255, used:0, ascii:255 }};
 
-static void HD_command (unsigned char cmd, int delay)
+#ifdef WITH_PPDEV
+static void HD_toggle (int bit)
 {
-  outb (cmd, Port);    // put data on DB1..DB8
-  outb (0x02, Port+2); // set Enable = bit 0 invertet
-  udelay (1);
-  outb (0x03, Port+2); // clear Enable
-  udelay (delay);
+  struct ppdev_frob_struct frob;
+
+  frob.mask=bit;
+  frob.val=0; // rise (inverted!)
+  ioctl (PPfd, PPFCONTROL, &frob);
+  udelay(1);
+  frob.val=bit; // lower (inverted!)
+  ioctl (PPfd, PPFCONTROL, &frob);
 }
+#endif
 
-static void HD_write (char *string, int len, int delay)
+static void HD_command (unsigned char cmd, int delay)
 {
-  while (len--) {
-    outb (*string++, Port); // put data on DB1..DB8
-    outb (0x00, Port+2);    // set Enable = bit 0 invertet
+  if (PPdev) {
+
+#ifdef WITH_PPDEV
+    struct ppdev_frob_struct frob;
+
+    // clear RS (inverted)
+    frob.mask=PARPORT_CONTROL_AUTOFD;
+    frob.val=PARPORT_CONTROL_AUTOFD;
+    ioctl (PPfd, PPFCONTROL, &frob);
+    
+    // put data on DB1..DB8
+    ioctl(PPfd, PPWDATA, &cmd);
+    
+    // send command
+    HD_toggle(PARPORT_CONTROL_STROBE);
+
+    // wait
+    udelay(delay);
+#endif
+
+  } else {
+
+#ifdef WITH_OUTB
+    outb (cmd, Port);    // put data on DB1..DB8
+    outb (0x02, Port+2); // set Enable = bit 0 invertet
     udelay (1);
-    outb (0x01, Port+2);    // clear Enable
+    outb (0x03, Port+2); // clear Enable
     udelay (delay);
+#endif
+
   }
 }
 
+static void HD_write (char *string, int len, int delay)
+{
+  if (PPdev) {
+
+    struct ppdev_frob_struct frob;
+
+    // set RS (inverted)
+    frob.mask=PARPORT_CONTROL_AUTOFD;
+    frob.val=0;
+    ioctl (PPfd, PPFCONTROL, &frob);
+    
+    while (len--) {
+
+      // put data on DB1..DB8
+      ioctl(PPfd, PPWDATA, string++);
+      
+      udelay(1);
+      // send command
+      HD_toggle(PARPORT_CONTROL_STROBE);
+
+      // wait
+      udelay(delay);
+    }
+    
+  } else {
+
+    while (len--) {
+      outb (*string++, Port); // put data on DB1..DB8
+      outb (0x00, Port+2);    // set Enable = bit 0 invertet
+      udelay (1);
+      outb (0x01, Port+2);    // clear Enable
+      udelay (delay);
+    }
+
+  }
+}
 static void HD_setGPO (int bits)
 {
+  
   if (Lcd.gpos>0) {
-    outb (bits, Port);    // put data on DB1..DB8
-    outb (0x05, Port+2);  // set INIT = bit 2 invertet
-    udelay (1);
-    outb (0x03, Port+2);  // clear INIT
-    udelay (1);
+
+    if (PPdev) {
+
+      // put data on DB1..DB8
+      ioctl(PPfd, PPWDATA, &bits);
+      
+      // toggle INIT
+      HD_toggle(PARPORT_CONTROL_INIT);
+
+    } else {
+      outb (bits, Port);    // put data on DB1..DB8
+      outb (0x05, Port+2);  // set INIT = bit 2 invertet
+      udelay (1);
+      outb (0x03, Port+2);  // clear INIT
+      udelay (1);
+    }
   }
 }
 
 static int HD_open (void)
 {
-  debug ("using port 0x%x", Port);
-  if (ioperm(Port, 3, 1)!=0) {
-    error ("HD44780: ioperm(0x%x) failed: %s", Port, strerror(errno));
-    return -1;
+
+  if (PPdev) {
+    debug ("using ppdev %s", PPdev);
+    PPfd=open(PPdev, O_RDWR);
+    if (PPfd==-1) {
+      error ("open(%s) failed: %s", PPdev, strerror(errno));
+      return -1;
+    }
+#if 0
+    if (ioctl(PPfd, PPEXCL)) {
+      error ("ioctl(%s, PPEXCL) failed: %s", PPdev, strerror(errno));
+      return -1;
+    }
+#endif
+    if (ioctl(PPfd, PPCLAIM)) {
+      error ("ioctl(%s, PPCLAIM) failed: %s", PPdev, strerror(errno));
+      return -1;
+    }
+  } else {
+
+    debug ("using raw port 0x%x", Port);
+    if (ioperm(Port, 3, 1)!=0) {
+      error ("HD44780: ioperm(0x%x) failed: %s", Port, strerror(errno));
+      return -1;
+    }
+
   }
 
   HD_command (0x30, 4100); // 8 Bit mode, wait 4.1 ms
@@ -402,11 +527,17 @@ int HD_init (LCD *Self)
     error ("HD44780: no 'Port' entry in %s", cfg_file());
     return -1;
   }
+  PPdev=NULL;
   if ((Port=strtol(s, &e, 0))==0 || *e!='\0') {
+#if 0
     error ("HD44780: bad port '%s' in %s", s, cfg_file());
     return -1;
+#endif
+    // use PPdev
+    Port=0;
+    PPdev=s;
   }    
-
+  
 #ifdef USE_OLD_UDELAY
   s=cfg_get ("Delay");
   if (s==NULL || *s=='\0') {
@@ -598,10 +729,18 @@ int HD_flush (void)
 
 int HD_quit (void)
 {
-  debug ("closing port 0x%x", Port);
-  if (ioperm(Port, 3, 0)!=0) {
-    error ("HD44780: ioperm(0x%x) failed: %s", Port, strerror(errno));
-    return -1;
+  if (PPdev) {
+    debug ("closing ppdev %s", PPdev);
+    if (close(PPfd)==-1) {
+      error ("close(%s) failed: %s", PPdev, strerror(errno));
+      return -1;
+    }
+  } else {
+    debug ("closing raw port 0x%x", Port);
+    if (ioperm(Port, 3, 0)!=0) {
+      error ("HD44780: ioperm(0x%x) failed: %s", Port, strerror(errno));
+      return -1;
+    }
   }
   return 0;
 }
diff --git a/NEWS b/NEWS
index 42236e7e0b309e87a2ff5468b1cdc3cfe9597017..8bf3ffb017b4d9ad1d02a6f5281bd8b04820dcf3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,8 @@ lcd4linux-0.98
 
 - simple web-server driver (see README.Webinterface)
 
+- uses new (kernel 2.4) ppdev system to access parallel port via ioctl()
+
 - mail suport for pop3 and imap4, token 'u1' ..'u9' show unseen mail
   (which is propably incorrect for normal mbox)
 
index 0389221bc22f3a8bf6e1a0b48cff22c9c5cebeb6..5fb762edd615291d6d46e37b7ffb8ce8d2ea22ca 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: README.HD44780,v 1.2 2000/04/19 04:44:20 reinelt Exp $
+# $Id: README.HD44780,v 1.3 2001/03/14 15:14:59 reinelt Exp $
 #
 
 This is the README file for the HD44780 display driver for lcd4linux
@@ -7,14 +7,31 @@ This is the README file for the HD44780 display driver for lcd4linux
 This driver supports all display modules based on the Hitachi HD44780 chip.
 These displays are made by different manufactures, and come in various sizes.
 
-The following types are known to work:
+At least the following types are known to work:
 
 DataVision DV16244: 2 lines by 16 characters
 Nan Ya NLC 08x2x06: 2 lines by  8 characters 
 
 The displays are connected to the parallel board (see Wiring below), and are quite timing-critical.
 There's no way to delay a usermode program under Linux for e.g. 40 usec, so we have to do 
-busy-waiting. This is done in a delay loop, which has to be calibrated (see Configuration below).
+busy-waiting. This is done in a delay loop, which had to be calibrated (see Configuration below).
+Since 0.98 there are two new delay loops, one based on the processor's TSC (Time Stamp Counter),
+one based on gettimeofday(). lcd4linux decides automatically which one to use (it prefers the
+TSC method, but falls back to gettimeofday() if neither the tsc flag nor the MHz value is set 
+in /proc/cpuinfo).
+
+The driver knows of two ways of controlling the parallel port: The (old, ugly and unportable) raw
+programming of ports, and the new, cool, great ppdev() style. You decide which one to use by 
+specifying either a hexadecimal value or a device file with the 'Port' entry in the config file.
+
+Note that the old port programming only works with standard ports (0x3f8, 2f8,...), but not 
+with PCI parallel port cards.
+
+ppdev requires kernel 2.4. The configure script detects if you have the required include files, 
+and deactivates ppdev if they are not there.
+
+You should use ppdev whenever possible. Raw port access may be dropped someday. 
+
 
 The driver supports vertical, horizontal and split bars (two independent bars in one line),
 all bar types can be used simultanously. As the displays only have 8 user-defined characters,
@@ -29,9 +46,17 @@ Configuration:
 The driver needs the following entries in lcd4linux.conf:
 
 Display: HD44780
-Port: the hexadecimal address of the parallel port (e.g. 0x378)
+
+Port: either the hexadecimal address of the parallel port (e.g. 0x378)
+      or a ppdev device (e.g. /dev/parports/0)
+
 Size: [columns]x[rows] e.g. "16x2"
+
+
+#ifdef USE_OLD_UDELAY
+
 Delay: calibration of the delay loop, loops per microsecond
+       THIS IS NO LONGER NECESSARY!
 
 It is very important to use a correct delay value, otherwise you will get only junk on the
 display. lcd4linux has a switch '-d' where it helps you to find the correct value. Run
@@ -43,10 +68,13 @@ The delay value is defined by your CPU model and clock frequency (it looks like
 'BogoMips' value divided by 2, because we use a similar delay loop than the kernel does). 
 Here are some examples:
 
-Pentium MMX, 133 MHz, 106 BogoMips:   54
-Pentium MMX, 166 MHz, 333 BogoMips:  166
-Celeron,     333 MHz, 333 BogoMips:  166
-Pentium III, 600 MHz, 600 BogoMips:  300
+Pentium MMX, 133 MHz,  106 BogoMips:   54
+Pentium MMX, 166 MHz,  333 BogoMips:  166
+Celeron,     333 MHz,  333 BogoMips:  166
+Pentium III, 600 MHz,  600 BogoMips:  300
+AMD Athlon  1010 MHz, 2012 BogoMips:  505 
+
+#endif
 
 
 Wiring:
diff --git a/TODO b/TODO
index 40707fc5df373ae39a948fca5c466f924a8454cf..d271295c215e680c48f67c63ac4e0d0db602f2f7 100644 (file)
--- a/TODO
+++ b/TODO
@@ -47,13 +47,14 @@ will be done with the big config-rework
 // replace T_EXTENDED with a Flag similar to 'bar'
 // rejected, T_EXTENDED does a good job  -mr
 
-2001-03-07 Michael Reinelt <reinelt@eunet.at>
-use ppdev instead of ugly outb()
+// 2001-03-07 Michael Reinelt <reinelt@eunet.at>
+// use ppdev instead of ugly outb()
+// done 2001-03-14 -mr
 
 // 2001-03-09 Michael Reinelt <reinelt@eunet.at>
 // replace udelay() assembly loop with rdtsc (read time stamp counter)
 // at least try to....
-// done -mr
+// done 2001-03-14 -mr
 
 2001-03-09 Leo Tötsch <lt@toetsch.at>
 read configuration file earlier (before forking) so that specific drivers
@@ -64,8 +65,8 @@ There's a reason for forking that early, but I forgot...
 remove USE_OLD_UDELAY after wide testing of new udelay code
 
 // 2001-03-12 Michael Reinelt <reinelt@eunet.at>
-// crate a NEWS file with changes/enhancements of every release
-// done -mr
+// create a NEWS file with changes/enhancements of every release
+// done 2001-03-13 -mr
 
 2001-03-14 Leopold Toetsch <lt@toetsch.at>
 improve unseen for mbox (check Status:)
index a52c5c435968b2782d8b049481cccfbc22af4099..a368aabfae1b161cad7a46ce4b8d7f05b7f386a4 100644 (file)
 /* Define if you have the <limits.h> header file.  */
 #undef HAVE_LIMITS_H
 
+/* Define if you have the <linux/parport.h> header file.  */
+#undef HAVE_LINUX_PARPORT_H
+
+/* Define if you have the <linux/ppdev.h> header file.  */
+#undef HAVE_LINUX_PPDEV_H
+
 /* Define if you have the <ndir.h> header file.  */
 #undef HAVE_NDIR_H
 
index 0344383242a1f877e220cb5a448e170854e3b320..499aad8298dabea46a00b9851ebfb0f2b327ae1a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.14 
+# Generated automatically using autoconf version 2.13 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -344,7 +344,7 @@ EOF
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.14"
+    echo "configure generated by autoconf version 2.13"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -1680,7 +1680,6 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char gethostbyname();
-char (*f)();
 
 int main() {
 
@@ -1690,12 +1689,12 @@ int main() {
 #if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
 choke me
 #else
-f = gethostbyname;
+gethostbyname();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -1716,7 +1715,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:1720: checking for gethostbyname in -lnsl" >&5
+echo "configure:1719: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1724,7 +1723,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1728 "configure"
+#line 1727 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1735,7 +1734,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:1739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1765,12 +1764,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:1769: checking for connect" >&5
+echo "configure:1768: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1774 "configure"
+#line 1773 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -1779,7 +1778,6 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char connect();
-char (*f)();
 
 int main() {
 
@@ -1789,12 +1787,12 @@ int main() {
 #if defined (__stub_connect) || defined (__stub___connect)
 choke me
 #else
-f = connect;
+connect();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -1815,7 +1813,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:1819: checking for connect in -lsocket" >&5
+echo "configure:1817: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1823,7 +1821,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1827 "configure"
+#line 1825 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1834,7 +1832,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:1838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1858,12 +1856,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:1862: checking for remove" >&5
+echo "configure:1860: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1867 "configure"
+#line 1865 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -1872,7 +1870,6 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char remove();
-char (*f)();
 
 int main() {
 
@@ -1882,12 +1879,12 @@ int main() {
 #if defined (__stub_remove) || defined (__stub___remove)
 choke me
 #else
-f = remove;
+remove();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -1908,7 +1905,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:1912: checking for remove in -lposix" >&5
+echo "configure:1909: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1916,7 +1913,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1920 "configure"
+#line 1917 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1927,7 +1924,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:1931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1951,12 +1948,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:1955: checking for shmat" >&5
+echo "configure:1952: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1960 "configure"
+#line 1957 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -1965,7 +1962,6 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char shmat();
-char (*f)();
 
 int main() {
 
@@ -1975,12 +1971,12 @@ int main() {
 #if defined (__stub_shmat) || defined (__stub___shmat)
 choke me
 #else
-f = shmat;
+shmat();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -2001,7 +1997,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:2005: checking for shmat in -lipc" >&5
+echo "configure:2001: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2009,7 +2005,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2013 "configure"
+#line 2009 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2020,7 +2016,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:2024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2053,7 +2049,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:2057: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:2053: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2061,7 +2057,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2065 "configure"
+#line 2061 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2072,7 +2068,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:2076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2098,7 +2094,7 @@ fi
 
 
 echo $ac_n "checking which drivers to compile""... $ac_c" 1>&6
-echo "configure:2102: checking which drivers to compile" >&5
+echo "configure:2098: checking which drivers to compile" >&5
 # Check whether --with-drivers or --without-drivers was given.
 if test "${with_drivers+set}" = set; then
   withval="$with_drivers"
@@ -2289,12 +2285,12 @@ fi
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2293: checking for ANSI C header files" >&5
+echo "configure:2289: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2298 "configure"
+#line 2294 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2302,7 +2298,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2319,7 +2315,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2323 "configure"
+#line 2319 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2337,7 +2333,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2341 "configure"
+#line 2337 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2358,7 +2354,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2362 "configure"
+#line 2358 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2369,7 +2365,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:2373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2397,12 +2393,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:2401: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2397: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2406 "configure"
+#line 2402 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -2410,7 +2406,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -2435,7 +2431,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:2439: checking for opendir in -ldir" >&5
+echo "configure:2435: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2443,7 +2439,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2447 "configure"
+#line 2443 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2454,7 +2450,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2476,7 +2472,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2480: checking for opendir in -lx" >&5
+echo "configure:2476: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2484,7 +2480,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2488 "configure"
+#line 2484 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2495,7 +2491,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2518,12 +2514,12 @@ fi
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2522: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2518: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2527 "configure"
+#line 2523 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2539,7 +2535,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2563,17 +2559,17 @@ for ac_hdr in fcntl.h limits.h strings.h sys/ioctl.h sys/time.h syslog.h unistd.
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2567: checking for $ac_hdr" >&5
+echo "configure:2563: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2572 "configure"
+#line 2568 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2577: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2603,17 +2599,57 @@ for ac_hdr in sys/io.h asm/io.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2607: checking for $ac_hdr" >&5
+echo "configure:2603: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2612 "configure"
+#line 2608 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2617: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in linux/parport.h linux/ppdev.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2643: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2648 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2653: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2643,17 +2679,17 @@ for ac_hdr in gd/gd.h gd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2647: checking for $ac_hdr" >&5
+echo "configure:2683: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2652 "configure"
+#line 2688 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2683,17 +2719,17 @@ for ac_hdr in net/if_ppp.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2687: checking for $ac_hdr" >&5
+echo "configure:2723: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2692 "configure"
+#line 2728 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2723,17 +2759,17 @@ for ac_hdr in asm/msr.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2727: checking for $ac_hdr" >&5
+echo "configure:2763: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2732 "configure"
+#line 2768 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2737: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2773: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2761,12 +2797,12 @@ done
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2765: checking for working const" >&5
+echo "configure:2801: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2770 "configure"
+#line 2806 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2815,7 +2851,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:2819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2836,21 +2872,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2840: checking for inline" >&5
+echo "configure:2876: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 2847 "configure"
+#line 2883 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:2854: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -2876,12 +2912,12 @@ EOF
 esac
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:2880: checking for pid_t" >&5
+echo "configure:2916: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2885 "configure"
+#line 2921 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2909,12 +2945,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2913: checking for size_t" >&5
+echo "configure:2949: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2918 "configure"
+#line 2954 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2942,12 +2978,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2946: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2982: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2951 "configure"
+#line 2987 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -2956,7 +2992,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:2960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -2977,12 +3013,12 @@ EOF
 fi
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:2981: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:3017: checking whether struct tm is in sys/time.h or time.h" >&5
 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2986 "configure"
+#line 3022 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -2990,7 +3026,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:2994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3030: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -3011,12 +3047,12 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3015: checking for uid_t in sys/types.h" >&5
+echo "configure:3051: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3020 "configure"
+#line 3056 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3047,13 +3083,13 @@ fi
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:3051: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:3087: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 3057 "configure"
+#line 3093 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -3071,7 +3107,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 3075 "configure"
+#line 3111 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -3093,7 +3129,7 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
 fi
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3097: checking for 8-bit clean memcmp" >&5
+echo "configure:3133: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3101,7 +3137,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3105 "configure"
+#line 3141 "configure"
 #include "confdefs.h"
 
 main()
@@ -3111,7 +3147,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -3129,12 +3165,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3133: checking return type of signal handlers" >&5
+echo "configure:3169: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3138 "configure"
+#line 3174 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3151,7 +3187,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3172,12 +3208,12 @@ EOF
 for ac_func in gettimeofday putenv select socket strdup strerror strstr strtol uname
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3176: checking for $ac_func" >&5
+echo "configure:3212: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3181 "configure"
+#line 3217 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3186,7 +3222,6 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
 
 int main() {
 
@@ -3196,12 +3231,12 @@ int main() {
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:3205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3316,7 +3351,7 @@ do
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.14"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
index 959444b3674e80a0cab9a92fe71caf67b7fa428c..e182668c5b18058255a109c669729317ec8d2fa0 100644 (file)
@@ -184,6 +184,7 @@ AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT
 AC_CHECK_HEADERS(fcntl.h limits.h strings.h sys/ioctl.h sys/time.h syslog.h unistd.h)
 AC_CHECK_HEADERS(sys/io.h asm/io.h)
+AC_CHECK_HEADERS(linux/parport.h linux/ppdev.h)
 AC_CHECK_HEADERS(gd/gd.h gd.h)
 AC_CHECK_HEADERS(net/if_ppp.h)
 AC_CHECK_HEADERS(asm/msr.h)
index a0870a7a7b7dc285f224dec42cce7c903d528853..cf24bd7fbe42c74cf29960b04e2357c1478fc81c 100644 (file)
@@ -1,11 +1,12 @@
-Display LCD2041
-Port /dev/ttyS2
-Speed 19200
-Contrast 160
-
-#Display HD44780
-#Port 0x278
-#Size 24x2
+#Display LCD2041
+#Port /dev/ttyS2
+#Speed 19200
+#Contrast 160
+
+Display HD44780
+#Port 0x378
+Port /dev/parports/1
+Size 24x2
 #Delay 503
 
 #Display BLC100x