]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2000-03-10 17:36:02 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Fri, 10 Mar 2000 17:36:02 +0000 (17:36 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Fri, 10 Mar 2000 17:36:02 +0000 (17:36 +0000)
first unstable but running release

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

14 files changed:
Makefile [deleted file]
Makefile.am
Makefile.in
MatrixOrbital.c
cfg.c
configure [new file with mode: 0755]
display.c
display.h
isdn.c
isdn.h
lcd4linux.c
lcd4linux.conf.sample
system.c
system.h

diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index e69de29..0000000
index 3913f9d01e70c59afe065d253291e3195e7f2300..f75d8b5f676bf9f90fd925248bcb3a2e175493c8 100644 (file)
@@ -2,6 +2,10 @@
 
 AUTOMAKE_OPTIONS = foreign
 
+CLEANFILES = *~
+CFLAGS = -Wall -O2
+
 bin_PROGRAMS = lcd4linux
-lcd4linux_SOURCES = lcd4linux.c
+lcd4linux_SOURCES = lcd4linux.c cfg.c display.c filter.c system.c isdn.c MatrixOrbital.c
+
 
index 0671753c3639bd374d95846701417c65cf9d42b1..080f5bbb263132692e7906c08a434c9f5dc77466 100644 (file)
@@ -64,8 +64,11 @@ VERSION = @VERSION@
 
 AUTOMAKE_OPTIONS = foreign
 
+CLEANFILES = *~
+CFLAGS = -Wall -O2
+
 bin_PROGRAMS = lcd4linux
-lcd4linux_SOURCES = lcd4linux.c
+lcd4linux_SOURCES = lcd4linux.c cfg.c display.c filter.c system.c isdn.c MatrixOrbital.c
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -76,11 +79,11 @@ DEFS = @DEFS@ -I. -I$(srcdir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-lcd4linux_OBJECTS =  lcd4linux.o
+lcd4linux_OBJECTS =  lcd4linux.o cfg.o display.o filter.o system.o \
+isdn.o MatrixOrbital.o
 lcd4linux_LDADD = $(LDADD)
 lcd4linux_DEPENDENCIES = 
 lcd4linux_LDFLAGS = 
-CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
@@ -92,7 +95,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 TAR = tar
 GZIP_ENV = --best
-DEP_FILES =  .deps/lcd4linux.P
+DEP_FILES =  .deps/MatrixOrbital.P .deps/cfg.P .deps/display.P \
+.deps/filter.P .deps/isdn.P .deps/lcd4linux.P .deps/system.P
 SOURCES = $(lcd4linux_SOURCES)
 OBJECTS = $(lcd4linux_OBJECTS)
 
@@ -303,6 +307,7 @@ installdirs:
 mostlyclean-generic:
 
 clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
        -rm -f Makefile $(CONFIG_CLEAN_FILES)
index 56e20912bc7ba9a34f4fa46df11d76260e5540f6..f59a81ebe97eebb9e0609525f808bf3242ebf12c 100644 (file)
@@ -1,3 +1,40 @@
+/* $Id: MatrixOrbital.c,v 1.4 2000/03/10 17:36:02 reinelt Exp $
+ *
+ *  driver for Matrix Orbital serial display modules
+ *
+ * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ * $Log: MatrixOrbital.c,v $
+ * Revision 1.4  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
+ *
+ */
+
+/* 
+ *
+ * exported fuctions:
+ *
+ * struct DISPLAY MatrixOrbital[]
+ *
+ */
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
@@ -6,7 +43,7 @@
 #include <string.h>
 #include <errno.h>
 
-#include "config.h"
+#include "cfg.h"
 #include "display.h"
 
 #define XRES 5
@@ -39,8 +76,6 @@ static int nSegment=2;
 static SEGMENT Segment[256] = {{ len1:   0, len2:   0, type:255, used:0, ascii:32 },
                               { len1:XRES, len2:XRES, type:255, used:0, ascii:255 }};
 
-#define CL 0x0b
-
 
 static int MO_open (void)
 {
@@ -149,6 +184,7 @@ static void MO_compact_bars (void)
     while (nSegment>CHARS+2) {
       min=65535;
       pack_i=-1;
+      pack_j=-1;
       for (i=2; i<nSegment; i++) {
        for (j=0; j<nSegment; j++) {
          if (error[i][j]<min) {
@@ -219,7 +255,7 @@ int MO_clear (void)
 
   for (row=0; row<Display.rows; row++) {
     for (col=0; col<Display.cols; col++) {
-      Txt[row][col]=CL;
+      Txt[row][col]='\t';
       Bar[row][col].len1=-1;
       Bar[row][col].len2=-1;
       Bar[row][col].type=0;
@@ -330,10 +366,10 @@ int MO_flush (void)
       }
     }
     for (col=0; col<Display.cols; col++) {
-      if (Txt[row][col]==CL) continue;
+      if (Txt[row][col]=='\t') continue;
       buffer[2]=col+1;
       for (p=buffer+4; col<Display.cols; col++, p++) {
-       if (Txt[row][col]==CL) break;
+       if (Txt[row][col]=='\t') break;
        *p=Txt[row][col];
       }
       MO_write (buffer, p-buffer);
diff --git a/cfg.c b/cfg.c
index c0245a73015d503805b793ca524a47ea663785b1..4b97a0a243f23185f3f60ed6450d208a5d5b6bf5 100644 (file)
--- a/cfg.c
+++ b/cfg.c
@@ -1,4 +1,4 @@
-/* $Id: cfg.c,v 1.1 2000/03/10 11:40:47 reinelt Exp $
+/* $Id: cfg.c,v 1.2 2000/03/10 17:36:02 reinelt Exp $
  *
  * config file stuff
  *
  *
  *
  * $Log: cfg.c,v $
+ * Revision 1.2  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.1  2000/03/10 11:40:47  reinelt
  * *** empty log message ***
  *
@@ -31,7 +35,6 @@
  *
  * minor cleanups
  *
- *
  */
 
 /* 
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..75dae57
--- /dev/null
+++ b/configure
@@ -0,0 +1,1677 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# 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
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=lcd4linux.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='       '
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:556: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+         if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         else
+           ac_cv_path_install="$ac_dir/$ac_prog -c"
+           break 2
+         fi
+       fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:609: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftestfile`
+   fi
+   if test "$*" != "X $srcdir/configure conftestfile" \
+      && test "$*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+   fi
+
+   test "$2" = conftestfile
+   )
+then
+   # Ok.
+   :
+else
+   { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+  program_transform_name=
+else
+  # Double any \ or $.  echo might interpret backslashes.
+  cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+  rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:666: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftestmake <<\EOF
+all:
+       @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  SET_MAKE=
+else
+  echo "$ac_t""no" 1>&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=lcd4linux
+
+VERSION=0.8
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
+missing_dir=`cd $ac_aux_dir && pwd`
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:712: checking for working aclocal" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+   ACLOCAL=aclocal
+   echo "$ac_t""found" 1>&6
+else
+   ACLOCAL="$missing_dir/missing aclocal"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:725: checking for working autoconf" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+   AUTOCONF=autoconf
+   echo "$ac_t""found" 1>&6
+else
+   AUTOCONF="$missing_dir/missing autoconf"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:738: checking for working automake" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (automake --version) < /dev/null > /dev/null 2>&1; then
+   AUTOMAKE=automake
+   echo "$ac_t""found" 1>&6
+else
+   AUTOMAKE="$missing_dir/missing automake"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:751: checking for working autoheader" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+   AUTOHEADER=autoheader
+   echo "$ac_t""found" 1>&6
+else
+   AUTOHEADER="$missing_dir/missing autoheader"
+   echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:764: checking for working makeinfo" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+   MAKEINFO=makeinfo
+   echo "$ac_t""found" 1>&6
+else
+   MAKEINFO="$missing_dir/missing makeinfo"
+   echo "$ac_t""missing" 1>&6
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:781: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:811: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+       continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:862: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:894: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 905 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:936: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:941: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:950: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:969: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+
+
+echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
+echo "configure:1002: checking for main in -lm" >&5
+ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1010 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:1017: \"$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
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1046: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 1061 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1067: \"$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
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 1078 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1084: \"$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
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 1095 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1101: \"$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
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1126: 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 1131 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1139: \"$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*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+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 1156 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+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 1174 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1195 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:1206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+for ac_hdr in fcntl.h sys/ioctl.h sys/time.h unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1233: 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 1238 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1243: \"$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
+
+
+echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+echo "configure:1271: 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 1276 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+int main() {
+struct tm *tp;
+; return 0; }
+EOF
+if { (eval echo configure:1285: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_time=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_time=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_time" 1>&6
+if test $ac_cv_header_time = yes; then
+  cat >> confdefs.h <<\EOF
+#define TIME_WITH_SYS_TIME 1
+EOF
+
+fi
+
+
+if test $ac_cv_prog_gcc = yes; then
+    echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
+echo "configure:1308: 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 1314 "configure"
+#include "confdefs.h"
+#include <sgtty.h>
+Autoconf TIOCGETP
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "$ac_pattern" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_prog_gcc_traditional=yes
+else
+  rm -rf conftest*
+  ac_cv_prog_gcc_traditional=no
+fi
+rm -f conftest*
+
+
+  if test $ac_cv_prog_gcc_traditional = no; then
+    cat > conftest.$ac_ext <<EOF
+#line 1332 "configure"
+#include "confdefs.h"
+#include <termio.h>
+Autoconf TCGETA
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "$ac_pattern" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_prog_gcc_traditional=yes
+fi
+rm -f conftest*
+
+  fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
+  if test $ac_cv_prog_gcc_traditional = yes; then
+    CC="$CC -traditional"
+  fi
+fi
+
+for ac_func in gettimeofday strdup strerror strstr strtol uname
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1356: 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 1361 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1384: \"$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
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[    `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    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.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@CC@%$CC%g
+s%@CPP@%$CPP%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
index 902f51498ae949bc3511e9c374bd1137a344cedc..e3f6aee4ce219e3114fd43d6785d452865725f0f 100644 (file)
--- a/display.c
+++ b/display.c
@@ -1,4 +1,4 @@
-/* $Id: display.c,v 1.3 2000/03/10 10:49:53 reinelt Exp $
+/* $Id: display.c,v 1.4 2000/03/10 17:36:02 reinelt Exp $
  *
  * framework for device drivers
  *
  *
  *
  * $Log: display.c,v $
+ * Revision 1.4  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.3  2000/03/10 10:49:53  reinelt
  *
  * MatrixOrbital driver finished
  *
  * minor cleanups
  *
+ */
+
+/* 
+ * exported functions:
+ *
+ * lcd_init (char *display)
+ *    initializes the named driver
+ *
+ * lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars)
+ *    queries the attributes of the selected driver
+ *
+ * lcd_clear ()
+ *    clears the display
+ *
+ * int lcd_put (int row, int col, char *text)
+ *    writes text at row, col
+ *
+ * int lcd_bar (int type, int row, int col, int max, int len1, int len2)
+ *    draws a specified bar at row, col with len
+ *
+ * int lcd_flush (void)
+ *    flushes the framebuffer to the display
  *
  */
 
 #include <stdlib.h>
 #include <stdio.h>
 
-#include "config.h"
+#include "cfg.h"
 #include "display.h"
 
 extern DISPLAY MatrixOrbital[];
@@ -62,6 +88,20 @@ int lcd_init (char *display)
   return -1;
 }
 
+int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars)
+{
+  if (Display==NULL)
+    return -1;
+  
+  *rows=Display->rows;
+  *cols=Display->cols;
+  *xres=Display->xres;
+  *yres=Display->yres;
+  *bars=Display->bars;
+
+  return 0;
+}
+
 int lcd_clear (void)
 {
   return Display->clear();
index 58cd23b975db6ffcbaf46d7778e85bb3d7bf88ff..0a2bb95c7cbcca21dc424aaad98c8a00b2eea49b 100644 (file)
--- a/display.h
+++ b/display.h
@@ -1,4 +1,4 @@
-/* $Id: display.h,v 1.4 2000/03/10 10:49:53 reinelt Exp $
+/* $Id: display.h,v 1.5 2000/03/10 17:36:02 reinelt Exp $
  *
  * framework for device drivers
  *
  *
  *
  * $Log: display.h,v $
+ * Revision 1.5  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.4  2000/03/10 10:49:53  reinelt
  *
  * MatrixOrbital driver finished
@@ -31,7 +35,6 @@
  * Revision 1.2  2000/01/16 16:58:50  reinelt
  * *** empty log message ***
  *
- *
  */
 
 #ifndef _DISPLAY_H_
@@ -41,7 +44,7 @@
 #define BAR_R 2
 #define BAR_U 4
 #define BAR_D 8
-#define BAR_S 256
+#define BAR_S 16
 
 typedef struct DISPLAY {
   char name[16];
@@ -63,6 +66,7 @@ typedef struct {
 } FAMILY;
 
 int lcd_init (char *display);
+int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars);
 int lcd_clear (void);
 int lcd_put (int row, int col, char *text);
 int lcd_bar (int type, int row, int col, int max, int len1, int len2);
diff --git a/isdn.c b/isdn.c
index e5e7b68232b9f1c476bcc0b55d47010b7af69dcd..f6dfc4b92bbf0177b31b02adf022e727cf034e4b 100644 (file)
--- a/isdn.c
+++ b/isdn.c
@@ -1,4 +1,4 @@
-/* $Id: isdn.c,v 1.3 2000/03/07 11:01:34 reinelt Exp $
+/* $Id: isdn.c,v 1.4 2000/03/10 17:36:02 reinelt Exp $
  *
  * ISDN specific functions
  *
  *
  *
  * $Log: isdn.c,v $
+ * Revision 1.4  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.3  2000/03/07 11:01:34  reinelt
  *
  * system.c cleanup
@@ -34,7 +38,7 @@
 /* 
  * exported functions:
  *
- * Isdn (int *usage, int *rx, int *tx)
+ * Isdn (int *rx, int *tx, int *usage)
  *   returns 0 if ok, -1 if error
  *   sets *usage to all channels USAGE or'ed together
  *   sets received/transmitted bytes in *rx, *tx
@@ -101,7 +105,7 @@ static int Usage (void)
   return usage;
 }
 
-int Isdn (int *usage, int *rx, int *tx)
+int Isdn (int *rx, int *tx, int *usage)
 {
   static int fd=-2;
   CPS cps[ISDN_MAX_CHANNELS];
diff --git a/isdn.h b/isdn.h
index 93416dd7b4451a20d767268236a66b444940af64..bfb15c5a122e120ec20e45ca61ada1e43abb0801 100644 (file)
--- a/isdn.h
+++ b/isdn.h
@@ -1,4 +1,4 @@
-/* $Id: isdn.h,v 1.3 2000/03/07 11:01:34 reinelt Exp $
+/* $Id: isdn.h,v 1.4 2000/03/10 17:36:02 reinelt Exp $
  *
  * ISDN specific functions
  *
  *
  *
  * $Log: isdn.h,v $
+ * Revision 1.4  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.3  2000/03/07 11:01:34  reinelt
  *
  * system.c cleanup
  *
  * minor cleanups
  *
- *
  */
 
 #ifndef _ISDN_H_
 #define _ISDN_H_
 
-int Isdn (int *usage, int *rx, int *tx);
+int Isdn (int *rx, int *tx,int *usage);
 
 #endif
index 9dbe92f9e76d92f72d5515f1480db374e6cc82db..dc43064623872365749cb69439d73e90601256c0 100644 (file)
@@ -1,3 +1,32 @@
+/* $Id: lcd4linux.c,v 1.2 2000/03/10 17:36:02 reinelt Exp $
+ *
+ * LCD4Linux
+ *
+ * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ * $Log: lcd4linux.c,v $
+ * Revision 1.2  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
+ *
+ */
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
 #include <math.h>
 
-#include "config.h"
-#include "lcd2041.h"
+#include "cfg.h"
+#include "display.h"
 #include "system.h"
 #include "isdn.h"
 
-int tick, tack, tau;
+#define ROWS 16
+
 double overload;
-double temp_min, temp_max;
-char *sensor;
+int tick, tack, tau;
+int rows, cols, xres, yres, bars;
 char *row[ROWS];
 
 void usage(void)
 {
-  printf ("LCD4Linux " VERSION " (c) 1999 Michael Reinelt <reinelt@eunet.at>");
-  printf ("usage: LCD4Linux [configuration]\n");
+  printf ("LCD4Linux " VERSION " (c) 2000 Michael Reinelt <reinelt@eunet.at>");
+  printf ("usage: lcd4linux [configuration]\n");
+}
+
+int bar_type (char tag)
+{
+  switch (tag) {
+  case 'l':
+    return BAR_L;
+  case 'r':
+    return BAR_R;
+  case 'u':
+    return BAR_U;
+  case 'd':
+    return BAR_D;
+  default:
+    return 0;
+  }
+}
+
+int strpos (char *s, int c)
+{
+  int i;
+  char *p;
+  for (p=s, i=0; *p; p++, i++) {
+    if (*p==c) return i;
+  }
+  return -1;
+}
+  
+int print4f (char *p, double val)
+{
+  if (val<10.0) {
+    return sprintf (p, "%4.2f", val);
+  } else if (val<100.0) {
+    return sprintf (p, "%4.1f", val);
+  } else {
+    return sprintf (p, "%4.0f", val);
+  }
 }
 
 char *parse (char *string)
 {
+  int pos;
   static char buffer[256];
   char *s=string;
   char *p=buffer;
 
   do {
     if (*s=='%') {
-      if (strchr("orpmlLbtdDnNiI%", *++s)==NULL) {
+      if (strchr("orpmlLcdDnNiIs%", *++s)==NULL) {
        fprintf (stderr, "WARNING: unknown format <%%%c> in <%s>\n", *s, string);
        continue;
       } 
       *p='%';
       *(p+1)=*s;
       switch (*s) {
+      case 'l':
+       pos=strpos("123", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown Load tag <%%l%c> in <%s>\n", *s, string);
+         continue;
+       } 
+       *(p+2)=pos+1;
+       p+=3;
+       break;
+      case 'c':
+       pos=strpos("unsi", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown CPU tag <%%c%c> in <%s>\n", *s, string);
+         continue;
+       } 
+       *(p+2)=pos+1;
+       p+=3;
+       break;
       case 'd':
-       if (strchr("rwmt", *++s)==NULL) {
-         fprintf (stderr, "WARNING: unknown disk tag <%%i%c> in <%s>\n", *s, string);
+       pos=strpos("rwtm", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown disk tag <%%d%c> in <%s>\n", *s, string);
          continue;
        } 
-       *(p+2)=*s;
+       *(p+2)=pos+1;
        p+=3;
        break;
       case 'n':
-       if (strchr("rwmt", *++s)==NULL) {
-         fprintf (stderr, "WARNING: unknown net tag <%%i%c> in <%s>\n", *s, string);
+       pos=strpos("iotm", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown net tag <%%n%c> in <%s>\n", *s, string);
          continue;
        } 
-       *(p+2)=*s;
+       *(p+2)=pos+1;
        p+=3;
        break;
       case 'i':
-       if (strchr("iomt", *++s)==NULL) {
+       pos=strpos("iotm", *++s);
+       if (pos<0) {
          fprintf (stderr, "WARNING: unknown ISDN tag <%%i%c> in <%s>\n", *s, string);
          continue;
        } 
-       *(p+2)=*s;
+       *(p+2)=pos+1;
+       p+=3;
+       break;
+      case 's':
+       pos=strpos("123456789", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown sensor <%%s%c> in <%s>\n", *s, string);
+         continue;
+       } 
+       *(p+2)=pos+1;
        p+=3;
        break;
       default:
@@ -66,57 +164,91 @@ char *parse (char *string)
       }
       
     } else if (*s=='$') {
-      char hv, dir;
+      char dir;
+      int type;
       int len=0;
-      hv=*++s;
-      if (tolower(hv)!='h' && tolower(hv)!='v') {
-       fprintf (stderr, "invalid bar orientation '%c' in <%s>\n", hv, string);
+      dir=*++s;
+      if (dir=='$') {
+       *p++='$';
+       *p++='$';
        continue;
       }
-      s++;
-      if (isdigit(*s)) len=strtol(s, &s, 10);
-      if (len<1 || len>255) {
-       fprintf (stderr, "invalid bar length in <%s>\n", string);
+      if (strchr("lrud", tolower(dir))==NULL) {
+       fprintf (stderr, "invalid bar direction '%c' in <%s>\n", dir, string);
        continue;
       }
-      dir=*s++;
-      if ((tolower(hv)=='h' && dir!='l' && dir !='r') || (tolower(hv)=='v' && dir!='u' && dir !='d')) {
-       fprintf (stderr, "invalid bar direction '%c' in <%s>\n", dir, string);
+      type=bar_type(tolower(dir));
+      if (type==0) {
+       fprintf (stderr, "driver does not support bar type '%c'\n", dir);
+       continue;
+      }
+      if (isdigit(*++s)) len=strtol(s, &s, 10);
+      if (len<1 || len>255) {
+       fprintf (stderr, "invalid bar length in <%s>\n", string);
        continue;
       }
       *p='$';
-      *(p+1)=hv;
+      *(p+1)=isupper(dir)?-type:type;
       *(p+2)=len;
-      if (dir=='r' || dir=='u') *(p+3)='0';
-      else *(p+3)='1';
-      *(p+4)=*s;
+      *(p+3)=*s;
       switch (*s) {
+      case 'l':
+       pos=strpos("123", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown Load tag <$l%c> in <%s>\n", *s, string);
+         continue;
+       } 
+       *(p+4)=pos+1;
+       p+=5;
+       break;
+      case 'c':
+       pos=strpos("unsi", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown CPU tag <$d%c> in <%s>\n", *s, string);
+         continue;
+       } 
+       *(p+4)=pos+1;
+       p+=5;
+       break;
       case 'd':
-       if (strchr("rwmt", *++s)==NULL) {
-         fprintf (stderr, "WARNING: unknown disk tag <$i*%c> in <%s>\n", *s, string);
+       pos=strpos("rwm", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown disk tag <$d%c> in <%s>\n", *s, string);
          continue;
        } 
-       *(p+5)=*s;
-       p+=6;
+       *(p+4)=pos+1;
+       p+=5;
        break;
       case 'n':
-       if (strchr("rwmt", *++s)==NULL) {
-         fprintf (stderr, "WARNING: unknown net tag <$i*%c> in <%s>\n", *s, string);
+       pos=strpos("iom", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown net tag <$n%c> in <%s>\n", *s, string);
          continue;
        } 
-       *(p+5)=*s;
-       p+=6;
+       *(p+4)=pos+1;
+       p+=5;
        break;
       case 'i':
-       if (strchr("iomt", *++s)==NULL) {
-         fprintf (stderr, "WARNING: unknown ISDN tag <$i*%c> in <%s>\n", *s, string);
+       pos=strpos("iom", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown ISDN tag <$i%c> in <%s>\n", *s, string);
          continue;
        } 
-       *(p+5)=*s;
-       p+=6;
+       *(p+4)=pos+1;
+       p+=5;
        break;
-      default:
+      case 's':
+       pos=strpos("123456789", *++s);
+       if (pos<0) {
+         fprintf (stderr, "WARNING: unknown sensor <$s%c> in <%s>\n", *s, string);
+         continue;
+       } 
+       *(p+4)=pos+1;
        p+=5;
+       break;
+      default:
+       fprintf (stderr, "WARNING: unknown bar format <$%c> in <%s>\n", *s, string);
+       p+=4;
       }
       
     } else if (*s=='\\') {
@@ -144,31 +276,37 @@ char *parse (char *string)
 }
 
 
-void display (int smooth) {
-  static double disk_max=1.0;
-  static double net_max=1.0;
-  double busy, load, temp, disk, net, isdn;
-  int disk_r, disk_w;
-  int net_tx, net_rx;
-  int isdn_usage, isdn_in, isdn_out;
+void draw (int smooth)
+{
+  double load[3];
+  double busy[4];
+  int disk[4]; static int disk_peak=1;
+  int net[4]; static int net_peak=1;
+  int isdn[4]; int isdn_usage; static int isdn_peak=1;
   char buffer[256];
-  int i;
+  double val;
+  int i, r;
   
-  busy=Busy();
-  load=Load();
-  Disk (&disk_r, &disk_w);
-  Net (&net_rx, &net_tx);
-  temp=Temperature();
-  isdn_usage=Isdn(&isdn_in, &isdn_out);
+  Busy (&busy[0], &busy[1], &busy[2], &busy[3]);
+  Load (&load[0], &load[1], &load[2]);
+
+  Disk (&disk[0], &disk[1]);
+  disk[2]=disk[0]+disk[1];
+  disk[3]=disk[0]>disk[1]?disk[0]:disk[1];
+  if (disk[3]>disk_peak) disk_peak=disk[3];
 
-  if (disk_r>disk_max) disk_max=disk_r;
-  if (disk_w>disk_max) disk_max=disk_w;
+  Net (&net[0], &net[1]);
+  net[2]=net[0]+net[1];
+  net[3]=net[0]>net[1]?net[0]:net[1];
+  if (net[3]>net_peak) net_peak=net[3];
 
-  if (net_rx>net_max) net_max=net_rx;
-  if (net_tx>net_max) net_max=net_tx;
+  Isdn (&isdn[0], &isdn[1], &isdn_usage);
+  isdn[2]=isdn[0]+isdn[1];
+  isdn[3]=isdn[0]>isdn[1]?isdn[0]:isdn[1];
+  if (isdn[3]>isdn_peak) isdn_peak=isdn[3];
   
-  for (i=0; i<ROWS; i++) {
-    char *s=row[i];
+  for (r=1; r<=rows; r++) {
+    char *s=row[r];
     char *p=buffer;
     do {
       if (*s=='%') {
@@ -189,231 +327,104 @@ void display (int smooth) {
          p+=sprintf (p, "%d", Memory());
          break;
        case 'l':
-         if (load<10.0)
-           p+=sprintf (p, "%4.2f", load);
-         else
-           p+=sprintf (p, "%4.1f", load);
+         p+=print4f (p, load[*++s-1]);
          break;
        case 'L':
-         *p++=load>overload?'!':' ';
+         *p++=load[0]>overload?'!':' ';
          break;
-       case 'b':
-         p+=sprintf (p, "%3.0f", 100.0*busy);
+       case 'c':
+         p+=sprintf (p, "%3.0f", 100.0*busy[*++s-1]);
          break;
        case 'd':
-         switch (*++s) {
-         case 'r':
-           disk=disk_r;
-           break;
-         case 'w':
-           disk=disk_w;
-           break;
-         case 'm':
-           disk=disk_r>disk_w?disk_r:disk_w;
-           break;
-         default:
-           disk=disk_r+disk_w;
-           break;
-         }
-         disk/=1024;
-         if (disk<10.0) {
-           p+=sprintf (p, "%4.2f", disk);
-         } else if (disk<100.0) {
-           p+=sprintf (p, "%4.1f", disk);
-         } else {
-           p+=sprintf (p, "%4.0f", disk);
-         }
+         p+=print4f (p, disk[*++s-1]);
          break;
        case 'D':
-         if (disk_r+disk_w==0)
+         if (disk[0]+disk[1]==0)
            *p++=' ';
          else
-           *p++=disk_r>disk_w?'\176':'\177';
+           *p++=disk[0]>disk[1]?'\176':'\177';
          break;
        case 'n':
-         switch (*++s) {
-         case 'r':
-           net=net_rx;
-           break;
-         case 'w':
-           net=net_tx;
-           break;
-         case 'm':
-           net=net_rx>net_tx?net_rx:net_tx;
-           break;
-         default:
-           net=net_rx+net_tx;
-           break;
-         }
-         net/=1024.0;
-         if (net<10.0) {
-           p+=sprintf (p, "%4.2f", net);
-         } else if (net<100.0) {
-           p+=sprintf (p, "%4.1f", net);
-         } else {
-           p+=sprintf (p, "%4.0f", net);
-         }
+         p+=print4f (p, net[*++s-1]/1024.0);
          break;
        case 'N':
-         if (net_rx+net_tx==0)
+         if (net[0]+net[1]==0)
            *p++=' ';
          else
-           *p++=net_rx>net_tx?'\176':'\177';
-         break;
-       case 't':
-         p+=sprintf (p, "%5.1f", temp);
+           *p++=net[0]>net[1]?'\176':'\177';
          break;
        case 'i':
          if (isdn_usage) {
-           switch (*++s) {
-           case 'i':
-             isdn=isdn_in;
-             break;
-           case 'o':
-             isdn=isdn_out;
-             break;
-           case 'm':
-             isdn=isdn_in>isdn_out?isdn_in:isdn_out;
-             break;
-           default:
-             isdn=isdn_in+isdn_out;
-             break;
-           }
-           isdn/=1024.0;
-           if (isdn<10.0) {
-             p+=sprintf (p, "%4.2f", isdn);
-           } else if (isdn<100.0) {
-             p+=sprintf (p, "%4.1f", isdn);
-           } else {
-             p+=sprintf (p, "%4.0f", isdn);
-           }
+           p+=print4f (p, isdn[*++s-1]/1024.0);
          } else {
            p+=sprintf (p, "----");
            s++;
          }
          break;
        case 'I':
-         if (isdn_in+isdn_out==0)
+         if (isdn[0]+isdn[1]==0)
            *p++=' ';
          else
-           *p++=isdn_in>isdn_out?'\176':'\177';
+           *p++=isdn[0]>isdn[1]?'\176':'\177';
          break;
        }
        
       } else if (*s=='$') {
-      double val;
-      int hv, len, dir;
-      hv=*++s;
-      len=*++s;
-      dir=*++s;
-      switch (*++s) {
-      case 'l':
-       val=load/overload;
-       break;
-      case  'b':
-       val=busy;
-       break;
-      case 'd':
-       switch (*++s) {
-       case 'r':
-         val=disk_r/disk_max;
-         break;
-       case 'w':
-         val=disk_w/disk_max;
-         break;
-       case 'm':
-         val=(disk_r>disk_w?disk_r:disk_w)/disk_max;
-         break;
-       default:
-         val=(disk_r+disk_w)/(2*disk_max);
-         break;
+       int dir, len;
+       if ((dir=*++s)=='$') {
+         *p++='$';
+         continue;
        }
-       break;
-      case 'n':
+       len=*++s;
        switch (*++s) {
-       case 'r':
-         val=net_rx/net_max;
+       case 'l':
+         val=load[*++s-1]/overload;
          break;
-       case 'w':
-         val=net_tx/net_max;
+       case  'c':
+         val=busy[*++s-1];
          break;
-       case 'm':
-         val=(net_rx>net_tx?net_rx:net_tx)/net_max;
+       case 'd':
+         val=disk[*++s-1]/disk_peak;
          break;
-       default:
-         val=(net_rx+net_tx)/(2*net_max);
+       case 'n':
+         val=net[*++s-1]/net_peak;
          break;
-       }
-       break;
-      case 't':
-       val=(temp-temp_min)/(temp_max-temp_min);
-       break;
-      case 'i':
-       switch (*++s) {
        case 'i':
-         val=isdn_in;
-         break;
-       case 'o':
-         val=isdn_out;
-         break;
-       case 'm':
-         val=isdn_in>isdn_out?isdn_in:isdn_out;
+         val=isdn[*++s-1]/8000.0;
          break;
        default:
-         val=isdn_in+isdn_out;
-         break;
+         val=0.0;
        }
-       val/=8000.0;
-       break;
-      default:
-       val=0.0;
-      }
-      switch (hv) {
-      case 'h':
-       lcd_hbar (p-buffer+1, i+1, dir-'0', len*XRES, val*len*XRES); 
-       break;
-      case 'H':
-       lcd_hbar (p-buffer+1, i+1, dir-'0', len*XRES, (double)len*XRES*log(val*len*XRES+1)/log(len*XRES)); 
-       break;
-      case 'v':
-       lcd_vbar (p-buffer+1, i+1, dir-'0', len*YRES, val*len*XRES); 
-       break;
-      }
-      while (len-->0) {
-       *p++='\t'; 
+
+       if (dir>0) {
+         int bar=val*len*xres;
+         lcd_bar (dir, r, p-buffer+1, len*xres, bar, bar);
+       } else {
+         double bar=len*xres*log(val*len*xres+1)/log(len*xres); 
+         lcd_bar (-dir, r, p-buffer+1, len*xres, bar, bar);
+       }
+       
+       for (i=0; i<len && p-buffer<cols; i++)
+         *p++='\t';
+       
+      } else {
+       *p++=*s;
       }
-      
-    } else {
-      *p++=*s;
-    }
-  } while (*s++);
+    } while (*s++);
     
     if (smooth==0) {
-      p=buffer;
-      while (*p) {
-       while (*p=='\t') p++;
-       for (s=p; *s; s++) {
-         if (*s=='\t') {
-           *s++='\0';
-           break;
-         }
-       }
-       if (*p) {
-         lcd_put (p-buffer+1, i+1, p);
-       }
-       p=s;
-      }
+      lcd_put (r, 1, buffer);
     }
   }
+  lcd_flush();
 }
 
 
 void main (int argc, char *argv[])
 {
-  char *cfg_file="/etc/lcd4linux.conf";
-  char *port;
+  char *cfg="/etc/lcd4linux.conf";
+  char *display;
   int i;
-  int contrast;
   int smooth;
   
   if (argc>2) {
@@ -421,77 +432,57 @@ void main (int argc, char *argv[])
     exit (2);
   }
   if (argc==2) {
-    cfg_file=argv[1];
+    cfg=argv[1];
   }
 
-  set_cfg ("row1", "*** %o %r ***");
-  set_cfg ("row2", "%p CPU  %m MB RAM");
-  set_cfg ("row3", "Busy %b%% $r50b");
-  set_cfg ("row4", "Load %l$r50l");
+  cfg_set ("row1", "*** %o %r ***");
+  cfg_set ("row2", "%p CPU  %m MB RAM");
+  cfg_set ("row3", "Busy %cu%% $r10cu");
+  cfg_set ("row4", "Load %l1%L$r10l1");
 
-  set_cfg ("tick", "100");
-  set_cfg ("tack", "500");
-  set_cfg ("tau", "500");
-  set_cfg ("contrast", "140");
-  set_cfg ("overload", "2.0");
-  set_cfg ("temp_min", "20");
-  set_cfg ("temp_max", "70");
+  cfg_set ("tick", "100");
+  cfg_set ("tack", "500");
+  cfg_set ("tau", "500");
   
-  set_cfg ("fifo", "/var/run/LCD4Linux");
+  cfg_set ("fifo", "/var/run/LCD4Linux");
+  cfg_set ("overload", "2.0");
 
-  if (read_cfg (cfg_file)==-1)
+  if (cfg_read (cfg)==-1)
     exit (1);
-
-  port=get_cfg("port");
-  sensor=get_cfg("temperature");
-  tick=atoi(get_cfg("tick"));
-  tack=atoi(get_cfg("tack"));
-  tau=atoi(get_cfg("tau"));
-  contrast=atoi(get_cfg("contrast"));
-  overload=atof(get_cfg("overload"));
-  temp_min=atof(get_cfg("temp_min"));
-  temp_max=atof(get_cfg("temp_max"));
-
-  if (port==NULL || *port=='\0') {
-    fprintf (stderr, "%s: missing 'port' entry!\n", cfg_file);
+  
+  display=cfg_get("display");
+  if (display==NULL || *display=='\0') {
+    fprintf (stderr, "%s: missing 'display' entry!\n", cfg_file());
     exit (1);
   }
-  
-  for (i=0; i<ROWS; i++) {
-    char buffer[8];
-    snprintf (buffer, sizeof(buffer), "row%d", i+1);
-    row[i]=strdup(parse(get_cfg(buffer)));
+  if (lcd_init(display)==-1) {
+    exit (1);
   }
-  
-  lcd_init(port);
-  lcd_clear();
-  lcd_contrast (contrast);
-
-  lcd_put (1, 1, "** LCD4Linux " VERSION " **");
-  lcd_put (1, 3, "(c) 1999 M. Reinelt");
+  lcd_query (&rows, &cols, &xres, &yres, &bars);
 
+  tick=atoi(cfg_get("tick"));
+  tack=atoi(cfg_get("tack"));
+  tau=atoi(cfg_get("tau"));
+  overload=atof(cfg_get("overload"));
 
-  { 
-    int a, b, c, d;
-
-    lcd_dbar_init();
-    for (a=0; a<40; a++) {
-      b=40-a;
-      c=2*a;
-      d=c+a;
-      lcd_dbar (2, 1, 0, 80, a, b);
-      lcd_dbar (2, 2, 0, 80, c, d);
-      lcd_dbar_flush();
-      usleep( 300*1000);
-    }
+  for (i=1; i<=rows; i++) {
+    char buffer[8];
+    snprintf (buffer, sizeof(buffer), "row%d", i);
+    row[i]=strdup(parse(cfg_get(buffer)));
   }
-
+  
+  lcd_clear();
+  
+  lcd_put (1,     1, "** LCD4Linux V" VERSION " **");
+  lcd_put (rows-1,1, "(c) 2000 M. Reinelt");
+  lcd_flush();
+  
   sleep (2);
   lcd_clear();
 
   smooth=0;
   while (1) {
-    display(smooth);
+    draw(smooth);
     smooth+=tick;
     if (smooth>tack) smooth=0;
     usleep(1000*tick);
index 956119ec106f0881cbc48883bc33daa816cb9334..990a2d5af6ce21249e04e3a8b36bddffac274d01 100644 (file)
@@ -1,17 +1,19 @@
-#Row1 "%p%t\337$h10rt"
-Row1 "Busy %b%% $h5rb$h5rl"
-Row2 "Disk%D%dm $H5rdr$H5rdw"
-Row3 "Netz%N%nm $H5rnr$H5rnw"
-Row4 "ISDN%I%im $h5rio$h5rii"
-
+Display LCD2041
 Port /dev/ttyS2
-Fifo /var/run/lcd4linux
+Contrast 160
+
+Row1 "*** %o %r ***"
+Row2 "%p CPU  %m MB RAM"
+Row3 "Busy %cu%% $r10cu"
+Row4 "L$$D %l1%L$r10l1"
+
 Tick 100
 Tack 400
 Tau 500
-Contrast 160
 Overload 2.0
 
+Fifo /var/run/lcd4linux
+
 Sensor1 /proc/sys/dev/sensors/w83781d-isa-0290/temp2
 Sensor1_min 30
 Sensor1_max 50
index 8529d89328d82928a6f67a0323fe2fadb92c88cb..bca5fd45af082b1c4d4fcf392f5e15e8a0fc9c51 100644 (file)
--- a/system.c
+++ b/system.c
@@ -1,4 +1,4 @@
-/* $Id: system.c,v 1.4 2000/03/10 10:49:53 reinelt Exp $
+/* $Id: system.c,v 1.5 2000/03/10 17:36:02 reinelt Exp $
  *
  * system status retreivement
  *
  *
  *
  * $Log: system.c,v $
+ * Revision 1.5  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.4  2000/03/10 10:49:53  reinelt
  *
  * MatrixOrbital driver finished
@@ -87,7 +91,7 @@
 #include <asm/param.h>
 
 #include "system.h"
-#include "config.h"
+#include "cfg.h"
 #include "filter.h"
 
 char *System(void)
@@ -174,7 +178,7 @@ int Load (double *load1, double *load2, double *load3)
   
   if (time(NULL)==now) return 0;
   time(&now);
-
+  
   if (fd==-2) {
     fd=open("/proc/loadavg", O_RDONLY);
     if (fd==-1) {
@@ -377,7 +381,7 @@ int Sensor (int index, double *val, double *min, double *max)
   static double max_buf[SENSORS]={0.0,};
   static time_t now[SENSORS]={0,};
 
-  if (index<0 || index>=SENSORS) return -1;
+  if (index<1 || index>=SENSORS) return -1;
 
   *val=val_buf[index];
   *min=min_buf[index];
index 37dc77a5ce564ceb7c4073b5956401c77b08edde..50246e61227cb236845ed70c606bd45beebe92f4 100644 (file)
--- a/system.h
+++ b/system.h
@@ -1,4 +1,4 @@
-/* $Id: system.h,v 1.3 2000/03/07 11:01:34 reinelt Exp $
+/* $Id: system.h,v 1.4 2000/03/10 17:36:02 reinelt Exp $
  *
  * system status retreivement
  *
  *
  *
  * $Log: system.h,v $
+ * Revision 1.4  2000/03/10 17:36:02  reinelt
+ *
+ * first unstable but running release
+ *
  * Revision 1.3  2000/03/07 11:01:34  reinelt
  *
  * system.c cleanup
@@ -34,7 +38,7 @@
 #ifndef _SYSTEM_H_
 #define _SYSTEM_H_
 
-#define SENSORS 16
+#define SENSORS 9
 
 char *System (void);
 char *Release (void);