aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreinelt <>2000-03-10 17:36:02 +0000
committerreinelt <>2000-03-10 17:36:02 +0000
commit4bb6b0d869fe0685a38ea33a5b0cd6e914aee1fe (patch)
tree19ec78ceacf92efbcd4f057e2cf27325dfd3b9b9
parent2ceed0e89cf69fd2488767075edc83cdefc00a6c (diff)
downloadlcd4linux-4bb6b0d869fe0685a38ea33a5b0cd6e914aee1fe.tar.gz
[lcd4linux @ 2000-03-10 17:36:02 by reinelt]
first unstable but running release
Diffstat (limited to '')
-rw-r--r--Makefile0
-rw-r--r--Makefile.am6
-rw-r--r--Makefile.in13
-rw-r--r--MatrixOrbital.c48
-rw-r--r--cfg.c7
-rwxr-xr-xconfigure1677
-rw-r--r--display.c44
-rw-r--r--display.h10
-rw-r--r--isdn.c10
-rw-r--r--isdn.h9
-rw-r--r--lcd4linux.c575
-rw-r--r--lcd4linux.conf.sample18
-rw-r--r--system.c12
-rw-r--r--system.h8
14 files changed, 2107 insertions, 330 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index e69de29..0000000
--- a/Makefile
+++ /dev/null
diff --git a/Makefile.am b/Makefile.am
index 3913f9d..f75d8b5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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
+
diff --git a/Makefile.in b/Makefile.in
index 0671753..080f5bb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -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)
diff --git a/MatrixOrbital.c b/MatrixOrbital.c
index 56e2091..f59a81e 100644
--- a/MatrixOrbital.c
+++ b/MatrixOrbital.c
@@ -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 c0245a7..4b97a0a 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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
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
+
diff --git a/display.c b/display.c
index 902f514..e3f6aee 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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
@@ -28,13 +32,35 @@
*
* 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();
diff --git a/display.h b/display.h
index 58cd23b..0a2bb95 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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 e5e7b68..f6dfc4b 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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 93416dd..bfb15c5 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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
@@ -28,12 +32,11 @@
*
* 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
diff --git a/lcd4linux.c b/lcd4linux.c
index 9dbe92f..dc43064 100644
--- a/lcd4linux.c
+++ b/lcd4linux.c
@@ -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>
@@ -5,60 +34,129 @@
#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);
diff --git a/lcd4linux.conf.sample b/lcd4linux.conf.sample
index 956119e..990a2d5 100644
--- a/lcd4linux.conf.sample
+++ b/lcd4linux.conf.sample
@@ -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
diff --git a/system.c b/system.c
index 8529d89..bca5fd4 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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];
diff --git a/system.h b/system.h
index 37dc77a..50246e6 100644
--- 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
*
@@ -20,6 +20,10 @@
*
*
* $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);