diff options
author | Antonello Dettori <dettori.an@gmail.com> | 2016-05-27 23:44:47 +0200 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-06-28 18:29:48 +0200 |
commit | 4f7d329caaa99814a2383872025ca1757cf4fbad (patch) | |
tree | 001d674bd8e6d8b97bb6be406ee5a4a84b61ce65 /payloads/external | |
parent | bc141debb54c0a4b3759dce655550b2937354163 (diff) | |
download | coreboot-4f7d329caaa99814a2383872025ca1757cf4fbad.tar.xz |
tint: Fix tint and add Kconfig option
Fix the compiler errors with tint, improves the Makefile,
adds Kconfig integration and secondary payload option.
Change-Id: Ia99e30f566d5ccf0d083e52bf174970535daefc5
Signed-off-by: Antonello Dettori <dettori.an@gmail.com>
Reviewed-on: https://review.coreboot.org/14989
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'payloads/external')
-rw-r--r-- | payloads/external/Makefile.inc | 7 | ||||
-rw-r--r-- | payloads/external/tint/Makefile | 33 | ||||
-rw-r--r-- | payloads/external/tint/README | 8 | ||||
-rw-r--r-- | payloads/external/tint/libpayload_tint.patch | 925 |
4 files changed, 765 insertions, 208 deletions
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc index d61fed63d7..02cb51df47 100644 --- a/payloads/external/Makefile.inc +++ b/payloads/external/Makefile.inc @@ -124,6 +124,9 @@ payloads/external/U-Boot/u-boot/u-boot-dtb.bin u-boot: $(top)/$(DOTCONFIG) CONFIG_UBOOT_MASTER=$(CONFIG_UBOOT_MASTER) \ CONFIG_UBOOT_STABLE=$(CONFIG_UBOOT_STABLE) +payloads/external/tint/tint/tint.elf tint: + $(MAKE) -C payloads/external/tint + cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest img/memtest-type := payload @@ -134,6 +137,10 @@ ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy) SERIAL_BAUD_RATE=$(CONFIG_TTYS0_BAUD) endif +cbfs-files-$(CONFIG_TINT_SECONDARY_PAYLOAD) += img/tint +img/tint-file := payloads/external/tint/tint/tint.elf +img/tint-type := payload + payloads/external/Memtest86Plus/memtest86plus/memtest: $(top)/$(DOTCONFIG) $(MAKE) -C payloads/external/Memtest86Plus all \ CC="$(CC_x86_32)" \ diff --git a/payloads/external/tint/Makefile b/payloads/external/tint/Makefile new file mode 100644 index 0000000000..0fba6e71eb --- /dev/null +++ b/payloads/external/tint/Makefile @@ -0,0 +1,33 @@ +project_url=http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool/main/t/tint/tint_0.03b.tar.gz +archive_name=tint_0.03b.tar.gz + +unexport KCONFIG_AUTOHEADER +unexport KCONFIG_AUTOCONFIG +unexport KCONFIG_DEPENDENCIES +unexport KCONFIG_SPLITCONFIG +unexport KCONFIG_TRISTATE +unexport KCONFIG_NEGATIVES + +all: tint + +tint: patch + echo " MAKE TINT " + $(MAKE) -C tint + +patch: download + cd tint; \ + if [ -e debian ]; then patch -l -p1 < ../libpayload_tint.patch; fi + +download: + test -d tint || { wget $(project_url); \ + tar -xvf $(archive_name); \ + rm $(archive_name); \ + mv tint-0.03b tint; } + +clean: + test -d tint && $(MAKE) -C tint clean || exit 0 + +distclean: + rm -rf tint + +.PHONY: download patch tint clean distclean diff --git a/payloads/external/tint/README b/payloads/external/tint/README deleted file mode 100644 index 45a015d99e..0000000000 --- a/payloads/external/tint/README +++ /dev/null @@ -1,8 +0,0 @@ -------------------------------------------------------------------------------- -tint -------------------------------------------------------------------------------- - -For instructions on how to download, patch, and build tint as a coreboot -payload, please see - - http://www.coreboot.org/Tint diff --git a/payloads/external/tint/libpayload_tint.patch b/payloads/external/tint/libpayload_tint.patch index 958741039d..c261fc1ba6 100644 --- a/payloads/external/tint/libpayload_tint.patch +++ b/payloads/external/tint/libpayload_tint.patch @@ -1,90 +1,6 @@ -Patch tint 0.03b to be usable as coreboot payload, linked against -the libpayload library. - -Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> - - -Add default libpayload build, xcompile, and lpgcc setup to tint. - -Signed-off-by: Marc Jones <marc.jones@gmail.com> - -diff -rupN tintorig/Makefile tint/Makefile ---- tintorig/Makefile 2005-07-17 05:30:54.000000000 -0600 -+++ tint/Makefile 2010-08-23 18:06:24.671875000 -0600 -@@ -28,6 +28,65 @@ - # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -+$(if $(wildcard .xcompile),,$(eval $(shell bash ./xcompile.sh &> .xcompile))) -+include .xcompile -+ -+LIBCONFIG_PATH := ../libpayload -+LIBPAYLOAD_DIR := ./libpayloadbin -+LPCC := $(LIBPAYLOAD_DIR)/libpayload/bin/lpgcc -+LPAS := $(LIBPAYLOAD_DIR)/libpayload/bin/lpas -+HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_DIR)/libpayload/lib/libpayload.a) -+LIB_CONFIG ?= defconfig -+ -+# CFLAGS := -Wall -Werror -Os -+CFLAGS := -Wall -g -Os -+TARGET := tint -+OBJS := $(TARGET).o engine.o io.o utils.o -+ -+# Make is silent per default, but 'make V=1' will show all compiler calls. -+ifneq ($(V),1) -+Q := @ -+endif -+ -+all: $(TARGET).elf -+# printf" CC $(CC)\n" -+ -+$(TARGET).elf: $(OBJS) libpayload -+ $(Q)printf " LPCC $(subst $(shell pwd)/,,$(@))\n" -+ $(Q)$(LPCC) -o $@ $(OBJS) -+ $(Q)$(OBJCOPY) --only-keep-debug $@ tint.debug -+ $(Q)$(OBJCOPY) --strip-debug $@ -+ $(Q)$(OBJCOPY) --add-gnu-debuglink=tint.debug $@ -+ -+%.o: %.c libpayload -+ $(Q)printf " LPCC $(subst $(shell pwd)/,,$(@))\n" -+ $(Q)$(LPCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< -+ -+%.S.o: %.S libpayload -+ $(Q)printf " LPAS $(subst $(shell pwd)/,,$(@))\n" -+ $(Q)$(LPAS) $(ASFLAGS) --32 -o $@ $< -+ -+ifneq ($(strip $(HAVE_LIBPAYLOAD)),) -+libpayload: -+ $(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n" -+else -+libpayload: -+ $(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n" -+ $(Q)make -C $(LIBCONFIG_PATH) distclean -+ $(Q)make -C $(LIBCONFIG_PATH) $(LIB_CONFIG) -+ $(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(shell pwd)/$(LIBPAYLOAD_DIR) install -+endif -+ -+clean: -+ $(Q)rm -f $(TARGET).elf $(TARGET).debug *.o -+ $(Q)rm .xcompile -+ -+distclean: clean -+ $(Q)rm -rf $(LIBPAYLOAD_DIR) -+ -+# Original tint targets -+ifdef $(UNUSED) -+ - #CROSS = arm-linux- - - bindir = $(DESTDIR)/usr/games -@@ -110,3 +169,4 @@ clean: - distclean: clean - $(MAKE) -C debian clean - -+endif -diff -rupN tintorig/config.h tint/config.h ---- tintorig/config.h 2001-12-07 16:03:24.000000000 -0700 -+++ tint/config.h 2010-01-27 13:59:18.000000000 -0700 +diff -rupN tint-0.03b/config.h tint/config.h +--- tint-0.03b/config.h 2001-12-08 00:03:24.000000000 +0100 ++++ tint/config.h 2016-05-27 14:47:15.797402090 +0200 @@ -29,7 +29,16 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -102,10 +18,440 @@ diff -rupN tintorig/config.h tint/config.h +#endif #endif /* #ifndef CONFIG_H */ -diff -rupN tintorig/engine.c tint/engine.c ---- tintorig/engine.c 2005-07-17 05:26:22.000000000 -0600 -+++ tint/engine.c 2010-01-27 13:59:18.000000000 -0700 -@@ -27,8 +27,12 @@ +diff -rupN tint-0.03b/debian/changelog tint/debian/changelog +--- tint-0.03b/debian/changelog 2005-07-17 13:32:20.000000000 +0200 ++++ tint/debian/changelog 1970-01-01 01:00:00.000000000 +0100 +@@ -1,53 +0,0 @@ +-tint (0.03b) unstable; urgency=low +- +- * Added breaks at end of switch statements to keep gcc 3+ happy +- (Closes: #316022) +- * Added missing includes to engine.c +- * Fixed spelling mistake in NOTES +- * Updated debian policy version +- +- -- Abraham van der Merwe <abz@debian.org> Sun, 17 Jul 2005 13:32:17 +0200 +- +-tint (0.03a) unstable; urgency=low +- +- * Applied patch with some minor tweaks from Marcello Mamino which +- adds a dotted background. +- * Applied patches from Robert Lemmen which add support for user logins as +- default name and an interactive mode for specifying the start level. +- * Show player statistics. +- +- -- Abraham van der Merwe <abz@debian.org> Mon, 16 Jun 2003 23:07:37 +0200 +- +-tint (0.02d) unstable; urgency=low +- +- * Install man page in correct directory (Closes: #128923) +- * Created a postinst program that checks for old score files +- before installing the default score file (Closes: #136466) +- * Added a menu control file (Closes: #128924) +- +- -- Abraham van der Merwe <abz@debian.org> Wed, 19 Dec 2001 18:03:34 +0200 +- +-tint (0.02c) unstable; urgency=low +- +- * Removed common-sense suggests from control file *g* (Closes: #123204) +- +- -- Abraham van der Merwe <abz@debian.org> Wed, 19 Dec 2001 18:03:34 +0200 +- +-tint (0.02b) unstable; urgency=low +- +- * Changed the name from tclassic to tint (as in TINT Is Not Tetris(tm)) +- * Added a build dependancy on libncurses5-dev (Closes: #124241) +- * Changed the location for the score file to /var/games (Closes: #124236) +- * Made score file sgid games (Closes: #123595) +- +- -- Abraham van der Merwe <abz@debian.org> Wed, 19 Dec 2001 18:03:34 +0200 +- +-tclassic (0.02a) unstable; urgency=low +- +- * Initial Release. (Closes: #122839) +- +- -- Abraham van der Merwe <abz@debian.org> Fri, 7 Dec 2001 17:59:25 +0200 +- +-Local variables: +-mode: debian-changelog +-End: +diff -rupN tint-0.03b/debian/control tint/debian/control +--- tint-0.03b/debian/control 2005-07-17 13:31:13.000000000 +0200 ++++ tint/debian/control 1970-01-01 01:00:00.000000000 +0100 +@@ -1,19 +0,0 @@ +-Source: tint +-Section: games +-Priority: optional +-Maintainer: Abraham van der Merwe <abz@debian.org> +-Build-Depends: debhelper (>> 3.0.0), libncurses5-dev +-Standards-Version: 3.6.1 +- +-Package: tint +-Architecture: any +-Depends: ${shlibs:Depends} +-Replaces: tclassic +-Conflicts: tclassic +-Description: TINT Is Not Tetris(tm) ...at least the name isn't +- As the title suggests, this is a clone of the original tetris game +- written by Alexey Pajitnov, Dmitry Pavlovsky, and Vadim Gerasimov. +- . +- I've tried to keep the game as close to the original as possible, but +- there is a few differences. Nevertheless, it's probably the closest to +- the original that you'll ever find in the UNIX world... +diff -rupN tint-0.03b/debian/copyright tint/debian/copyright +--- tint-0.03b/debian/copyright 2001-12-19 17:08:42.000000000 +0100 ++++ tint/debian/copyright 1970-01-01 01:00:00.000000000 +0100 +@@ -1,39 +0,0 @@ +-This is the Debian GNU/Linux prepackaged version of tint. These +-files were written and packaged by Abraham van der Merwe <abz@debian.org> +- +-The games is released under a derivative of the BSD license. For more +-information see http://www.opensource.org/licenses/bsd-license.html +- +-The original source can be found at: http://oasis.frogfoot.net +- +-Copyright: +- +- Copyright (c) Abraham vd Merwe <abz@blio.net> +- All rights reserved. +- +- Redistribution and use in source and binary forms, with or without +- modification, are permitted provided that the following conditions +- are met: +- +- 1. Redistributions of source code must retain the above copyright +- notice, this list of conditions and the following disclaimer. +- +- 2. Redistributions in binary form must reproduce the above copyright +- notice, this list of conditions and the following disclaimer in the +- documentation and/or other materials provided with the distribution. +- +- 3. Neither the name of the author nor the names of other contributors +- may be used to endorse or promote products derived from this software +- without specific prior written permission. +- +- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +diff -rupN tint-0.03b/debian/.depends tint/debian/.depends +--- tint-0.03b/debian/.depends 2002-03-16 17:26:42.000000000 +0100 ++++ tint/debian/.depends 1970-01-01 01:00:00.000000000 +0100 +@@ -1 +0,0 @@ +-tint.postinst.o: tint.postinst.c +diff -rupN tint-0.03b/debian/dirs tint/debian/dirs +--- tint-0.03b/debian/dirs 2002-03-16 17:58:42.000000000 +0100 ++++ tint/debian/dirs 1970-01-01 01:00:00.000000000 +0100 +@@ -1,2 +0,0 @@ +-usr/games +-usr/share/man/man6 +diff -rupN tint-0.03b/debian/docs tint/debian/docs +--- tint-0.03b/debian/docs 2001-12-07 17:25:17.000000000 +0100 ++++ tint/debian/docs 1970-01-01 01:00:00.000000000 +0100 +@@ -1,2 +0,0 @@ +-NOTES +-CREDITS +diff -rupN tint-0.03b/debian/Makefile tint/debian/Makefile +--- tint-0.03b/debian/Makefile 2002-03-16 18:41:18.000000000 +0100 ++++ tint/debian/Makefile 1970-01-01 01:00:00.000000000 +0100 +@@ -1,28 +0,0 @@ +- +-# -*- sh -*- +- +-# Written by Abraham van der Merwe <abz@blio.net> +-# Last updated: 2002-03-26 +- +-CC = gcc +-CFLAGS = -Wall -Os -pipe +-LDFLAGS = -s +- +-STRIP = strip +-STRIPFLAGS = --strip-all --remove-section=.note --remove-section=.comment +- +-OBJ = +-SRC = $(OBJ:%.o=%.c) +-PRG = +- +-all: #$(PRG) +- +-$(PRG): $(OBJ) +- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) +- +-clean: +- rm -rf tint +- rm -f *~ $(OBJ) $(PRG) *.substvars *.debhelper +- +-.PHONY: all clean +- +diff -rupN tint-0.03b/debian/menu tint/debian/menu +--- tint-0.03b/debian/menu 2002-03-16 18:31:13.000000000 +0100 ++++ tint/debian/menu 1970-01-01 01:00:00.000000000 +0100 +@@ -1,4 +0,0 @@ +-?package(tint):needs="text" section="Games/Tetris-like" \ +- title="TINT Is Not Tetris(tm)" \ +- command="sh -c '/usr/games/tint -l 5;echo;echo PRESS ENTER;read line'" \ +- hints="Text" +diff -rupN tint-0.03b/debian/postinst tint/debian/postinst +--- tint-0.03b/debian/postinst 2002-03-16 18:44:34.000000000 +0100 ++++ tint/debian/postinst 1970-01-01 01:00:00.000000000 +0100 +@@ -1,13 +0,0 @@ +-#!/bin/sh -e +- +-scorefile="/var/games/tint.scores" +- +-if [ ! -e $scorefile ] +-then +- touch $scorefile +- chmod 0664 $scorefile +- chown root:games $scorefile +-fi +- +-#DEBHELPER# +- +diff -rupN tint-0.03b/debian/postinst.c tint/debian/postinst.c +--- tint-0.03b/debian/postinst.c 2002-03-16 18:15:32.000000000 +0100 ++++ tint/debian/postinst.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,143 +0,0 @@ +- +-/* +- * Hacked up postinst program to install the default score file. We have to do it this +- * way, since the old score file is overwritten if the score file already exists in the +- * package - abz +- */ +- +-#include <sys/types.h> +-#include <sys/stat.h> +-#include <unistd.h> +-#include <fcntl.h> +-#include <pwd.h> +-#include <grp.h> +-#include <inttypes.h> +-#include <stdlib.h> +-#include <stdio.h> +-#include <string.h> +- +-/* location of score file */ +-static const char filename[] = "/var/games/tint.scores"; +- +-/* user name of default score file */ +-static const char user[] = "root"; +- +-/* group name of default score file */ +-static const char group[] = "games"; +- +-/* contents of default score file */ +-static const uint8_t contents[] = +-{ +- 0x54, 0x69, 0x6e, 0x74, 0x20, 0x30, 0x2e, 0x30, +- 0x32, 0x62, 0x20, 0x28, 0x63, 0x29, 0x20, 0x41, +- 0x62, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x76, +- 0x64, 0x20, 0x4d, 0x65, 0x72, 0x77, 0x65, 0x20, +- 0x2d, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, +- 0x52, 0x69, 0x61, 0x61, 0x6e, 0x20, 0x45, 0x6e, +- 0x67, 0x65, 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, +- 0x74, 0x00, 0x10, 0x5f, 0x00, 0x00, 0xb7, 0xc8, +- 0x20, 0x3c, 0x41, 0x62, 0x7a, 0x00, 0x80, 0x3a, +- 0x00, 0x00, 0x94, 0xc5, 0x20, 0x3c, 0x52, 0x69, +- 0x61, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x65, +- 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, 0x74, 0x00, +- 0x66, 0x21, 0x00, 0x00, 0x31, 0xc9, 0x20, 0x3c, +- 0x52, 0x69, 0x61, 0x61, 0x6e, 0x20, 0x45, 0x6e, +- 0x67, 0x65, 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, +- 0x74, 0x00, 0xdc, 0x1a, 0x00, 0x00, 0x79, 0xc6, +- 0x20, 0x3c, 0x52, 0x69, 0x61, 0x61, 0x6e, 0x20, +- 0x45, 0x6e, 0x67, 0x65, 0x6c, 0x62, 0x72, 0x65, +- 0x63, 0x68, 0x74, 0x00, 0x2f, 0x16, 0x00, 0x00, +- 0xf9, 0xc5, 0x20, 0x3c, 0x52, 0x69, 0x61, 0x61, +- 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x65, 0x6c, 0x62, +- 0x72, 0x65, 0x63, 0x68, 0x74, 0x00, 0x8b, 0x11, +- 0x00, 0x00, 0x82, 0xc7, 0x20, 0x3c, 0x41, 0x62, +- 0x7a, 0x00, 0x23, 0x10, 0x00, 0x00, 0xa9, 0xc9, +- 0x20, 0x3c, 0x44, 0x6f, 0x70, 0x70, 0x65, 0x6c, +- 0x67, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x00, 0x13, +- 0x0b, 0x00, 0x00, 0x21, 0xc7, 0x20, 0x3c, 0x4a, +- 0x6f, 0x68, 0x61, 0x6e, 0x6e, 0x20, 0x42, 0x6f, +- 0x74, 0x68, 0x61, 0x00, 0x5a, 0x09, 0x00, 0x00, +- 0xef, 0xc6, 0x20, 0x3c, 0x41, 0x62, 0x7a, 0x00, +- 0xd7, 0x07, 0x00, 0x00, 0xad, 0xc6, 0x20, 0x3c +-}; +- +-static void debhelper_stuff() +-{ +- /* dh_installdocs */ +- system ("if [ -d /usr/doc -a ! -e /usr/doc/tint -a -d /usr/share/doc/tint ]; then\n" +- " ln -sf ../share/doc/tint /usr/doc/tint\n" +- "fi\n"); +- +- /* dh_installmenu */ +- system ("if [ -x /usr/bin/update-menus ]; then update-menus ; fi"); +-} +- +-int main (int argc,char *argv[]) +-{ +- struct stat sb; +- +- /* we only do something if we're called as <program> configure ... */ +- if (argc < 2 || strcmp (argv[1],"configure")) exit (EXIT_SUCCESS); +- +- /* if the score file doesn't exist, create it */ +- if (stat (filename,&sb) < 0) +- { +- int fd,result; +- struct passwd *u; +- struct group *g; +- uid_t uid; +- gid_t gid; +- +- /* get uid */ +- if ((u = getpwnam (user)) == NULL) +- { +- fprintf (stderr,"Couldn't obtain uid for %s: %m\n",user); +- exit (EXIT_FAILURE); +- } +- uid = u->pw_uid; +- +- /* get gid */ +- if ((g = getgrnam (group)) == NULL) +- { +- fprintf (stderr,"Couldn't obtain gid for %s: %m\n",group); +- exit (EXIT_FAILURE); +- } +- gid = g->gr_gid; +- +- /* create default score file */ +- if ((fd = creat (filename,0664)) < 0) +- { +- fprintf (stderr,"Couldn't create score file %s: %m\n",filename); +- exit (EXIT_FAILURE); +- } +- result = write (fd,contents,sizeof (contents)); +- if (result < 0) +- { +- fprintf (stderr,"Unable to write to %s: %m\n",filename); +- close (fd); +- unlink (filename); +- exit (EXIT_FAILURE); +- } +- if (result < sizeof (contents)) +- { +- fprintf (stderr,"Short write count. %d/%d bytes written to %s\n",result,sizeof (contents),filename); +- close (fd); +- unlink (filename); +- exit (EXIT_FAILURE); +- } +- close (fd); +- +- /* change ownership of score file */ +- if (chown (filename,uid,gid) < 0) +- { +- fprintf (stderr,"Couldn't change ownership of %s to %s:%s: %m\n",filename,user,group); +- unlink (filename); +- exit (EXIT_FAILURE); +- } +- } +- +- debhelper_stuff (); +- +- exit (EXIT_SUCCESS); +-} +- +diff -rupN tint-0.03b/debian/rules tint/debian/rules +--- tint-0.03b/debian/rules 2002-03-16 18:00:11.000000000 +0100 ++++ tint/debian/rules 1970-01-01 01:00:00.000000000 +0100 +@@ -1,82 +0,0 @@ +-#!/usr/bin/make -f +- +-# -*- sh -*- +- +-# Uncomment this to turn on verbose mode. +-export DH_VERBOSE=1 +- +-# This is the debhelper compatability version to use. +-export DH_COMPAT=3 +- +-configure: configure-stamp +-configure-stamp: +- dh_testdir +- # Add here commands to configure the package. +- +- +- touch configure-stamp +- +-build: configure-stamp build-stamp +-build-stamp: +- dh_testdir +- +- # Add here commands to compile the package. +- $(MAKE) +- +- touch build-stamp +- +-clean: +- dh_testdir +- dh_testroot +- rm -f build-stamp configure-stamp +- +- # Add here commands to clean up after the build process. +- -$(MAKE) clean +- +- dh_clean +- +-install: build +- dh_testdir +- dh_testroot +- dh_clean -k +- dh_installdirs +- +- # Add here commands to install the package into debian/tint. +- $(MAKE) install DESTDIR=$(CURDIR)/debian/tint +- +-# Build architecture-independent files here. +-binary-indep: build install +-# We have nothing to do by default. +- +-# Build architecture-dependent files here. +-binary-arch: build install +- dh_testdir +- dh_testroot +-# dh_installdebconf +- dh_installdocs +-# dh_installexamples +- dh_installmenu +-# dh_installlogrotate +-# dh_installemacsen +-# dh_installpam +-# dh_installmime +-# dh_installinit +-# dh_installcron +- dh_installman +-# dh_installinfo +-# dh_undocumented +- dh_installchangelogs +- dh_link +- dh_strip +- dh_compress +-# dh_fixperms --exclude /usr/games/tint +-# dh_makeshlibs +- dh_installdeb +-# dh_perl +- dh_shlibdeps +- dh_gencontrol +- dh_md5sums +- dh_builddeb +- +-binary: binary-indep binary-arch +-.PHONY: build clean binary-indep binary-arch binary install configure +diff -rupN tint-0.03b/engine.c tint/engine.c +--- tint-0.03b/engine.c 2005-07-17 13:26:22.000000000 +0200 ++++ tint/engine.c 2016-05-27 19:05:21.681035752 +0200 +@@ -27,10 +27,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -116,11 +462,25 @@ diff -rupN tintorig/engine.c tint/engine.c #include <string.h> +#endif - #include "typedefs.h" +-#include "typedefs.h" #include "utils.h" -diff -rupN tintorig/io.c tint/io.c ---- tintorig/io.c 2001-12-07 08:48:20.000000000 -0700 -+++ tint/io.c 2010-01-27 13:59:18.000000000 -0700 + #include "io.h" + #include "engine.h" +diff -rupN tint-0.03b/engine.h tint/engine.h +--- tint-0.03b/engine.h 2001-12-07 16:48:08.000000000 +0100 ++++ tint/engine.h 2016-05-27 19:04:32.456828081 +0200 +@@ -29,7 +29,7 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#include "typedefs.h" /* bool */ ++#include "curses.h" /* bool */ + + /* + * Macros +diff -rupN tint-0.03b/io.c tint/io.c +--- tint-0.03b/io.c 2001-12-07 16:48:20.000000000 +0100 ++++ tint/io.c 2016-05-27 14:47:15.798402053 +0200 @@ -27,9 +27,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -173,9 +533,166 @@ diff -rupN tintorig/io.c tint/io.c return ch; } -diff -rupN tintorig/tint.c tint/tint.c ---- tintorig/tint.c 2005-07-17 05:26:43.000000000 -0600 -+++ tint/tint.c 2010-08-23 18:13:53.281250000 -0600 +diff -rupN tint-0.03b/Makefile tint/Makefile +--- tint-0.03b/Makefile 2005-07-17 13:30:54.000000000 +0200 ++++ tint/Makefile 2016-05-27 21:04:02.374391088 +0200 +@@ -28,85 +28,79 @@ + # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-#CROSS = arm-linux- +- +-bindir = $(DESTDIR)/usr/games +-mandir = $(DESTDIR)/usr/share/man +-localstatedir = $(DESTDIR)/var/games +- +-ifeq ($(CC),) +-CC = gcc +-else +-ifeq ($(CC),colorgcc) +- ifneq ($(CROSS),) +- CC = gcc +- endif ++# in addition to the dependency below, create the file if it doesn't exist ++# to silence warnings about a file that would be generated anyway. ++$(if $(wildcard .xcompile),,$(eval $(shell ../../../../util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile))) ++.xcompile: ../../../../util/xcompile/xcompile ++ ++CONFIG_COMPILER_GCC := y ++ARCH-y := x86_32 ++ ++include .xcompile ++ ++src := $(CURDIR) ++srctree := $(src) ++tint_obj := $(src)/build ++ ++LIBCONFIG_PATH := $(realpath ../../../libpayload) ++LIBPAYLOAD_DIR := $(tint_obj)/libpayload ++HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_DIR)/lib/libpayload.a) ++LIB_CONFIG ?= configs/defconfig-tinycurses ++ ++# CFLAGS := -Wall -Werror -Os ++CFLAGS := -Wall -g -Os ++TARGET := tint ++OBJS := $(TARGET).o engine.o io.o utils.o ++ ++ARCH-y := x86_32 ++ ++CC := $(CC_$(ARCH-y)) ++AS := $(AS_$(ARCH-y)) ++OBJCOPY := $(OBJCOPY_$(ARCH-y)) ++ ++LPCC := CC="$(CC)" $(LIBPAYLOAD_DIR)/bin/lpgcc ++LPAS := AS="$(AS)" $(LIBPAYLOAD_DIR)/bin/lpas ++ ++# Make is silent per default, but 'make V=1' will show all compiler calls. ++ifneq ($(V),1) ++Q := @ + endif +-endif +- +-CFLAGS = -Wall -Os -pipe +-CPPFLAGS = -DSCOREFILE=\"$(localstatedir)/$(PRG).scores\" #-DUSE_RAND +-LDFLAGS = -s +-LDLIBS = -lncurses +- +-STRIP = strip +-STRIPFLAGS = --strip-all --remove-section=.note --remove-section=.comment +- +-INSTALL = install +- +-OBJ = engine.o utils.o io.o tint.o +-SRC = $(OBJ:%.o=%.c) +-PRG = tint +- +- ########### NOTHING TO EDIT BELOW THIS ########### +- +-.PHONY: all clean do-it-all depend with-depends without-depends debian postinst +- +-all: do-it-all postinst + +-ifeq (.depends,$(wildcard .depends)) +-include .depends +-do-it-all: with-depends ++all: $(TARGET).elf ++# printf" CC $(CC)\n" ++ ++$(TARGET).elf: $(OBJS) libpayload ++ $(Q)printf " LPCC $(subst $(shell pwd)/,,$(@))\n" ++ $(Q)$(LPCC) -o $@ $(OBJS) ++ $(Q)$(OBJCOPY) --only-keep-debug $@ tint.debug ++ $(Q)$(OBJCOPY) --strip-debug $@ ++ $(Q)$(OBJCOPY) --add-gnu-debuglink=tint.debug $@ ++ ++%.o: %.c libpayload ++ $(Q)printf " LPCC $(subst $(shell pwd)/,,$(@))\n" ++ $(Q)$(LPCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< ++ ++%.S.o: %.S libpayload ++ $(Q)printf " LPAS $(subst $(shell pwd)/,,$(@))\n" ++ $(Q)$(LPAS) $(ASFLAGS) --32 -o $@ $< ++ ++ifneq ($(strip $(HAVE_LIBPAYLOAD)),) ++libpayload: ++ $(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n" + else +-do-it-all: without-depends +-endif +- +-without-depends: depend with-depends +- +-depend: +- rm -f .depends +- set -e; for F in $(SRC); do $(CC) -MM $(CFLAGS) $(CPPFLAGS) $$F >> .depends; done +- +-with-depends: $(PRG) +- +-$(PRG): $(OBJ) +- $(CROSS)$(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) +- $(CROSS)$(STRIP) $(STRIPFLAGS) $@ +- +-ifneq ($(DESTDIR),) +-install: $(PRG) +- $(INSTALL) -d $(bindir) $(mandir) $(localstatedir) +- $(INSTALL) -s -g games -o root -m 2755 $(PRG) $(bindir) +- $(INSTALL) -g games -o root -m 0644 $(PRG).6 $(mandir)/man6 +-# cp tint.scores $(localstatedir)/$(PRG).scores +-# chown root.games $(localstatedir)/$(PRG).scores +-# chmod 0664 $(localstatedir)/$(PRG).scores +- +-uninstall: +- rm -f $(bindir)/$(PRG) $(mandir)/man6/$(PRG).6 $(localstatedir)/$(PRG).scores ++libpayload: ++ $(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n" ++ $(Q)make -C $(LIBCONFIG_PATH) distclean ++ $(Q)make -C $(LIBCONFIG_PATH) defconfig KBUILD_DEFCONFIG=$(LIB_CONFIG) ++ $(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(tint_obj) install + endif + +-postinst: +- $(MAKE) -C debian +- +-debian: +- dpkg-buildpackage -rfakeroot -k2B555AEE +- + clean: +- rm -f .depends *~ $(OBJ) $(PRG) {configure,build}-stamp gmon.out a.out +- rm -rf debian/$(PRG) +- rm -f debian/*.{debhelper,substvars} debian/files debian/*~ ++ $(Q)rm -f $(TARGET).elf $(TARGET).debug *.o ++ $(Q)rm .xcompile + + distclean: clean +- $(MAKE) -C debian clean ++ $(Q)rm -rf $(tint_obj) + ++ ++.PHONY: all clean do-it-all depend with-depends without-depends debian postinst +Binary files tint-0.03b/.Makefile.swp and tint/.Makefile.swp differ +diff -rupN tint-0.03b/tint.c tint/tint.c +--- tint-0.03b/tint.c 2005-07-17 13:26:43.000000000 +0200 ++++ tint/tint.c 2016-05-27 18:59:53.838346317 +0200 @@ -1,4 +1,3 @@ - /* @@ -189,15 +706,17 @@ diff -rupN tintorig/tint.c tint/tint.c #include <stdlib.h> #include <stdio.h> #include <string.h> -@@ -34,6 +34,7 @@ +@@ -34,8 +34,8 @@ #include <pwd.h> #include <sys/types.h> #include <unistd.h> +#endif - #include "typedefs.h" +-#include "typedefs.h" #include "utils.h" -@@ -321,6 +322,7 @@ typedef struct + #include "io.h" + #include "config.h" +@@ -321,6 +321,7 @@ typedef struct time_t timestamp; } score_t; @@ -205,7 +724,7 @@ diff -rupN tintorig/tint.c tint/tint.c static void getname (char *name) { struct passwd *pw = getpwuid (geteuid ()); -@@ -337,7 +339,9 @@ static void getname (char *name) +@@ -337,7 +338,9 @@ static void getname (char *name) name[NAMELEN - 1] = '\0'; } } @@ -215,7 +734,7 @@ diff -rupN tintorig/tint.c tint/tint.c static void err1 () { fprintf (stderr,"Error creating %s\n",scorefile); -@@ -349,10 +353,11 @@ static void err2 () +@@ -349,10 +352,11 @@ static void err2 () fprintf (stderr,"Error writing to %s\n",scorefile); exit (EXIT_FAILURE); } @@ -228,7 +747,7 @@ diff -rupN tintorig/tint.c tint/tint.c "\n\t PLAYER STATISTICS\n\n\t" "Score %11d\n\t" "Efficiency %11d\n\t" -@@ -360,6 +365,7 @@ void showplayerstats (engine_t *engine) +@@ -360,6 +364,7 @@ void showplayerstats (engine_t *engine) GETSCORE (engine->score),engine->status.efficiency,GETSCORE (engine->score) / getsum ()); } @@ -236,7 +755,7 @@ diff -rupN tintorig/tint.c tint/tint.c static void createscores (int score) { FILE *handle; -@@ -394,7 +400,9 @@ static void createscores (int score) +@@ -394,7 +399,9 @@ static void createscores (int score) fprintf (stderr,"%s",scoretitle); fprintf (stderr,"\t 1* %7d %s\n\n",score,scores[0].name); } @@ -246,7 +765,7 @@ diff -rupN tintorig/tint.c tint/tint.c static int cmpscores (const void *a,const void *b) { int result; -@@ -412,7 +420,9 @@ static int cmpscores (const void *a,cons +@@ -412,7 +419,9 @@ static int cmpscores (const void *a,cons /* timestamps is equal */ return 0; } @@ -256,7 +775,7 @@ diff -rupN tintorig/tint.c tint/tint.c static void savescores (int score) { FILE *handle; -@@ -490,11 +500,13 @@ static void savescores (int score) +@@ -490,11 +499,13 @@ static void savescores (int score) } fprintf (stderr,"\n"); } @@ -270,7 +789,7 @@ diff -rupN tintorig/tint.c tint/tint.c static void showhelp () { fprintf (stderr,"USAGE: tint [-h] [-l level] [-n]\n"); -@@ -504,9 +516,11 @@ static void showhelp () +@@ -504,9 +515,11 @@ static void showhelp () fprintf (stderr," -d Draw vertical dotted lines\n"); exit (EXIT_FAILURE); } @@ -282,7 +801,7 @@ diff -rupN tintorig/tint.c tint/tint.c int i = 1; while (i < argc) { -@@ -536,10 +550,12 @@ static void parse_options (int argc,char +@@ -536,10 +549,12 @@ static void parse_options (int argc,char } i++; } @@ -295,7 +814,7 @@ diff -rupN tintorig/tint.c tint/tint.c char buf[NAMELEN]; do -@@ -549,6 +565,8 @@ static void choose_level () +@@ -549,6 +564,8 @@ static void choose_level () buf[strlen (buf) - 1] = '\0'; } while (!str2int (&level,buf) || level < MINLEVEL || level > MAXLEVEL); @@ -304,7 +823,7 @@ diff -rupN tintorig/tint.c tint/tint.c } /***************************************************************************/ -@@ -663,8 +681,15 @@ int main (int argc,char *argv[]) +@@ -663,8 +680,15 @@ int main (int argc,char *argv[]) if (ch != 'q') { showplayerstats (&engine); @@ -320,10 +839,82 @@ diff -rupN tintorig/tint.c tint/tint.c +#endif } -diff -rupN tintorig/utils.c tint/utils.c ---- tintorig/utils.c 2001-12-07 08:49:19.000000000 -0700 -+++ tint/utils.c 2010-01-27 13:59:18.000000000 -0700 -@@ -27,9 +27,13 @@ +diff -rupN tint-0.03b/typedefs.h tint/typedefs.h +--- tint-0.03b/typedefs.h 2001-12-07 16:49:06.000000000 +0100 ++++ tint/typedefs.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,68 +0,0 @@ +-#ifndef TYPEDEFS_H +-#define TYPEDEFS_H +- +-/* +- * Copyright (c) Abraham vd Merwe <abz@blio.net> +- * All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * 3. Neither the name of the author nor the names of other contributors +- * may be used to endorse or promote products derived from this software +- * without specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +- +-/* +- * Boolean definitions +- */ +- +-#ifndef bool +-#define bool int +-#endif +- +-#if !defined(false) || (false != 0) +-#define false 0 +-#endif +- +-#if !defined(true) || (true != 0) +-#define true 1 +-#endif +- +-#if !defined(FALSE) || (FALSE != false) +-#define FALSE false +-#endif +- +-#if !defined(TRUE) || (TRUE != true) +-#define TRUE true +-#endif +- +-/* +- * Error flags +- */ +- +-#if !defined(ERR) || (ERR != -1) +-#define ERR -1 +-#endif +- +-#if !defined(OK) || (OK != 0) +-#define OK 0 +-#endif +- +-#endif /* #ifndef TYPEDEFS_H */ +diff -rupN tint-0.03b/utils.c tint/utils.c +--- tint-0.03b/utils.c 2001-12-07 16:49:19.000000000 +0100 ++++ tint/utils.c 2016-05-27 19:05:40.313351887 +0200 +@@ -27,11 +27,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -333,11 +924,13 @@ diff -rupN tintorig/utils.c tint/utils.c #include <stdlib.h> #include <time.h> #include <limits.h> +- +-#include "typedefs.h" +#endif - #include "typedefs.h" - -@@ -41,8 +45,11 @@ void rand_init () + /* + * Initialize random number generator +@@ -41,8 +43,11 @@ void rand_init () #ifdef USE_RAND srand (time (NULL)); #else @@ -349,7 +942,7 @@ diff -rupN tintorig/utils.c tint/utils.c } /* -@@ -61,6 +68,7 @@ int rand_value (int range) +@@ -61,6 +66,7 @@ int rand_value (int range) * Convert an str to long. Returns TRUE if successful, * FALSE otherwise. */ @@ -357,88 +950,20 @@ diff -rupN tintorig/utils.c tint/utils.c bool str2int (int *i,const char *str) { char *endptr; -@@ -69,3 +77,4 @@ bool str2int (int *i,const char *str) +@@ -69,3 +75,4 @@ bool str2int (int *i,const char *str) return TRUE; } +#endif -diff -rupN tintorig/xcompile.sh tint/xcompile.sh ---- tintorig/xcompile.sh 1969-12-31 17:00:00.000000000 -0700 -+++ tint/xcompile.sh 2010-03-10 15:34:51.421875000 -0700 -@@ -0,0 +1,76 @@ -+#!/bin/bash -+ -+CONFIG=defconfig -+SCRIPT_DIR=`dirname "$0"` -+ -+for make in make gmake gnumake; do -+ if [ "`$make --version 2>/dev/null | grep -c GNU`" -gt 0 ]; then -+ MAKE=$make -+ break -+ fi -+done -+ -+GCCPREFIX=invalid -+for gccprefixes in `pwd`/$SCRIPT_DIR/../../util/crossgcc/xgcc/bin/i386-elf- i386-elf- ""; do -+ TMP=`mktemp /tmp/temp.XXXX` -+ echo "mov %eax, %eax" > ${TMP}.s -+ printf "\x7fELF" > ${TMP}.compare -+ if which ${gccprefixes}as 2>/dev/null >/dev/null; then -+ printf "" -+ else -+ continue -+ fi -+ if ${gccprefixes}as --32 -o ${TMP}.o ${TMP}.s; then -+ dd bs=4 count=1 if=${TMP}.o > ${TMP}.test 2>/dev/null -+ if cmp ${TMP}.test ${TMP}.compare; then -+ GCCPREFIX=$gccprefixes -+ rm -f $TMP ${TMP}.s ${TMP}.o ${TMP}.compare ${TMP}.test -+ break -+ fi -+ fi -+ rm -f $TMP ${TMP}.s ${TMP}.o ${TMP}.compare ${TMP}.test -+done -+ -+if [ "$GCCPREFIX" = "invalid" ]; then -+ echo no suitable gcc found -+ exit 1 -+fi -+ -+#MAKEFLAGS=" \ -+# AS=\"${GCCPREFIX}as --32\" \ -+# CC=\"${GCCPREFIX}gcc -m32\" \ -+# AR=\"${GCCPREFIX}ar\" \ -+# LD=\"${GCCPREFIX}ld -b elf32-i386\" \ -+# STRIP=\"${GCCPREFIX}strip\" \ -+# NM=\"${GCCPREFIX}nm\" \ -+# HOSTCC=gcc \ -+# -j \ -+#" -+ -+cat << afteroptions -+export AS:=${GCCPREFIX}as --32 -+export CC:=${GCCPREFIX}gcc -m32 -+export CPP:=${GCCPREFIX}cpp -+export AR:=${GCCPREFIX}ar -+export LD:=${GCCPREFIX}ld -b elf32-i386 -+export STRIP:=${GCCPREFIX}strip -+export NM:=${GCCPREFIX}nm -+export OBJCOPY:=${GCCPREFIX}objcopy -+export OBJDUMP:=${GCCPREFIX}objdump -+export HOSTCC:=gcc -+afteroptions -+ -+# Should we let the payload build libpayload or do it for them? -+#test -d ./build || ( -+# BUILDDIR=$PWD -+# cd ../libpayload -+# $MAKE distclean -+# cp configs/$CONFIG .config -+# $MAKE oldconfig -+# eval $MAKE $MAKEFLAGS -+# eval $MAKE $MAKEFLAGS DESTDIR=$BUILDDIR/build install -+# cd .. -+#) -+ -+# eval $MAKE -C $SCRIPT_DIR $MAKEFLAGS -+ +diff -rupN tint-0.03b/utils.h tint/utils.h +--- tint-0.03b/utils.h 2001-12-07 16:49:35.000000000 +0100 ++++ tint/utils.h 2016-05-27 19:00:34.120754123 +0200 +@@ -29,7 +29,7 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#include "typedefs.h" ++#include <curses.h> + + /* + * Initialize random number generator |