Use automake
authorAlexey Gladkov <legion@altlinux.org>
Tue, 29 Jan 2008 11:51:46 +0000 (14:51 +0300)
committerAlexey Gladkov <legion@altlinux.org>
Tue, 8 Apr 2008 18:10:32 +0000 (22:10 +0400)
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Alexey Gladkov <legion@altlinux.org>
30 files changed:
.gitignore [new file with mode: 0644]
AUTHORS [new file with mode: 0644]
ChangeLog [moved from CHANGES with 100% similarity]
INSTALL [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
Makefile.in [deleted file]
NEWS [new file with mode: 0644]
README
compile [new file with mode: 0755]
config.h.in
configure.ac
data/Makefile.am [new file with mode: 0644]
data/Makefile.in [deleted file]
man/Makefile.am [new file with mode: 0644]
man/Makefile.in [deleted file]
man/man1/Makefile.am [new file with mode: 0644]
man/man1/dumpkeys.1.in
man/man1/loadkeys.1.in
man/man1misc/Makefile.am [new file with mode: 0644]
man/man5/Makefile.am [new file with mode: 0644]
man/man8/Makefile.am [new file with mode: 0644]
man/man8/loadunimap.8.in
man/man8/mapscrn.8.in
man/man8/setfont.8.in
man/man8misc/Makefile.am [new file with mode: 0644]
po/Makefile.in
po/cat-id-tbl.c
src/Makefile.am [new file with mode: 0644]
src/Makefile.in [deleted file]
ylwrap [new file with mode: 0755]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..4e5f06e
--- /dev/null
@@ -0,0 +1,12 @@
+*.o
+autom4te.cache
+config.h.in~
+Makefile.in
+!po/Makefile.in
+aclocal.m4
+config.guess
+config.sub
+configure
+depcomp
+install-sh
+missing
diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..9977ee4
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,17 @@
+The programs loadkeys, dumpkeys and showkey were derived from
+Risto Kankkunen's kbd-0.81.
+
+The font loading code goes back to the codepage package by
+Joel Hoffman (joel@wam.umd.edu). (He tells me that the original
+reference is: "From: p. 307 of _Programmer's Guide to PC & PS/2
+Video Systems_ by Richard Wilton. 1987.  Microsoft Press".)
+
+The kernel and user interface for the font loading were derived
+from Eugene Crosser's intl_con package.
+
+[Similar things were done earlier by
+ Jerry Kaidor (tr2!jerry@abekas.com, jkaidor@synoptics.com) : fontpak,
+ H. Peter Anvin (hpa@nwu.edu) and Pavel Zaboj (xzaboj@vse.cs).
+Their code was not used, but the Latin-1 *.psf fonts were developed
+by H. Peter Anvin, and the Latin-2 ones by Pavel Zaboj.]
+
similarity index 100%
rename from CHANGES
rename to ChangeLog
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..23e5f25
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,236 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about.  Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory.  After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).  Here is a another example:
+
+     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..60db282
--- /dev/null
@@ -0,0 +1,2 @@
+EXTRA_DIST = contrib doc rc
+SUBDIRS = src man data po
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644 (file)
index e9cb0af..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-SUBDIRS = src po data man
-
-all:
-       for i in $(SUBDIRS); do $(MAKE) -C $$i all || exit 1; done
-
-install: install-progs install-data install-man
-
-install-progs:
-       for i in $(SUBDIRS); do $(MAKE) -C $$i install || exit 1; done
-
-install-man:
-       $(MAKE) -C man install
-
-install-data:
-       $(MAKE) -C data install
-
-clean:
-       for i in $(SUBDIRS); do $(MAKE) -C $$i clean || exit 1; done
-
-reallyclean distclean spotless: clean
-       find . -name "*~" -exec rm {} ";"
-       for i in $(SUBDIRS); do $(MAKE) -C $$i distclean || exit 1; done
-       rm -f config.h Makefile configure config.status config.log
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/README b/README
index 2def9cb..fda5fcc 100644 (file)
--- a/README
+++ b/README
@@ -8,12 +8,6 @@ The current version of kbd might not work anymore on kernels older than that.
 This distribution contains no binaries - the sources depend on the
 kernel version - compile them yourself.
 
-To install this package, unpack it somewhere and issue the commands
-"./configure", "make" and "make install".  This copies the utilities
-to /usr/bin, man pages to /usr/man/man{1,4,5,8} and data files to the
-subdirectories keymaps, unimaps, consolefonts, consoletrans and videomodes
-of the datadirectory chosen during configure, probably /usr/share/kbd.
-
 The home site of this package is
        ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/
 
diff --git a/compile b/compile
new file mode 100755 (executable)
index 0000000..1b1d232
--- /dev/null
+++ b/compile
@@ -0,0 +1,142 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+       # configure might choose to run compile as `compile cc -o foo foo.c'.
+       # So we strip `-o arg' only if arg is an object.
+       eat=1
+       case $2 in
+         *.o | *.obj)
+           ofile=$2
+           ;;
+         *)
+           set x "$@" -o "$2"
+           shift
+           ;;
+       esac
+       ;;
+      *.c)
+       cfile=$1
+       set x "$@" "$1"
+       shift
+       ;;
+      *)
+       set x "$@" "$1"
+       shift
+       ;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no `-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # `.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
index 370ea93..f78105e 100644 (file)
    slash. */
 #undef LSTAT_FOLLOWS_SLASHED_SYMLINK
 
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Name of package */
+#undef PACKAGE
+
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
 /* Define to 1 if your <sys/time.h> declares `struct tm'. */
 #undef TM_IN_SYS_TIME
 
+/* Version number of package */
+#undef VERSION
+
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */
 #undef YYTEXT_POINTER
index cee93e0..5258e71 100644 (file)
@@ -1,15 +1,18 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.59)
+AC_PREREQ(2.60)
 AC_INIT(kbd, 1.14.1, gladkov.alexey@gmail.com)
+AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([src/showkey.c])
 AC_CONFIG_HEADERS(config.h)
 
 # Checks for programs.
 AC_PROG_YACC
 AC_PROG_CC
+AM_PROG_CC_C_O
 AC_PROG_LEX
+AC_PROG_SED
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
@@ -45,31 +48,23 @@ AC_CHECK_FUNCS([alarm memset setlocale strcasecmp strchr strdup strerror \
 strspn strstr strtol strtoul])
 
 case $host_cpu in
-       m68*|sparc*) KEYCODES_PROGS= ;;
+       m68*|sparc*) KEYCODES_PROGS=no ;;
        *)           KEYCODES_PROGS=yes ;;
 esac
-AC_SUBST(KEYCODES_PROGS)
+AM_CONDITIONAL(KEYCODES_PROGS, test "$KEYCODES_PROGS" = "yes")
 
 case $host_cpu in
        i?86*) RESIZECONS_PROGS=yes ;;
-       *)     RESIZECONS_PROGS= ;;
+       *)     RESIZECONS_PROGS=no ;;
 esac
-AC_SUBST(RESIZECONS_PROGS)
+AM_CONDITIONAL(RESIZECONS_PROGS, test "$RESIZECONS_PROGS" = "yes")
 
 AC_ARG_ENABLE(optional-progs,
        AS_HELP_STRING(--enable-optional-progs, [Build and install a optional programs]),
        [OPTIONAL_PROGS=$enableval],[OPTIONAL_PROGS=no])
-
-AC_SUBST(OPTIONAL_PROGS)
-
-AC_ARG_ENABLE(strip,
-       AS_HELP_STRING(--enable-strip, [Enable stripping of executables]),
-       [ENABLE_STRIP=$enableval], [ENABLE_STRIP=no])
-
-AC_SUBST(ENABLE_STRIP)
+AM_CONDITIONAL(OPTIONAL_PROGS, test "$OPTIONAL_PROGS" = "yes")
 
 # For lib/nls.h: do we have <libintl.h> and gettext() ?
-
 AC_ARG_ENABLE(nls, AS_HELP_STRING(--enable-nls, [NLS support]),
        [enable_nls=$enableval], [enable_nls=no])
 
@@ -93,6 +88,16 @@ AC_SUBST(HAVE_XGETTEXT)
 AC_CONFIG_FILES([Makefile
                data/Makefile
                man/Makefile
+               man/man1/Makefile
+               man/man1/dumpkeys.1
+               man/man1/loadkeys.1
+               man/man1misc/Makefile
+               man/man5/Makefile
+               man/man8/Makefile
+               man/man8/loadunimap.8
+               man/man8/mapscrn.8
+               man/man8/setfont.8
+               man/man8misc/Makefile
                po/Makefile
                src/Makefile])
 AC_OUTPUT
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644 (file)
index 0000000..10f6864
--- /dev/null
@@ -0,0 +1,60 @@
+EXTRA_DIST = consolefonts consoletrans keymaps partialfonts unimaps
+
+# If you change the names of any of the following subdirs,
+# also change paths.h.
+OLDKEYMAPDIR = keytables
+KEYMAPDIR    = keymaps
+UNIMAPDIR    = unimaps
+FONTDIR      = consolefonts
+PARTIALDIR   = partialfonts
+TRANSDIR     = consoletrans
+
+KEYMAPSUBDIRS = include sun amiga atari i386/azerty i386/dvorak \
+       i386/fgGIod i386/qwerty i386/qwertz i386/include i386/olpc \
+       mac/include mac/all
+
+# Do not use GZIP - it is interpreted by gzip
+MYGZIP = gzip -f -9
+
+install-data-hook: $(KEYMAPDIR)_Z $(FONTDIR)_Z
+       install -d -m 755 $(DESTDIR)$(datadir)
+       install -d -m 755 $(DESTDIR)$(datadir)/$(FONTDIR)
+       install -m 644 $(FONTDIR)_Z/* $(DESTDIR)$(datadir)/$(FONTDIR)
+       install -d -m 755 $(DESTDIR)$(datadir)/$(FONTDIR)/$(PARTIALDIR)
+       install -m 644 $(PARTIALDIR)_Z/* $(DESTDIR)$(datadir)/$(FONTDIR)/$(PARTIALDIR)
+       install -d -m 755 $(DESTDIR)$(datadir)/$(TRANSDIR)
+       install -m 644 $(srcdir)/$(TRANSDIR)/* $(DESTDIR)$(datadir)/$(TRANSDIR)
+       install -d -m 755 $(DESTDIR)$(datadir)/$(UNIMAPDIR)
+       install -m 644 $(srcdir)/$(UNIMAPDIR)/* $(DESTDIR)$(datadir)/$(UNIMAPDIR)
+       install -d -m 755 $(DESTDIR)$(datadir)/$(KEYMAPDIR)
+       install -d -m 755 $(DESTDIR)$(datadir)/$(KEYMAPDIR)/i386
+       install -d -m 755 $(DESTDIR)$(datadir)/$(KEYMAPDIR)/mac
+       for i in $(KEYMAPSUBDIRS); do \
+               install -d -m 755 $(DESTDIR)$(datadir)/$(KEYMAPDIR)/$$i ;\
+               install -m 644 $(KEYMAPDIR)_Z/$$i/* $(DESTDIR)$(datadir)/$(KEYMAPDIR)/$$i ;\
+       done
+       rm -f $(DESTDIR)$(datadir)/$(KEYMAPDIR)/ppc; ln -s mac $(DESTDIR)$(datadir)/$(KEYMAPDIR)/ppc
+       @if [ -f $(DESTDIR)$(datadir)/$(OLDKEYMAPDIR) ]; then \
+         echo "Done. You may want to remove old keymaps with" ; \
+         echo "  rm -rf $(DESTDIR)$(datadir)/$(OLDKEYMAPDIR)" ; \
+         echo "But be careful to preserve your default map if it is" ; \
+         echo "nonstandard, and to adapt any scripts in rc.local or so." ; \
+       fi
+
+# compress data files - do not touch the distribution but copy first
+$(KEYMAPDIR)_Z:
+       cp -r $(srcdir)/$(KEYMAPDIR) $(KEYMAPDIR)_Z
+       cd $(KEYMAPDIR)_Z && $(MYGZIP) */*.map */*/*.map
+
+$(FONTDIR)_Z:
+       cp -r $(srcdir)/$(FONTDIR) $(FONTDIR)_Z
+       cp -r $(srcdir)/$(PARTIALDIR) $(PARTIALDIR)_Z
+       cd $(FONTDIR)_Z && $(MYGZIP) * && gunzip ERRORS* README*
+       cd $(PARTIALDIR)_Z && $(MYGZIP) *
+# (not yet screenmaps - some other time)
+
+clean-local:
+       rm -rf $(KEYMAPDIR)_Z $(FONTDIR)_Z $(PARTIALDIR)_Z
+
+uninstall-hook:
+       cd $(DESTDIR)$(datadir) && rm -rf $(FONTDIR) $(PARTIALDIR) $(TRANSDIR) $(UNIMAPDIR) $(KEYMAPDIR)
diff --git a/data/Makefile.in b/data/Makefile.in
deleted file mode 100644 (file)
index 5b68707..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-prefix      = @prefix@
-datarootdir = @datarootdir@
-datadir     = $(DESTDIR)@datadir@
-
-# If you change the names of any of the following subdirs,
-# also change paths.h.
-OLDKEYMAPDIR = keytables
-KEYMAPDIR    = keymaps
-UNIMAPDIR    = unimaps
-FONTDIR      = consolefonts
-PARTIALDIR   = partialfonts
-TRANSDIR     = consoletrans
-
-KEYMAPSUBDIRS = include sun amiga atari i386/azerty i386/dvorak \
-       i386/fgGIod i386/qwerty i386/qwertz i386/include i386/olpc \
-       mac/include mac/all
-
-
-# Do not use GZIP - it is interpreted by gzip
-MYGZIP = gzip -f -9
-
-all: $(KEYMAPDIR)_Z $(FONTDIR)_Z
-
-install:       all
-       install -d -m 755 $(datadir)
-       install -d -m 755 $(datadir)/$(FONTDIR)
-       install -m 644 $(FONTDIR)_Z/* $(datadir)/$(FONTDIR)
-       install -d -m 755 $(datadir)/$(FONTDIR)/$(PARTIALDIR)
-       install -m 644 $(PARTIALDIR)_Z/* $(datadir)/$(FONTDIR)/$(PARTIALDIR)
-       install -d -m 755 $(datadir)/$(TRANSDIR)
-       install -m 644 $(TRANSDIR)/* $(datadir)/$(TRANSDIR)
-       install -d -m 755 $(datadir)/$(UNIMAPDIR)
-       install -m 644 $(UNIMAPDIR)/* $(datadir)/$(UNIMAPDIR)
-       install -d -m 755 $(datadir)/$(KEYMAPDIR)
-       install -d -m 755 $(datadir)/$(KEYMAPDIR)/i386
-       install -d -m 755 $(datadir)/$(KEYMAPDIR)/mac
-       for i in $(KEYMAPSUBDIRS); do \
-               install -d -m 755 $(datadir)/$(KEYMAPDIR)/$$i ;\
-               install -m 644 $(KEYMAPDIR)_Z/$$i/* $(datadir)/$(KEYMAPDIR)/$$i ;\
-       done
-       rm -f $(datadir)/$(KEYMAPDIR)/ppc; ln -s mac $(datadir)/$(KEYMAPDIR)/ppc
-       @if [ -f $(datadir)/$(OLDKEYMAPDIR) ]; then \
-         echo "Done. You may want to remove old keymaps with" ; \
-         echo "  rm -rf $(datadir)/$(OLDKEYMAPDIR)" ; \
-         echo "But be careful to preserve your default map if it is" ; \
-         echo "nonstandard, and to adapt any scripts in rc.local or so." ; \
-       fi
-
-
-# compress data files - do not touch the distribution but copy first
-$(KEYMAPDIR)_Z:
-       cp -r $(KEYMAPDIR) $(KEYMAPDIR)_Z
-       cd $(KEYMAPDIR)_Z && $(MYGZIP) */*.map */*/*.map
-
-$(FONTDIR)_Z:
-       cp -r $(FONTDIR) $(FONTDIR)_Z
-       cp -r $(PARTIALDIR) $(PARTIALDIR)_Z
-       cd $(FONTDIR)_Z && $(MYGZIP) * && gunzip ERRORS* README*
-       cd $(PARTIALDIR)_Z && $(MYGZIP) *
-# (not yet screenmaps - some other time)
-
-clean:
-       rm -rf $(KEYMAPDIR)_Z $(FONTDIR)_Z $(PARTIALDIR)_Z
-
-distclean: clean
-       rm -f Makefile
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644 (file)
index 0000000..e7eaac9
--- /dev/null
@@ -0,0 +1,4 @@
+SUBDIRS = man1 man5 man8
+if OPTIONAL_PROGS
+SUBDIRS += man1misc man8misc
+endif
diff --git a/man/Makefile.in b/man/Makefile.in
deleted file mode 100644 (file)
index 39e6fa1..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-prefix         = @prefix@
-datarootdir    = @datarootdir@
-datadir        = $(DESTDIR)@datadir@
-mandir         = $(DESTDIR)@mandir@
-OPTIONAL_PROGS = @OPTIONAL_PROGS@
-
-# Generated files
-GEN1 = man1/dumpkeys.1 man1/loadkeys.1
-GEN8 = man8/setfont.8 man8/loadunimap.8 man8/mapscrn.8
-
-MAN1DIRS = man1
-MAN5DIRS = man5
-MAN8DIRS = man8
-
-ifdef OPTIONAL_PROGS
-MAN1DIRS += man1misc
-MAN8DIRS += man8misc
-endif
-
-all: $(GEN1) $(GEN8)
-
-%: %.in
-       sed -e "s|\@datadir\@|$(datadir)|g" <$< >$@
-
-install:
-       install -d -m 755 $(mandir)/man1 $(mandir)/man5 $(mandir)/man8; \
-       for d in $(MAN1DIRS); do \
-               install -m 644 $$d/*.[0-9] $(mandir)/man1/; \
-       done; \
-       for d in $(MAN5DIRS); do \
-               install -m 644 $$d/*.[0-9] $(mandir)/man5/; \
-       done; \
-       for d in $(MAN8DIRS); do \
-               install -m 644 $$d/*.[0-9] $(mandir)/man8/; \
-       done
-
-clean:
-       rm -f $(GEN1) $(GEN8)
-
-distclean: clean
-       rm -f Makefile
-
-# Note: man?misc contains the man pages for non-installed
-# programs from ../src. Most of these are tiny test programs,
-# not very useful for anybody.
-# But if you decide to install some of those, then here are the man pages.
diff --git a/man/man1/Makefile.am b/man/man1/Makefile.am
new file mode 100644 (file)
index 0000000..126537d
--- /dev/null
@@ -0,0 +1,12 @@
+gen_MANS = dumpkeys.1 loadkeys.1
+dist_man_MANS = chvt.1 deallocvt.1 fgconsole.1 kbd_mode.1 openvt.1 \
+               psfaddtable.1 psfgettable.1 psfstriptable.1 psfxtable.1 \
+               setleds.1 setmetamode.1 showkey.1 unicode_start.1 unicode_stop.1 \
+               $(gen_MANS)
+
+install-data-hook:
+       cd $(DESTDIR)$(mandir)/man1 && \
+       for f in $(gen_MANS); do \
+               $(SED) -e "s#@DATADIR\@#${datadir}#g" "$$f" > "$$f.new"; \
+               mv -f -- "$$f.new" "$$f"; \
+       done
index d1743e2..00f9e66 100644 (file)
@@ -200,7 +200,7 @@ loadkeys how to interpret the keymap. (For example, "division" is
 .SH FILES
 .PD 0
 .TP 20
-.BI @datadir@/keymaps
+.BI @DATADIR@/keymaps
 recommended directory for keytable files
 .PD
 .SH "SEE ALSO"
index 97508c9..a35535d 100644 (file)
@@ -49,7 +49,7 @@ If the
 loads a default keymap, probably the file
 .I defkeymap.map
 either in
-.I @datadir@/keymaps
+.I @DATADIR@/keymaps
 or in
 .IR /usr/src/linux/drivers/char .
 (Probably the former was user-defined, while the latter
@@ -163,7 +163,7 @@ outlive your session. This means that even at the login prompt the key
 bindings may not be what the user expects.
 .SH FILES
 .TP
-.BI @datadir@/keymaps
+.BI @DATADIR@/keymaps
 default directory for keymaps
 .LP
 .TP
diff --git a/man/man1misc/Makefile.am b/man/man1misc/Makefile.am
new file mode 100644 (file)
index 0000000..1520a74
--- /dev/null
@@ -0,0 +1 @@
+dist_man_MANS = codepage.1 screendump.1 splitfont.1
diff --git a/man/man5/Makefile.am b/man/man5/Makefile.am
new file mode 100644 (file)
index 0000000..f91f802
--- /dev/null
@@ -0,0 +1 @@
+dist_man_MANS = keymaps.5
diff --git a/man/man8/Makefile.am b/man/man8/Makefile.am
new file mode 100644 (file)
index 0000000..e7cceb8
--- /dev/null
@@ -0,0 +1,10 @@
+gen_MANS = loadunimap.8 mapscrn.8 setfont.8
+dist_man_MANS = getkeycodes.8 kbdrate.8 resizecons.8 setkeycodes.8 \
+               showconsolefont.8 $(gen_MANS)
+
+install-data-hook:
+       cd $(DESTDIR)$(mandir)/man8 && \
+       for f in $(gen_MANS); do \
+               $(SED) -e "s#@DATADIR\@#${datadir}#g" "$$f" > "$$f.new"; \
+               mv -f -- "$$f.new" "$$f"; \
+       done
index 39bd518..eb5658f 100644 (file)
@@ -43,7 +43,7 @@ Usually one does not call
 directly - its function is also built into
 .BR setfont .
 .SH FILES
-.I @datadir@/unimaps
+.I @DATADIR@/unimaps
 is the default directory for unicode mappings.
 .SH "SEE ALSO"
 .BR mapscrn (8),
index 3236c12..a47d647 100644 (file)
@@ -97,7 +97,7 @@ Note that control characters (with codes < 32) cannot be re-mapped with
 .I mapscrn
 because they have special meaning for the driver.
 .SH FILES
-.I @datadir@/consoletrans
+.I @DATADIR@/consoletrans
 is the default directory for screen mappings.
 .SH "SEE ALSO"
 .IR setfont (8)
index 6e4ad63..5ae63dd 100644 (file)
@@ -223,11 +223,11 @@ glyphs in the font. So, if the font has more than 256 glyphs,
 the console will be reduced to 8 (instead of 16) colors.
 
 .SH FILES
-.I @datadir@/consolefonts
+.I @DATADIR@/consolefonts
 is the default font directory.
-.I @datadir@/unimaps
+.I @DATADIR@/unimaps
 is the default directory for Unicode maps.
-.I @datadir@/consoletrans
+.I @DATADIR@/consoletrans
 is the default directory for screen mappings.
 The default font is a file
 .I default
diff --git a/man/man8misc/Makefile.am b/man/man8misc/Makefile.am
new file mode 100644 (file)
index 0000000..0779ed5
--- /dev/null
@@ -0,0 +1 @@
+dist_man_MANS = clrunimap.8 getunimap.8 mk_modmap.8 setlogcons.8 setvesablank.8 vcstime.8
index d4761ed..5f98eed 100644 (file)
@@ -1,5 +1,7 @@
 PACKAGE_NAME  = @PACKAGE_NAME@
 
+srcdir = @srcdir@
+
 prefix        = @prefix@
 datarootdir   = @datarootdir@
 datadir       = @datadir@
@@ -95,6 +97,7 @@ install-data-yes: all
            *.gmo) destdir=$(gnulocaledir);; \
            *)     destdir=$(localedir);; \
          esac; \
+         destdir=$$destdir; \
          lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
          dir=$$destdir/$$lang/LC_MESSAGES; \
          ../mkinstalldirs $$dir; \
@@ -110,12 +113,12 @@ uninstall:
        catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
          lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
-         rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT); \
-         rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT).m; \
-         rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT); \
-         rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT).m; \
+         rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT); \
+         rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT).m; \
+         rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT); \
+         rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME)$(INSTOBJEXT).m; \
        done
-       rm -f $(gettextsrcdir)/po-Makefile.in.in
+       rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
 
 cat-id-tbl.o: $(INTL)/libgettext.h
 
@@ -145,3 +148,7 @@ update-po:
 POTFILES: 
        ./update-potfiles
 
+distdir:
+       cd $(srcdir) && cp *.po cat-id-tbl.c ChangeLog GNU.ABOUT-NLS po2tbl.sed POTFILES.in stamp-cat-id update-potfiles $(distdir)/
+
+.PHONY: check distdir dvi installcheck
index 2b7604c..b2f25e9 100644 (file)
@@ -8,55 +8,40 @@
 
 const struct _msg_ent _msg_tbl[] = {
   {"", 1},
-  {"openvt: %s: illegal vt number\n", 2},
-  {"openvt: only root can use the -u flag.\n", 3},
-  {"Couldnt get a file descriptor referring to the console\n", 4},
-  {"openvt: cannot find a free vt\n", 5},
-  {"openvt: cannot check whether vt %d is free\n", 6},
-  {"        use `openvt -f' to force.\n", 7},
-  {"openvt: vt %d is in use; command aborted\n", 8},
-  {"openvt: Unable to open %s: %s\n", 9},
-  {"openvt: Cannot open %s read/write (%s)\n", 10},
-  {"openvt: using VT %s\n", 11},
-  {"openvt: Unable to set new session (%s)\n", 12},
-  {"\
-\n\
-openvt: could not open %s R/W (%s)\n", 13},
-  {"openvt: could not deallocate console %d\n", 14},
-  {"usage: chvt N\n", 15},
-  {"%s: unknown option\n", 16},
-  {"%s: deallocating all unused consoles failed\n", 17},
-  {"%s: 0: illegal VT number\n", 18},
-  {"%s: VT 1 is the console and cannot be deallocated\n", 19},
-  {"%s: could not deallocate console %d\n", 20},
-  {"KDGKBENT error at index 0 in table %d\n", 21},
-  {"%s: cannot find any keymaps?\n", 22},
-  {"%s: plain map not allocated? very strange ...\n", 23},
-  {"KDGKBENT error at index %d in table %d\n", 24},
-  {"keycode range supported by kernel:           1 - %d\n", 25},
-  {"max number of actions bindable to a key:         %d\n", 26},
-  {"number of keymaps in actual use:                 %d\n", 27},
-  {"of which %d dynamically allocated\n", 28},
-  {"ranges of action codes supported by kernel:\n", 29},
-  {"number of function keys supported by kernel: %d\n", 30},
-  {"max nr of compose definitions: %d\n", 31},
-  {"nr of compose definitions in actual use: %d\n", 32},
+  {"usage: chvt N\n", 2},
+  {"%s: unknown option\n", 3},
+  {"%s: deallocating all unused consoles failed\n", 4},
+  {"%s: 0: illegal VT number\n", 5},
+  {"%s: VT 1 is the console and cannot be deallocated\n", 6},
+  {"%s: could not deallocate console %d\n", 7},
+  {"KDGKBENT error at index 0 in table %d\n", 8},
+  {"%s: cannot find any keymaps?\n", 9},
+  {"%s: plain map not allocated? very strange ...\n", 10},
+  {"KDGKBENT error at index %d in table %d\n", 11},
+  {"keycode range supported by kernel:           1 - %d\n", 12},
+  {"max number of actions bindable to a key:         %d\n", 13},
+  {"number of keymaps in actual use:                 %d\n", 14},
+  {"of which %d dynamically allocated\n", 15},
+  {"ranges of action codes supported by kernel:\n", 16},
+  {"number of function keys supported by kernel: %d\n", 17},
+  {"max nr of compose definitions: %d\n", 18},
+  {"nr of compose definitions in actual use: %d\n", 19},
   {"\
 Symbols recognized by %s:\n\
 (numeric value, symbol)\n\
-\n", 33},
+\n", 20},
   {"\
 \n\
 The following synonyms are recognized:\n\
-\n", 34},
-  {"%-15s for %s\n", 35},
+\n", 21},
+  {"%-15s for %s\n", 22},
   {"\
 \n\
-Recognized modifier names and their column numbers:\n", 36},
-  {"# not alt_is_meta: on keymap %d key %d is bound to", 37},
-  {"impossible: not meta?\n", 38},
-  {"KDGKBSENT failed at index %d: ", 39},
-  {"dumpkeys version %s", 40},
+Recognized modifier names and their column numbers:\n", 23},
+  {"# not alt_is_meta: on keymap %d key %d is bound to", 24},
+  {"impossible: not meta?\n", 25},
+  {"KDGKBSENT failed at index %d: ", 26},
+  {"dumpkeys version %s", 27},
   {"\
 \n\
 usage: dumpkeys [options...]\n\
@@ -72,10 +57,10 @@ valid options are:\n\
 \t   --funcs-only\t    display only the function key strings\n\
 \t   --keys-only\t    display only key bindings\n\
 \t   --compose-only   display only compose key combinations\n\
-\t-c --charset=", 41},
+\t-c --charset=", 28},
   {"\
 \t\t\t    interpret character action codes to be from the\n\
-\t\t\t    specified character set\n", 42},
+\t\t\t    specified character set\n", 29},
   {"\
 %s version %s\n\
 \n\
@@ -85,75 +70,90 @@ Valid options are:\n\
 \n\
 \t-h --help            display this help text\n\
 \t-V --version         display this help text\n\
-\t-n --next-available  display next unallocated VT\n", 43},
-  {"Couldn't read VTNO: ", 44},
-  {"error executing  %s\n", 45},
-  {"Couldnt open %s\n", 46},
-  {"usage: getkeycodes\n", 47},
-  {"Plain scancodes xx (hex) versus keycodes (dec)\n", 48},
-  {"0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n", 49},
-  {"for 1-%d (0x01-0x%02x) scancode equals keycode\n", 50},
+\t-n --next-available  display next unallocated VT\n", 30},
+  {"Couldn't read VTNO: ", 31},
+  {"error executing  %s\n", 32},
+  {"Couldnt open %s\n", 33},
+  {"Couldnt get a file descriptor referring to the console\n", 34},
+  {"usage: getkeycodes\n", 35},
+  {"Plain scancodes xx (hex) versus keycodes (dec)\n", 36},
+  {"0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n", 37},
+  {"for 1-%d (0x01-0x%02x) scancode equals keycode\n", 38},
   {"\
 \n\
 \n\
-Escaped scancodes e0 xx (hex)\n", 51},
-  {"failed to get keycode for scancode 0x%x\n", 52},
+Escaped scancodes e0 xx (hex)\n", 39},
+  {"failed to get keycode for scancode 0x%x\n", 40},
   {"\
 Usage:\n\
-\t%s [-s] [-C console]\n", 53},
-  {"usage: kbd_mode [-a|-u|-k|-s] [-C device]\n", 54},
-  {"kbd_mode: error reading keyboard mode\n", 55},
-  {"The keyboard is in raw (scancode) mode\n", 56},
-  {"The keyboard is in mediumraw (keycode) mode\n", 57},
-  {"The keyboard is in the default (ASCII) mode\n", 58},
-  {"The keyboard is in Unicode (UTF-8) mode\n", 59},
-  {"The keyboard is in some unknown mode\n", 60},
-  {"%s: error setting keyboard mode\n", 61},
-  {"Typematic Rate set to %.1f cps (delay = %d ms)\n", 62},
-  {"Usage: kbdrate [-V] [-s] [-r rate] [-d delay]\n", 63},
-  {"Cannot open /dev/port", 64},
-  {"bug: getfont called with count<256\n", 65},
-  {"bug: getfont using GIO_FONT needs buf.\n", 66},
-  {"%s: out of memory\n", 67},
-  {"unknown charset %s - ignoring charset request\n", 68},
-  {"assuming iso-8859-1 %s\n", 69},
-  {"assuming iso-8859-15 %s\n", 70},
-  {"assuming iso-8859-2 %s\n", 71},
-  {"assuming iso-8859-3 %s\n", 72},
-  {"assuming iso-8859-4 %s\n", 73},
-  {"unknown keysym '%s'\n", 74},
-  {"plus before %s ignored\n", 75},
+\t%s [-s] [-C console]\n", 41},
+  {"usage: kbd_mode [-a|-u|-k|-s] [-C device]\n", 42},
+  {"kbd_mode: error reading keyboard mode\n", 43},
+  {"The keyboard is in raw (scancode) mode\n", 44},
+  {"The keyboard is in mediumraw (keycode) mode\n", 45},
+  {"The keyboard is in the default (ASCII) mode\n", 46},
+  {"The keyboard is in Unicode (UTF-8) mode\n", 47},
+  {"The keyboard is in some unknown mode\n", 48},
+  {"%s: error setting keyboard mode\n", 49},
+  {"Typematic Rate set to %.1f cps (delay = %d ms)\n", 50},
+  {"Usage: kbdrate [-V] [-s] [-r rate] [-d delay]\n", 51},
+  {"Cannot open /dev/port", 52},
+  {"bug: getfont called with count<256\n", 53},
+  {"bug: getfont using GIO_FONT needs buf.\n", 54},
+  {"%s: out of memory\n", 55},
+  {"unknown charset %s - ignoring charset request\n", 56},
+  {"assuming iso-8859-1 %s\n", 57},
+  {"assuming iso-8859-15 %s\n", 58},
+  {"assuming iso-8859-2 %s\n", 59},
+  {"assuming iso-8859-3 %s\n", 60},
+  {"assuming iso-8859-4 %s\n", 61},
+  {"unknown keysym '%s'\n", 62},
+  {"plus before %s ignored\n", 63},
   {"\
 Usage:\n\
-\t%s [-C console] [-o map.orig]\n", 76},
-  {"Bad input line: %s\n", 77},
-  {"%s: Glyph number (0x%x) larger than font length\n", 78},
-  {"%s: Bad end of range (0x%x)\n", 79},
-  {"%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n", 80},
+\t%s [-C console] [-o map.orig]\n", 64},
+  {"Bad input line: %s\n", 65},
+  {"%s: Glyph number (0x%x) larger than font length\n", 66},
+  {"%s: Bad end of range (0x%x)\n", 67},
+  {"%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n", 68},
   {"\
 %s: Unicode range U+%x-U+%x not of the same length as font position range 0x%\
-x-0x%x\n", 81},
-  {"%s: trailing junk (%s) ignored\n", 82},
-  {"Loading unicode map from file %s\n", 83},
-  {"%s: %s: Warning: line too long\n", 84},
+x-0x%x\n", 69},
+  {"%s: trailing junk (%s) ignored\n", 70},
+  {"Loading unicode map from file %s\n", 71},
+  {"%s: %s: Warning: line too long\n", 72},
   {"\
 %s: not loading empty unimap\n\
-(if you insist: use option -f to override)\n", 85},
-  {"entry", 86},
-  {"entries", 87},
-  {"Saved unicode map on `%s'\n", 88},
-  {"Appended Unicode map\n", 89},
-  {"usage: %s [-v] [-o map.orig] map-file\n", 90},
-  {"mapscrn: cannot open map file _%s_\n", 91},
-  {"Cannot stat map file", 92},
-  {"Loading binary direct-to-font screen map from file %s\n", 93},
-  {"Error reading map from file `%s'\n", 94},
-  {"Loading binary unicode screen map from file %s\n", 95},
-  {"Loading symbolic screen map from file %s\n", 96},
-  {"Error parsing symbolic map from `%s', line %d\n", 97},
-  {"Error writing map to file\n", 98},
-  {"Cannot read console map\n", 99},
-  {"Saved screen map in `%s'\n", 100},
+(if you insist: use option -f to override)\n", 73},
+  {"entry", 74},
+  {"entries", 75},
+  {"Saved unicode map on `%s'\n", 76},
+  {"Appended Unicode map\n", 77},
+  {"usage: %s [-v] [-o map.orig] map-file\n", 78},
+  {"mapscrn: cannot open map file _%s_\n", 79},
+  {"Cannot stat map file", 80},
+  {"Loading binary direct-to-font screen map from file %s\n", 81},
+  {"Error reading map from file `%s'\n", 82},
+  {"Loading binary unicode screen map from file %s\n", 83},
+  {"Loading symbolic screen map from file %s\n", 84},
+  {"Error parsing symbolic map from `%s', line %d\n", 85},
+  {"Error writing map to file\n", 86},
+  {"Cannot read console map\n", 87},
+  {"Saved screen map in `%s'\n", 88},
+  {"openvt: %s: illegal vt number\n", 89},
+  {"openvt: only root can use the -u flag.\n", 90},
+  {"openvt: cannot find a free vt\n", 91},
+  {"openvt: cannot check whether vt %d is free\n", 92},
+  {"        use `openvt -f' to force.\n", 93},
+  {"openvt: vt %d is in use; command aborted\n", 94},
+  {"openvt: Unable to open %s: %s\n", 95},
+  {"openvt: Cannot open %s read/write (%s)\n", 96},
+  {"openvt: using VT %s\n", 97},
+  {"openvt: Unable to set new session (%s)\n", 98},
+  {"\
+\n\
+openvt: could not open %s R/W (%s)\n", 99},
+  {"openvt: could not deallocate console %d\n", 100},
   {"%s: short ucs2 unicode table\n", 101},
   {"%s: short utf8 unicode table\n", 102},
   {"%s: bad utf8\n", 103},
@@ -169,47 +169,48 @@ x-0x%x\n", 81},
   {"%s: Input file: trailing garbage\n", 113},
   {"appendunicode: illegal unicode %u\n", 114},
   {"Cannot write font file header", 115},
-  {"%s: Warning: line too long\n", 116},
-  {"%s: Bad input line: %s\n", 117},
-  {"%s: Glyph number (0x%lx) past end of font\n", 118},
-  {"%s: Bad end of range (0x%lx)\n", 119},
+  {"Cannot write font file", 116},
+  {"%s: Warning: line too long\n", 117},
+  {"%s: Bad input line: %s\n", 118},
+  {"%s: Glyph number (0x%lx) past end of font\n", 119},
+  {"%s: Bad end of range (0x%lx)\n", 120},
   {"\
 %s: Corresponding to a range of font positions, there should be a Unicode \
-range\n", 120},
+range\n", 121},
   {"\
 Usage:\n\
-\t%s infont intable outfont\n", 121},
+\t%s infont intable outfont\n", 122},
   {"\
 Usage:\n\
-\t%s infont [outtable]\n", 122},
+\t%s infont [outtable]\n", 123},
   {"\
 Usage:\n\
-\t%s infont outfont\n", 123},
+\t%s infont outfont\n", 124},
   {"\
 Usage:\n\
-\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n", 124},
-  {"%s: Bad magic number on %s\n", 125},
-  {"%s: psf file with unknown magic\n", 126},
-  {"%s: input font does not have an index\n", 127},
-  {"resizecons: cannot find videomode file %s\n", 128},
-  {"Invalid number of lines\n", 129},
-  {"Old mode: %dx%d  New mode: %dx%d\n", 130},
-  {"Old #scanlines: %d  New #scanlines: %d  Character height: %d\n", 131},
-  {"resizecons: the command `%s' failed\n", 132},
+\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n", 125},
+  {"%s: Bad magic number on %s\n", 126},
+  {"%s: psf file with unknown magic\n", 127},
+  {"%s: input font does not have an index\n", 128},
+  {"resizecons: cannot find videomode file %s\n", 129},
+  {"Invalid number of lines\n", 130},
+  {"Old mode: %dx%d  New mode: %dx%d\n", 131},
+  {"Old #scanlines: %d  New #scanlines: %d  Character height: %d\n", 132},
+  {"resizecons: the command `%s' failed\n", 133},
   {"\
-resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n", 133},
+resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n", 134},
   {"\
 resizecons:\n\
 call is:  resizecons COLSxROWS  or:  resizecons COLS ROWS\n\
 or: resizecons -lines ROWS, with ROWS one of 25, 28, 30, 34, 36, 40, 44, 50, \
-60\n", 134},
-  {"resizecons: cannot get I/O permissions.\n", 135},
-  {"usage: screendump [n]\n", 136},
-  {"Error reading %s\n", 137},
-  {"couldn't read %s, and cannot ioctl dump\n", 138},
-  {"couldn't read %s\n", 139},
-  {"Strange ... screen is both %dx%d and %dx%d ??\n", 140},
-  {"Error writing screendump\n", 141},
+60\n", 135},
+  {"resizecons: cannot get I/O permissions.\n", 136},
+  {"usage: screendump [n]\n", 137},
+  {"Error reading %s\n", 138},
+  {"couldn't read %s, and cannot ioctl dump\n", 139},
+  {"couldn't read %s\n", 140},
+  {"Strange ... screen is both %dx%d and %dx%d ??\n", 141},
+  {"Error writing screendump\n", 142},
   {"\
 Usage: setfont [write-options] [-<N>] [newfont..] [-m consolemap] [-u \
 unicodemap]\n\
@@ -234,40 +235,39 @@ will be loaded and, in the case of consolemaps, activated.\n\
     -v         Be verbose.\n\
     -C <cons>  Indicate console device to be used.\n\
     -V         Print version and exit.\n\
-Files are loaded from the current directory or /usr/lib/kbd/*/.\n", 142},
-  {"setfont: too many input files\n", 143},
+Files are loaded from the current directory or %s/*/.\n", 143},
+  {"setfont: too many input files\n", 144},
   {"\
 setfont: cannot both restore from character ROM and from file. Font \
-unchanged.\n", 144},
-  {"Bad character height %d\n", 145},
-  {"Bad character width %d\n", 146},
-  {"%s: font position 32 is nonblank\n", 147},
-  {"%s: wiped it\n", 148},
-  {"%s: background will look funny\n", 149},
-  {"Loading %d-char %dx%d font from file %s\n", 150},
-  {"Loading %d-char %dx%d font\n", 151},
-  {"Loading %d-char %dx%d (%d) font from file %s\n", 152},
-  {"Loading %d-char %dx%d (%d) font\n", 153},
-  {"%s: bug in do_loadtable\n", 154},
-  {"Loading Unicode mapping table...\n", 155},
-  {"Cannot open font file %s\n", 156},
-  {"When loading several fonts, all must be psf fonts - %s isn't\n", 157},
-  {"Read %d-char %dx%d font from file %s\n", 158},
-  {"When loading several fonts, all must have the same height\n", 159},
-  {"When loading several fonts, all must have the same width\n", 160},
-  {"Cannot find default font\n", 161},
-  {"Cannot find %s font\n", 162},
-  {"Reading font file %s\n", 163},
-  {"No final newline in combine file\n", 164},
-  {"Too many files to combine\n", 165},
-  {"Hmm - a font from restorefont? Using the first half.\n", 166},
-  {"Bad input file size\n", 167},
+unchanged.\n", 145},
+  {"Bad character height %d\n", 146},
+  {"Bad character width %d\n", 147},
+  {"%s: font position 32 is nonblank\n", 148},
+  {"%s: wiped it\n", 149},
+  {"%s: background will look funny\n", 150},
+  {"Loading %d-char %dx%d font from file %s\n", 151},
+  {"Loading %d-char %dx%d font\n", 152},
+  {"Loading %d-char %dx%d (%d) font from file %s\n", 153},
+  {"Loading %d-char %dx%d (%d) font\n", 154},
+  {"%s: bug in do_loadtable\n", 155},
+  {"Loading Unicode mapping table...\n", 156},
+  {"Cannot open font file %s\n", 157},
+  {"When loading several fonts, all must be psf fonts - %s isn't\n", 158},
+  {"Read %d-char %dx%d font from file %s\n", 159},
+  {"When loading several fonts, all must have the same height\n", 160},
+  {"When loading several fonts, all must have the same width\n", 161},
+  {"Cannot find default font\n", 162},
+  {"Cannot find %s font\n", 163},
+  {"Reading font file %s\n", 164},
+  {"No final newline in combine file\n", 165},
+  {"Too many files to combine\n", 166},
+  {"Hmm - a font from restorefont? Using the first half.\n", 167},
+  {"Bad input file size\n", 168},
   {"\
 This file contains 3 fonts: 8x8, 8x14 and 8x16. Please indicate\n\
-using an option -8 or -14 or -16 which one you want loaded.\n", 168},
-  {"You asked for font size %d, but only 8, 14, 16 are possible here.\n", 169},
-  {"Found nothing to save\n", 170},
-  {"Cannot write font file", 171},
+using an option -8 or -14 or -16 which one you want loaded.\n", 169},
+  {"You asked for font size %d, but only 8, 14, 16 are possible here.\n", 170},
+  {"Found nothing to save\n", 171},
   {"Saved %d-char %dx%d font file on %s\n", 172},
   {"\
 usage: setkeycode scancode keycode ...\n\
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644 (file)
index 0000000..006452f
--- /dev/null
@@ -0,0 +1,70 @@
+AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DLOCALEDIR=\"$(localedir)\"
+
+OLDPROGS = mapscrn loadunimap
+PROGS = \
+       dumpkeys loadkeys showkey setfont showconsolefont \
+       setleds setmetamode kbd_mode chvt deallocvt \
+       psfxtable kbdrate fgconsole openvt
+
+if KEYCODES_PROGS
+PROGS += getkeycodes setkeycodes
+endif
+
+if RESIZECONS_PROGS
+PROGS += resizecons
+endif
+
+if OPTIONAL_PROGS
+PROGS += \
+       screendump setlogcons setvesablank spawn_console spawn_login \
+       getunimap clrunimap outpsfheader setpalette
+endif
+
+dist_bin_SCRIPTS = unicode_start unicode_stop
+bin_PROGRAMS = $(OLDPROGS) $(PROGS)
+
+EXTRA_DIST = \
+       analyze.c analyze.l wctomb.c totextmode.c \
+       README.cad README.init README.openvt \
+       cad
+
+ALL_S   = modifiers.h nls.h paths.h version.h
+FIND_S  = findfile.c findfile.h
+GETFD_S = getfd.c getfd.h
+KDMA_S  = kdmapop.c kdmapop.h
+KSYMS_S = ksyms.c ksyms.h cp1250.syms.h ethiopic.syms.h koi8.syms.h sami.syms.h thai.syms.h
+PSF_S   = psf.h psffontop.c psffontop.h
+UNIM_S  = loadunimap.c loadunimap.h
+UTF8_S  = utf8.c utf8.h
+XMAL_S  = xmalloc.c xmalloc.h
+chvt_SOURCES            = $(ALL_S) chvt.c $(GETFD_S)
+clrunimap_SOURCES       = $(ALL_S) clrunimap.c $(GETFD_S) $(KDMA_S)
+deallocvt_SOURCES       = $(ALL_S) deallocvt.c $(GETFD_S)
+dumpkeys_SOURCES        = $(ALL_S) dumpkeys.c $(GETFD_S) $(KSYMS_S) $(XMAL_S)
+fgconsole_SOURCES       = $(ALL_S) fgconsole.c $(GETFD_S)
+getkeycodes_SOURCES     = $(ALL_S) getkeycodes.c $(GETFD_S)
+getunimap_SOURCES       = $(ALL_S) getunimap.c $(GETFD_S) $(KDMA_S)
+kbd_mode_SOURCES        = $(ALL_S) kbd_mode.c $(GETFD_S)
+loadkeys_SOURCES        = $(ALL_S) loadkeys.y $(GETFD_S) $(KSYMS_S) $(XMAL_S) $(FIND_S)
+loadunimap_SOURCES      = $(ALL_S) loadunimap.c $(FIND_S) $(PSF_S) $(UTF8_S) $(XMAL_S) $(GETFD_S) $(KDMA_S)
+mapscrn_SOURCES         = $(ALL_S) mapscrn.c $(FIND_S) $(UTF8_S) $(XMAL_S) $(GETFD_S) $(KDMA_S)
+openvt_SOURCES          = $(ALL_S) openvt.c openvt.h $(GETFD_S)
+psfxtable_SOURCES       = $(ALL_S) psfxtable.c $(PSF_S) $(XMAL_S) $(UTF8_S) $(GETFD_S)
+resizecons_SOURCES      = $(ALL_S) resizecons.c $(GETFD_S) $(FIND_S) $(XMAL_S)
+screendump_SOURCES      = $(ALL_S) screendump.c $(XMAL_S)
+setfont_SOURCES         = $(ALL_S) setfont.c $(FIND_S) $(XMAL_S) $(GETFD_S) mapscrn.c $(KDMA_S) $(PSF_S) $(UTF8_S) kdfontop.c kdfontop.h $(UNIM_S)
+setkeycodes_SOURCES     = $(ALL_S) setkeycodes.c $(GETFD_S)
+setlogcons_SOURCES      = $(ALL_S) setlogcons.c $(GETFD_S)
+setpalette_SOURCES      = $(ALL_S) setpalette.c $(GETFD_S)
+setvesablank_SOURCES    = $(ALL_S) setvesablank.c $(GETFD_S)
+showconsolefont_SOURCES = $(ALL_S) showconsolefont.c $(GETFD_S) $(XMAL_S) $(KDMA_S) kdfontop.c kdfontop.h
+showkey_SOURCES         = $(ALL_S) showkey.c $(GETFD_S)
+
+mapscrn_CFLAGS = -DMAIN
+loadunimap_CFLAGS = -DMAIN
+
+install-exec-hook:
+       for i in psfaddtable psfgettable psfstriptable; do \
+               rm -f $(DESTDIR)$(bindir)/$$i; \
+               ln -s psfxtable $(DESTDIR)$(bindir)/$$i || exit $$?; \
+       done
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644 (file)
index bf1fdf1..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-prefix         = @prefix@
-exec_prefix    = @exec_prefix@
-bindir         = $(DESTDIR)@bindir@
-datarootdir    = @datarootdir@
-ENABLE_STRIP   = @STRIP@
-KEYCODES_PROGS   = @KEYCODES_PROGS@
-RESIZECONS_PROGS = @RESIZECONS_PROGS@
-OPTIONAL_PROGS   = @OPTIONAL_PROGS@
-
-# Something like /usr/lib/kbd or /usr/share/kbd
-DATA_DIR = @datadir@
-
-OLDPROGS= mapscrn loadunimap
-PROGS   = dumpkeys loadkeys showkey setfont showconsolefont \
-         setleds setmetamode kbd_mode chvt deallocvt \
-         psfxtable kbdrate fgconsole openvt
-
-# probably also getkeycodes and setkeycodes are arch-specific;
-# they will work on an alpha, though, and perhaps be dummy on a sun
-ifeq ($(KEYCODES_PROGS),yes)
-PROGS += getkeycodes setkeycodes
-endif
-
-ifeq ($(RESIZECONS_PROGS),yes)
-PROGS += resizecons
-endif
-
-# Not installed by default
-ifeq ($(OPTIONAL_PROGS),yes)
-PROGS += screendump setlogcons setvesablank spawn_console spawn_login \
-        getunimap clrunimap outpsfheader setpalette
-endif
-
-INSTALL_STRIP =
-ifeq ($(ENABLE_STRIP),yes)
-       INSTALL_STRIP = -s
-endif
-
-# Installed by default
-SHCMDS  = unicode_start unicode_stop
-
-WARN   = -Wall -Wmissing-prototypes -Wstrict-prototypes -Wunused-function \
-       -Wunused-label -Wunused-variable -Wunused-value
-DEFS   = -DDATADIR=\"$(DATA_DIR)\"
-
-.c.o:
-       $(CC) -c $(WARN) $(CFLAGS) $(DEFS) $<
-
-all:   $(PROGS) $(OLDPROGS) $(MISC)
-
-progs: $(PROGS)
-
-old:   $(OLDPROGS)
-
-# don't change 4711 to 0711 - this is the setuid target
-setuid:
-       chmod 4711 $(bindir)/openvt
-
-install: all
-       install -d -m 0755 $(bindir)
-       install $(INSTALL_STRIP) -m 0755 $(PROGS) $(OLDPROGS) $(bindir)
-       install -m 0755 $(SHCMDS) $(bindir)
-       for i in psfaddtable psfgettable psfstriptable; do \
-               rm -f $(bindir)/$$i; ln -s psfxtable $(bindir)/$$i; \
-       done
-       @echo "You may also want to add psf.magic to /usr/lib/magic"
-
-# loadkeys.o: separate rule since the flex output does not permit -Wall
-loadkeys.o: loadkeys.c analyze.c
-       $(CC) -c $(CFLAGS) $(DEFS) $<
-
-# mapscrn and loadunimap are now part of setfont
-# but can be compiled separately, if desired
-main_mapscrn.o: mapscrn.c paths.h
-       $(CC) $(CFLAGS) $(WARN) $(DEFS) -DMAIN -c $< -o $@
-
-main_loadunimap.o: loadunimap.c paths.h
-       $(CC) $(CFLAGS) $(WARN) $(DEFS) -DMAIN -c $< -o $@
-
-$(OLDPROGS): %: main_%.o findfile.o psffontop.o utf8.o
-       $(CC) $(LDFLAGS) $^ -o $@
-
-clean reallyclean spotless:
-       rm -f core *.o analyze.c loadkeys.c
-       rm -f $(PROGS) $(OLDPROGS) $(MISC) *~
-
-distclean: clean
-       rm -f Makefile
-
-$(PROGS): %: %.o
-
-#
-# dependencies
-#
-
-ksyms.o: koi8.syms.h ethiopic.syms.h
-
-findfile.o loadkeys.o loadunimap.o mapscrn.o resizecons.o setfont.o: findfile.h
-
-catwithfont.o chvt.o clrunimap.o deallocvt.o dumpkeys.o fgconsole.o: getfd.h
-getfd.o getkeycodes.o getunimap.o kbd_mode.o loadkeys.o loadunimap.o: getfd.h
-mapscrn.o resizecons.o setfont.o setkeycodes.o setlogcons.o: getfd.h
-setpalette.o setvesablank.o showconsolefont.o showkey.o: getfd.h
-
-kdfontop.o setfont.o showconsolefont.o: kdfontop.h
-
-clrunimap.o kdmapop.o loadunimap.o mapscrn.o: kdmapop.h
-
-dumpkeys.o ksyms.o loadkeys.o: ksyms.h
-
-dumpkeys.o loadkeys.o: modifiers.h
-
-catwithfont.o chvt.o clrunimap.o deallocvt.o dumpkeys.o fgconsole.o: nls.h
-findfile.o getfd.o getkeycodes.o getunimap.o kbd_mode.o kbdrate.o: nls.h
-kdfontop.o ksyms.o loadkeys.o loadunimap.o mapscrn.o psffontop.o: nls.h
-psfxtable.o resizecons.o screendump.o setfont.o setkeycodes.o setleds.o: nls.h
-setmetamode.o setvesablank.o showconsolefont.o showkey.o xmalloc.o: nls.h
-
-loadkeys.o loadunimap.o mapscrn.o resizecons.o setfont.o: paths.h
-
-loadunimap.o psffontop.o psfxtable.o setfont.o: psf.h
-
-psffontop.o psfxtable.o setfont.o: psffontop.h
-
-loadunimap.o psffontop.o utf8.o: utf8.h
-
-openvt.o: openvt.h
-chvt.o deallocvt.o dumpkeys.o getkeycodes.o getunimap.o kbd_mode.o: version.h
-kbdrate.o loadkeys.o loadunimap.o mapscrn.o psfxtable.o resizecons.o: version.h
-screendump.o setfont.o setkeycodes.o setleds.o setmetamode.o: version.h
-showconsolefont.o showkey.o totextmode.o: version.h
-
-findfile.o kdfontop.o loadunimap.o psffontop.o psfxtable.o: xmalloc.h
-setfont.o xmalloc.o: xmalloc.h
-
-#
-# constituent object files
-#
-
-dumpkeys loadkeys: ksyms.o xmalloc.o
-
-getunimap screendump showconsolefont: xmalloc.o
-
-psfxtable: psffontop.o xmalloc.o utf8.o
-
-loadkeys mapscrn setfont resizecons loadunimap: findfile.o xmalloc.o
-
-chvt clrunimap deallocvt dumpkeys fgconsole getkeycodes getunimap: getfd.o
-kbd_mode loadkeys loadunimap mapscrn resizecons setkeycodes setfont: getfd.o
-setpalette showconsolefont setlogcons setvesablank showkey openvt: getfd.o
-
-setfont: mapscrn.o loadunimap.o kdmapop.o kdfontop.o psffontop.o utf8.o
-
-loadunimap: utf8.o
-
-getunimap mapscrn clrunimap loadunimap showconsolefont: kdmapop.o
-
-catwithfont showconsolefont: kdfontop.o
-
-openvt: openvt.o
diff --git a/ylwrap b/ylwrap
new file mode 100755 (executable)
index 0000000..7278b6a
--- /dev/null
+++ b/ylwrap
@@ -0,0 +1,223 @@
+#! /bin/sh
+# ylwrap - wrapper for lex/yacc invocations.
+
+scriptversion=2007-11-22.22
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
+# 2007  Free Software Foundation, Inc.
+#
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# 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., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case "$1" in
+  '')
+    echo "$0: No files given.  Try \`$0 --help' for more information." 1>&2
+    exit 1
+    ;;
+  --basedir)
+    basedir=$2
+    shift 2
+    ;;
+  -h|--h*)
+    cat <<\EOF
+Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
+
+Wrapper for lex/yacc invocations, renaming files as desired.
+
+  INPUT is the input file
+  OUTPUT is one file PROG generates
+  DESIRED is the file we actually want instead of OUTPUT
+  PROGRAM is program to run
+  ARGS are passed to PROG
+
+Any number of OUTPUT,DESIRED pairs may be used.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v|--v*)
+    echo "ylwrap $scriptversion"
+    exit $?
+    ;;
+esac
+
+
+# The input.
+input="$1"
+shift
+case "$input" in
+  [\\/]* | ?:[\\/]*)
+    # Absolute path; do nothing.
+    ;;
+  *)
+    # Relative path.  Make it absolute.
+    input="`pwd`/$input"
+    ;;
+esac
+
+pairlist=
+while test "$#" -ne 0; do
+  if test "$1" = "--"; then
+    shift
+    break
+  fi
+  pairlist="$pairlist $1"
+  shift
+done
+
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+  [\\/]* | ?:[\\/]*) ;;
+  *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
+# FIXME: add hostname here for parallel makes that run commands on
+# other machines.  But that might take us over the 14-char limit.
+dirname=ylwrap$$
+trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
+mkdir $dirname || exit 1
+
+cd $dirname
+
+case $# in
+  0) "$prog" "$input" ;;
+  *) "$prog" "$@" "$input" ;;
+esac
+ret=$?
+
+if test $ret -eq 0; then
+  set X $pairlist
+  shift
+  first=yes
+  # Since DOS filename conventions don't allow two dots,
+  # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+  # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+  y_tab_nodot="no"
+  if test -f y_tab.c || test -f y_tab.h; then
+    y_tab_nodot="yes"
+  fi
+
+  # The directory holding the input.
+  input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+  # Quote $INPUT_DIR so we can use it in a regexp.
+  # FIXME: really we should care about more than `.' and `\'.
+  input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
+
+  while test "$#" -ne 0; do
+    from="$1"
+    # Handle y_tab.c and y_tab.h output by DOS
+    if test $y_tab_nodot = "yes"; then
+      if test $from = "y.tab.c"; then
+       from="y_tab.c"
+      else
+       if test $from = "y.tab.h"; then
+         from="y_tab.h"
+       fi
+      fi
+    fi
+    if test -f "$from"; then
+      # If $2 is an absolute path name, then just use that,
+      # otherwise prepend `../'.
+      case "$2" in
+       [\\/]* | ?:[\\/]*) target="$2";;
+       *) target="../$2";;
+      esac
+
+      # We do not want to overwrite a header file if it hasn't
+      # changed.  This avoid useless recompilations.  However the
+      # parser itself (the first file) should always be updated,
+      # because it is the destination of the .y.c rule in the
+      # Makefile.  Divert the output of all other files to a temporary
+      # file so we can compare them to existing versions.
+      if test $first = no; then
+       realtarget="$target"
+       target="tmp-`echo $target | sed s/.*[\\/]//g`"
+      fi
+      # Edit out `#line' or `#' directives.
+      #
+      # We don't want the resulting debug information to point at
+      # an absolute srcdir; it is better for it to just mention the
+      # .y file with no path.
+      #
+      # We want to use the real output file name, not yy.lex.c for
+      # instance.
+      #
+      # We want the include guards to be adjusted too.
+      FROM=`echo "$from" | sed \
+            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+      TARGET=`echo "$2" | sed \
+            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+
+      sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
+          -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
+
+      # Check whether header files must be updated.
+      if test $first = no; then
+       if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
+         echo "$2" is unchanged
+         rm -f "$target"
+       else
+          echo updating "$2"
+          mv -f "$target" "$realtarget"
+        fi
+      fi
+    else
+      # A missing file is only an error for the first file.  This
+      # is a blatant hack to let us support using "yacc -d".  If -d
+      # is not specified, we don't want an error when the header
+      # file is "missing".
+      if test $first = yes; then
+        ret=1
+      fi
+    fi
+    shift
+    shift
+    first=no
+  done
+else
+  ret=$?
+fi
+
+# Remove the directory.
+cd ..
+rm -rf $dirname
+
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End: