initial import

This commit is contained in:
tonton Th 2020-03-28 09:11:11 +01:00
commit 33f0954c7b
3 changed files with 861 additions and 0 deletions

341
Makefile.boucle Normal file
View File

@ -0,0 +1,341 @@
##################################################################
# #
# Makefile pour "clients/serveur guinness" #
# #
# Thomas Nemeth. #
# #
##################################################################
##################################################################
# #
# PARTIE DES VARIABLES MODIFIABLES #
# VARIABLES MODIFICATIONS ALLOWED PART #
# #
##################################################################
#*****************************************************************
# Répertoire d'installation
#
# Edited for Debian GNU/Linux.
DESTDIR = /tmp
PREFIX = usr/local
INSTALLDIR = $(DESTDIR)/$(PREFIX)
BINDIR = $(INSTALLDIR)/bin
# MANDIR = $(INSTALLDIR)/share/man/man1
MANDIR = $(INSTALLDIR)/man/man1
DATADIR = $(INSTALLDIR)/share/guinness-server
##################################################################
# #
# PARTIE DES VARIABLES NON MODIFIABLES ! #
# NO MODIFICATION BELOW THIS LINE ! #
# #
##################################################################
#*****************************************************************
# RÉCUPÉRATION DU NOM DU RÉPERTOIRE DE DONNÉES :
#
###
# GNU Make : non portable
# OLDDATADIR = $(shell cat DATADIR)
# OLDDATADIR = `cat DATADIR`
REALDATADIR = $(PREFIX)/share/guinness-server
DOCDIR = $(DATADIR)/docs
#*****************************************************************
# TYPE D'OS :
#
###
# GNU Make : non portable
# MY_OSTYPE = $(shell uname -s)
# MY_OSTYPE = `uname -s`
#*****************************************************************
# FLAGS :
#
CFLAGS =
CPPFLAGS = -O2 -Wall
EXTRA_CPPFLAGS = -D${MY_OSTYPE}
LDFLAGS =
#*****************************************************************
# DEBUG MODE FLAGS :
#
DEBUG_CFLAGS = -g3
# DEBUG_CPPFLAGS = -DDEBUG
DEBUG_LDFLAGS = -g3
#*****************************************************************
# BIBLIOTHÈQUES NÉCESSAIRES ET DIFFÉRENCIATION DES OS :
#
# Pour OpenBSD : CPPFLAGS += -I/local/OpenBSD/src/gnu/usr.bin/binutils/include
SYSLIBS = -lcrypt
SERVERLIBS = -lpthread
###
# GNU Make : non portable
# ifeq "$(MY_OSTYPE)" "SunOS"
# SYSLIBS += -lsocket -lnsl -lresolv
# CPPFLAGS += -D__BUILTIN_VA_ARG_INCR
# endif
# ifeq "$(MY_OSTYPE)" "FreeBSD"
# SERVERLIBS = -lc_r
# else
# SERVERLIBS = -lpthread
# endif
# OpenBSD : pour trouver getopt.h
# CPPFLAGS += -I/local/OpenBSD/src/gnu/usr.bin/binutils/include
CLIENTLIBS =
#*****************************************************************
# PROGRAMS - INFOS - SOURCES - OBJECTS :
#
PROG = guinness-server
PROG1 = guinnessd
PROG2 = guinness
###
# GNU Make : non portable
# VERSION = $(shell cat VERSION)
# VERSION = `cat VERSION`
CC = gcc
CP = cp
RM = rm
INSTALL = install
GZIP = gzip
SED = sed
SRCS1 = tools.c\
xmem.c\
printlog.c\
lists.c\
broadcast.c\
drinks.c\
clients.c\
commands.c\
guinnessd.c
SRCS2 = tools.c\
xmem.c\
guinness.c
OBJS1 = $(SRCS1:%.c=%.o)
OBJS2 = $(SRCS2:%.c=%.o)
DOCS = guinness-server.html\
guinness.1\
guinness-7bits.1\
guinnessd.1\
guinnessd-7bits.1\
guinness-man.txt\
guinness-man.man\
guinnessd-man.txt\
guinnessd-man.man
###
# GNU Make : non portable
# TODAY = $(shell date '+%d %B %Y')
# TODAY = `date '+%d %B %Y'`
##################################################################
# FICHIERS POUR LE PAQUETAGE CLIENT
#
CLIENT = guinness-client
CLIENT_FILES = VERSION COPYING makedep CHANGES README BUGS TODO DATADIR guinness.* tools.* xmem.* guinness-server* config.h* defines.h
##################################################################
# DÉFINITIONS GLOBALES
#
DEFAULT_CPPFLAGS = $(CPPFLAGS) $(EXTRA_CPPFLAGS)
TOOLKIT_CPPFLAGS =
ALL_CFLAGS = $(CFLAGS) $(GTK_CFLAGS) $(DEBUG_CFLAGS)
ALL_CPPFLAGS = $(DEFAULT_CPPFLAGS) $(TOOLKIT_CPPFLAGS) $(DEBUG_CPPFLAGS)
ALL_LIBS = $(SYSLIBS) $(XLIBS) $(DEBUG_LDFLAGS)
##################################################################
# RÈGLES
#
# Rajouts ? Idées :
# Pour une version texte:
# groff -man -Tlatin1 -P-u -P-b guinness-server.1
#
# Pour une version html
# groff -man -Thtml guinness-server.1
#
.PHONY: all dep datadir documentation mostlyclean clean distclean package clientpack binaries packages htmlonline online softinstall install uninstall
all: datadir config.h documentation $(PROG1) $(PROG2)
dep: .dependencies
datadir:
@if [ "$(OLDDATADIR)" != "$(REALDATADIR)" ]; then \
echo "$(REALDATADIR)" > DATADIR ; \
else \
echo "Répertoire de configuration : $(DATADIR)" ; \
fi
config.h: config.h.in VERSION DATADIR
$(SED) -e "s/§VERSION§/$(VERSION)/g" \
-e "s,§DATADIR§,$(REALDATADIR),g" \
-e "s/§OSTYPE§/$(MY_OSTYPE)/g" \
-e "s/§TODAY§/${TODAY}/g" $< > $@
documentation: $(DOCS)
guinness-server.html: guinness-server.html.in guinnessd.1 guinness.1 VERSION
$(SED) -e "s/§VERSION§/$(VERSION)/g" -e "s/§TODAY§/${TODAY}/g" $< > $@
%.1: %.1.in VERSION
$(SED) -e "s/§VERSION§/$(VERSION)/g" \
-e "s/§TODAY§/${TODAY}/g" \
-e "s,§DATADIR§,$(REALDATADIR),g" $< > $@
%-7bits.1: %.1
cat $< | tr "[éèêëàâäçùûüîïôöÀÉ«»]" "[eeeeaaacuuuiiooAE\"\"]" \
| $(SED) -e 's/°/ degres /g' > $@
%-man.txt: %.1
groff -man -Tlatin1 -P-u -P-b $< > $@
%-man.man: %.1
groff -man -Tlatin1 $< > $@
# man -l $< > $@
$(PROG1): config.h $(OBJS1)
$(CC) -o $(PROG1) $(OBJS1) $(LDFLAGS) $(ALL_LIBS) $(SERVERLIBS)
$(PROG2): config.h $(OBJS2)
$(CC) -o $(PROG2) $(OBJS2) $(LDFLAGS) $(ALL_LIBS) $(CLIENTLIBS)
%.o: %.c %.h
$(CC) -c $(ALL_CFLAGS) -I/usr/include $(ALL_CPPFLAGS) $<
mostlyclean:
-$(RM) -f *~ *.o
-$(RM) -f core
-$(RM) -f boissons/*~
clean: mostlyclean
-$(RM) -f $(PROG1)
-$(RM) -f $(PROG2)
distclean: clean
-$(RM) -f config.h
-$(RM) -f guinness-server.html
-$(RM) -f *.1 guinness*-man.txt guinness*-man.man
mrproper: distclean
-$(RM) -f .dep*
-$(RM) -f .variables
package: distclean
cd .. ; \
$(CP) -R $(PROG) $(PROG)-$(VERSION) ; \
tar -cf $(PROG)-$(VERSION).tar $(PROG)-$(VERSION)/ ; \
$(GZIP) --best $(PROG)-$(VERSION).tar ; \
$(RM) -rf $(PROG)-$(VERSION)/
devpack: mrproper
cd .. ; \
tar -cf $(PROG)-dev.tar $(PROG)/ ; \
$(GZIP) --best $(PROG)-dev.tar ;
clientpack: clean
mkdir $(CLIENT)-$(VERSION)
$(CP) $(CLIENT_FILES) $(CLIENT)-$(VERSION)/
sed -e 's/all:.*/all: $(PROG2)/' Makefile > $(CLIENT)-$(VERSION)/Makefile
tar -cf ../$(CLIENT)-$(VERSION).tar $(CLIENT)-$(VERSION)/
$(GZIP) --best ../$(CLIENT)-$(VERSION).tar
-$(RM) -rf $(CLIENT)-$(VERSION)
binaries: $(PROG1) $(PROG2) $(PROG1).1 $(PROG2).1
$(MAKE) install DESTDIR=rootdir PREFIX=$(PREFIX)
cd rootdir ; \
tar -cf ../../$(PROG)-bin-$(VERSION).tar * ; \
$(GZIP) --best ../../$(PROG)-bin-$(VERSION).tar
-$(RM) -rf rootdir
packages: binaries clientpack package
htmlonline: $(PROG).html $(PROG1)-man.txt $(PROG1)-man.man $(PROG2)-man.txt $(PROG2)-man.man
-$(RM) -f $(HOME)/public_html/projets/$(PROG).html
-$(RM) -f $(HOME)/public_html/projets/$(PROG1)-man*
-$(RM) -f $(HOME)/public_html/projets/$(PROG2)-man*
$(CP) $(PROG).html $(HOME)/public_html/projets/
$(CP) $(PROG1)-man* $(HOME)/public_html/projets/
$(CP) $(PROG2)-man* $(HOME)/public_html/projets/
online: htmlonline packages
-$(RM) -f $(HOME)/public_html/projets/programmes/guinness*
mv ../guinness*.tar.gz $(HOME)/public_html/projets/programmes/
$(CP) README $(HOME)/public_html/projets/programmes/$(PROG).README
$(CP) CHANGES $(HOME)/public_html/projets/programmes/$(PROG).CHANGES
$(CP) TODO $(HOME)/public_html/projets/programmes/$(PROG).TODO
$(CP) BUGS $(HOME)/public_html/projets/programmes/$(PROG).BUGS
softinstall:
$(INSTALL) -d --mode=0755 $(BINDIR)
$(INSTALL) -s --mode=0755 ./$(PROG1) $(BINDIR)
$(INSTALL) -s --mode=0755 ./$(PROG2) $(BINDIR)
install: softinstall
$(INSTALL) -d --mode=0755 $(MANDIR)
$(INSTALL) -d --mode=0755 $(DOCDIR)
$(INSTALL) -d --mode=0755 $(DATADIR)/boissons
$(INSTALL) --mode=0644 boissons/* $(DATADIR)/boissons
$(INSTALL) --mode=0644 ./$(PROG1).1 $(MANDIR)
$(INSTALL) --mode=0644 ./$(PROG2).1 $(MANDIR)
$(GZIP) --best $(MANDIR)/$(PROG1).1
$(GZIP) --best $(MANDIR)/$(PROG2).1
$(INSTALL) --mode=0644 README $(DOCDIR)
$(INSTALL) --mode=0644 VERSION $(DOCDIR)
$(INSTALL) --mode=0644 COPYING $(DOCDIR)
$(INSTALL) --mode=0644 BUGS $(DOCDIR)
uninstall:
-$(RM) $(BINDIR)/$(PROG1)
-$(RM) $(BINDIR)/$(PROG2)
-$(RM) $(MANDIR)/$(PROG1).1.gz
-$(RM) $(MANDIR)/$(PROG2).1.gz
rmdir $(DOCDIR)
rmdir $(DATADIR)/boissons
rmdir $(DATADIR)
.variables: fichier_qui_n_existe_pas
@:> .variables
@echo "OLDDATADIR = `cat DATADIR`" >> .variables
@echo "MY_OSTYPE = `uname -s`" >> .variables
@echo "VERSION = `cat VERSION`" >> .variables
@echo "TODAY = `date '+%d %B %Y'`" >> .variables
fichier_qui_n_existe_pas:
include .variables
.dependencies:
@echo "Making dependencies..."
@./makedep -s -m > .dependencies
include .dependencies

20
README.md Normal file
View File

@ -0,0 +1,20 @@
# Guinness Server
## Origine :
[Official Website](http://tnemeth.free.fr/projets/guinness-server.html)
La version d'origine a un **gros** souci :
le `Makefile` tourne désepérement
en boucle ! J'ai donc décidé, pour occuper mes longues journées de
retraite sanitaire, de sortir la disqueuse et de tenter de trouver
le bug.
## Methodologie :
Pour commencer, je vais utiliser un mélange de [rache](https://la-rache.com/)
et de [poudre verte](https://poudreverte.org/), additionné d'un peu de
jus de citron pour le goût...

500
boucle-de-make.txt Normal file
View File

@ -0,0 +1,500 @@
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'Makefile'...
Reading makefile '.variables' (search path) (no ~ expansion)...
Reading makefile '.dependencies' (search path) (no ~ expansion)...
Reading makefile '.dep.broadcast.c' (search path) (no ~ expansion)...
Reading makefile '.dep.clients.c' (search path) (no ~ expansion)...
Reading makefile '.dep.commands.c' (search path) (no ~ expansion)...
Reading makefile '.dep.drinks.c' (search path) (no ~ expansion)...
Reading makefile '.dep.guinness.c' (search path) (no ~ expansion)...
Reading makefile '.dep.guinnessd.c' (search path) (no ~ expansion)...
Reading makefile '.dep.lists.c' (search path) (no ~ expansion)...
Reading makefile '.dep.printlog.c' (search path) (no ~ expansion)...
Reading makefile '.dep.tools.c' (search path) (no ~ expansion)...
Reading makefile '.dep.xmem.c' (search path) (no ~ expansion)...
Updating makefiles....
Considering target file '.dep.xmem.c'.
Looking for an implicit rule for '.dep.xmem.c'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.c'.
Found an implicit rule for '.dep.xmem.c'.
Considering target file 'xmem.c'.
Looking for an implicit rule for 'xmem.c'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.y'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.l'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.w'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.w'.
Trying pattern rule with stem 'xmem.c'.
Trying implicit prerequisite 'xmem.c,v'.
Trying pattern rule with stem 'xmem.c'.
Trying implicit prerequisite 'RCS/xmem.c,v'.
Trying pattern rule with stem 'xmem.c'.
Trying implicit prerequisite 'RCS/xmem.c'.
Trying pattern rule with stem 'xmem.c'.
Trying implicit prerequisite 's.xmem.c'.
Trying pattern rule with stem 'xmem.c'.
Trying implicit prerequisite 'SCCS/s.xmem.c'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.y'.
Looking for a rule with intermediate file 'xmem.y'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'xmem.y'.
Trying implicit prerequisite 'xmem.y,v'.
Trying pattern rule with stem 'xmem.y'.
Trying implicit prerequisite 'RCS/xmem.y,v'.
Trying pattern rule with stem 'xmem.y'.
Trying implicit prerequisite 'RCS/xmem.y'.
Trying pattern rule with stem 'xmem.y'.
Trying implicit prerequisite 's.xmem.y'.
Trying pattern rule with stem 'xmem.y'.
Trying implicit prerequisite 'SCCS/s.xmem.y'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.l'.
Looking for a rule with intermediate file 'xmem.l'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'xmem.l'.
Trying implicit prerequisite 'xmem.l,v'.
Trying pattern rule with stem 'xmem.l'.
Trying implicit prerequisite 'RCS/xmem.l,v'.
Trying pattern rule with stem 'xmem.l'.
Trying implicit prerequisite 'RCS/xmem.l'.
Trying pattern rule with stem 'xmem.l'.
Trying implicit prerequisite 's.xmem.l'.
Trying pattern rule with stem 'xmem.l'.
Trying implicit prerequisite 'SCCS/s.xmem.l'.
Trying pattern rule with stem 'xmem'.
Trying implicit prerequisite 'xmem.w'.
Looking for a rule with intermediate file 'xmem.w'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'xmem.w'.
Trying implicit prerequisite 'xmem.w,v'.
Trying pattern rule with stem 'xmem.w'.
Trying implicit prerequisite 'RCS/xmem.w,v'.
Trying pattern rule with stem 'xmem.w'.
Trying implicit prerequisite 'RCS/xmem.w'.
Trying pattern rule with stem 'xmem.w'.
Trying implicit prerequisite 's.xmem.w'.
Trying pattern rule with stem 'xmem.w'.
Trying implicit prerequisite 'SCCS/s.xmem.w'.
Trying pattern rule with stem 'xmem'.
Rejecting impossible implicit prerequisite 'xmem.w'.
No implicit rule found for 'xmem.c'.
Finished prerequisites of target file 'xmem.c'.
No need to remake target 'xmem.c'.
Finished prerequisites of target file '.dep.xmem.c'.
Prerequisite 'xmem.c' is older than target '.dep.xmem.c'.
No need to remake target '.dep.xmem.c'.
Considering target file '.dep.tools.c'.
Looking for an implicit rule for '.dep.tools.c'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.c'.
Found an implicit rule for '.dep.tools.c'.
Considering target file 'tools.c'.
Looking for an implicit rule for 'tools.c'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.y'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.l'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.w'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.w'.
Trying pattern rule with stem 'tools.c'.
Trying implicit prerequisite 'tools.c,v'.
Trying pattern rule with stem 'tools.c'.
Trying implicit prerequisite 'RCS/tools.c,v'.
Trying pattern rule with stem 'tools.c'.
Trying implicit prerequisite 'RCS/tools.c'.
Trying pattern rule with stem 'tools.c'.
Trying implicit prerequisite 's.tools.c'.
Trying pattern rule with stem 'tools.c'.
Trying implicit prerequisite 'SCCS/s.tools.c'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.y'.
Looking for a rule with intermediate file 'tools.y'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'tools.y'.
Trying implicit prerequisite 'tools.y,v'.
Trying pattern rule with stem 'tools.y'.
Trying implicit prerequisite 'RCS/tools.y,v'.
Trying pattern rule with stem 'tools.y'.
Trying implicit prerequisite 'RCS/tools.y'.
Trying pattern rule with stem 'tools.y'.
Trying implicit prerequisite 's.tools.y'.
Trying pattern rule with stem 'tools.y'.
Trying implicit prerequisite 'SCCS/s.tools.y'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.l'.
Looking for a rule with intermediate file 'tools.l'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'tools.l'.
Trying implicit prerequisite 'tools.l,v'.
Trying pattern rule with stem 'tools.l'.
Trying implicit prerequisite 'RCS/tools.l,v'.
Trying pattern rule with stem 'tools.l'.
Trying implicit prerequisite 'RCS/tools.l'.
Trying pattern rule with stem 'tools.l'.
Trying implicit prerequisite 's.tools.l'.
Trying pattern rule with stem 'tools.l'.
Trying implicit prerequisite 'SCCS/s.tools.l'.
Trying pattern rule with stem 'tools'.
Trying implicit prerequisite 'tools.w'.
Looking for a rule with intermediate file 'tools.w'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'tools.w'.
Trying implicit prerequisite 'tools.w,v'.
Trying pattern rule with stem 'tools.w'.
Trying implicit prerequisite 'RCS/tools.w,v'.
Trying pattern rule with stem 'tools.w'.
Trying implicit prerequisite 'RCS/tools.w'.
Trying pattern rule with stem 'tools.w'.
Trying implicit prerequisite 's.tools.w'.
Trying pattern rule with stem 'tools.w'.
Trying implicit prerequisite 'SCCS/s.tools.w'.
Trying pattern rule with stem 'tools'.
Rejecting impossible implicit prerequisite 'tools.w'.
No implicit rule found for 'tools.c'.
Finished prerequisites of target file 'tools.c'.
No need to remake target 'tools.c'.
Finished prerequisites of target file '.dep.tools.c'.
Prerequisite 'tools.c' is older than target '.dep.tools.c'.
No need to remake target '.dep.tools.c'.
Considering target file '.dep.printlog.c'.
Looking for an implicit rule for '.dep.printlog.c'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.c'.
Found an implicit rule for '.dep.printlog.c'.
Considering target file 'printlog.c'.
Looking for an implicit rule for 'printlog.c'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.y'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.l'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.w'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.w'.
Trying pattern rule with stem 'printlog.c'.
Trying implicit prerequisite 'printlog.c,v'.
Trying pattern rule with stem 'printlog.c'.
Trying implicit prerequisite 'RCS/printlog.c,v'.
Trying pattern rule with stem 'printlog.c'.
Trying implicit prerequisite 'RCS/printlog.c'.
Trying pattern rule with stem 'printlog.c'.
Trying implicit prerequisite 's.printlog.c'.
Trying pattern rule with stem 'printlog.c'.
Trying implicit prerequisite 'SCCS/s.printlog.c'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.y'.
Looking for a rule with intermediate file 'printlog.y'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'printlog.y'.
Trying implicit prerequisite 'printlog.y,v'.
Trying pattern rule with stem 'printlog.y'.
Trying implicit prerequisite 'RCS/printlog.y,v'.
Trying pattern rule with stem 'printlog.y'.
Trying implicit prerequisite 'RCS/printlog.y'.
Trying pattern rule with stem 'printlog.y'.
Trying implicit prerequisite 's.printlog.y'.
Trying pattern rule with stem 'printlog.y'.
Trying implicit prerequisite 'SCCS/s.printlog.y'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.l'.
Looking for a rule with intermediate file 'printlog.l'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'printlog.l'.
Trying implicit prerequisite 'printlog.l,v'.
Trying pattern rule with stem 'printlog.l'.
Trying implicit prerequisite 'RCS/printlog.l,v'.
Trying pattern rule with stem 'printlog.l'.
Trying implicit prerequisite 'RCS/printlog.l'.
Trying pattern rule with stem 'printlog.l'.
Trying implicit prerequisite 's.printlog.l'.
Trying pattern rule with stem 'printlog.l'.
Trying implicit prerequisite 'SCCS/s.printlog.l'.
Trying pattern rule with stem 'printlog'.
Trying implicit prerequisite 'printlog.w'.
Looking for a rule with intermediate file 'printlog.w'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'printlog.w'.
Trying implicit prerequisite 'printlog.w,v'.
Trying pattern rule with stem 'printlog.w'.
Trying implicit prerequisite 'RCS/printlog.w,v'.
Trying pattern rule with stem 'printlog.w'.
Trying implicit prerequisite 'RCS/printlog.w'.
Trying pattern rule with stem 'printlog.w'.
Trying implicit prerequisite 's.printlog.w'.
Trying pattern rule with stem 'printlog.w'.
Trying implicit prerequisite 'SCCS/s.printlog.w'.
Trying pattern rule with stem 'printlog'.
Rejecting impossible implicit prerequisite 'printlog.w'.
No implicit rule found for 'printlog.c'.
Finished prerequisites of target file 'printlog.c'.
No need to remake target 'printlog.c'.
Finished prerequisites of target file '.dep.printlog.c'.
Prerequisite 'printlog.c' is older than target '.dep.printlog.c'.
No need to remake target '.dep.printlog.c'.
Considering target file '.dep.lists.c'.
Looking for an implicit rule for '.dep.lists.c'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.c'.
Found an implicit rule for '.dep.lists.c'.
Considering target file 'lists.c'.
Looking for an implicit rule for 'lists.c'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.y'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.l'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.w'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.w'.
Trying pattern rule with stem 'lists.c'.
Trying implicit prerequisite 'lists.c,v'.
Trying pattern rule with stem 'lists.c'.
Trying implicit prerequisite 'RCS/lists.c,v'.
Trying pattern rule with stem 'lists.c'.
Trying implicit prerequisite 'RCS/lists.c'.
Trying pattern rule with stem 'lists.c'.
Trying implicit prerequisite 's.lists.c'.
Trying pattern rule with stem 'lists.c'.
Trying implicit prerequisite 'SCCS/s.lists.c'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.y'.
Looking for a rule with intermediate file 'lists.y'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'lists.y'.
Trying implicit prerequisite 'lists.y,v'.
Trying pattern rule with stem 'lists.y'.
Trying implicit prerequisite 'RCS/lists.y,v'.
Trying pattern rule with stem 'lists.y'.
Trying implicit prerequisite 'RCS/lists.y'.
Trying pattern rule with stem 'lists.y'.
Trying implicit prerequisite 's.lists.y'.
Trying pattern rule with stem 'lists.y'.
Trying implicit prerequisite 'SCCS/s.lists.y'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.l'.
Looking for a rule with intermediate file 'lists.l'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'lists.l'.
Trying implicit prerequisite 'lists.l,v'.
Trying pattern rule with stem 'lists.l'.
Trying implicit prerequisite 'RCS/lists.l,v'.
Trying pattern rule with stem 'lists.l'.
Trying implicit prerequisite 'RCS/lists.l'.
Trying pattern rule with stem 'lists.l'.
Trying implicit prerequisite 's.lists.l'.
Trying pattern rule with stem 'lists.l'.
Trying implicit prerequisite 'SCCS/s.lists.l'.
Trying pattern rule with stem 'lists'.
Trying implicit prerequisite 'lists.w'.
Looking for a rule with intermediate file 'lists.w'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'lists.w'.
Trying implicit prerequisite 'lists.w,v'.
Trying pattern rule with stem 'lists.w'.
Trying implicit prerequisite 'RCS/lists.w,v'.
Trying pattern rule with stem 'lists.w'.
Trying implicit prerequisite 'RCS/lists.w'.
Trying pattern rule with stem 'lists.w'.
Trying implicit prerequisite 's.lists.w'.
Trying pattern rule with stem 'lists.w'.
Trying implicit prerequisite 'SCCS/s.lists.w'.
Trying pattern rule with stem 'lists'.
Rejecting impossible implicit prerequisite 'lists.w'.
No implicit rule found for 'lists.c'.
Finished prerequisites of target file 'lists.c'.
No need to remake target 'lists.c'.
Finished prerequisites of target file '.dep.lists.c'.
Prerequisite 'lists.c' is older than target '.dep.lists.c'.
No need to remake target '.dep.lists.c'.
Considering target file '.dep.guinnessd.c'.
Looking for an implicit rule for '.dep.guinnessd.c'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.c'.
Found an implicit rule for '.dep.guinnessd.c'.
Considering target file 'guinnessd.c'.
Looking for an implicit rule for 'guinnessd.c'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.y'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.l'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.w'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.w'.
Trying pattern rule with stem 'guinnessd.c'.
Trying implicit prerequisite 'guinnessd.c,v'.
Trying pattern rule with stem 'guinnessd.c'.
Trying implicit prerequisite 'RCS/guinnessd.c,v'.
Trying pattern rule with stem 'guinnessd.c'.
Trying implicit prerequisite 'RCS/guinnessd.c'.
Trying pattern rule with stem 'guinnessd.c'.
Trying implicit prerequisite 's.guinnessd.c'.
Trying pattern rule with stem 'guinnessd.c'.
Trying implicit prerequisite 'SCCS/s.guinnessd.c'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.y'.
Looking for a rule with intermediate file 'guinnessd.y'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'guinnessd.y'.
Trying implicit prerequisite 'guinnessd.y,v'.
Trying pattern rule with stem 'guinnessd.y'.
Trying implicit prerequisite 'RCS/guinnessd.y,v'.
Trying pattern rule with stem 'guinnessd.y'.
Trying implicit prerequisite 'RCS/guinnessd.y'.
Trying pattern rule with stem 'guinnessd.y'.
Trying implicit prerequisite 's.guinnessd.y'.
Trying pattern rule with stem 'guinnessd.y'.
Trying implicit prerequisite 'SCCS/s.guinnessd.y'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.l'.
Looking for a rule with intermediate file 'guinnessd.l'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'guinnessd.l'.
Trying implicit prerequisite 'guinnessd.l,v'.
Trying pattern rule with stem 'guinnessd.l'.
Trying implicit prerequisite 'RCS/guinnessd.l,v'.
Trying pattern rule with stem 'guinnessd.l'.
Trying implicit prerequisite 'RCS/guinnessd.l'.
Trying pattern rule with stem 'guinnessd.l'.
Trying implicit prerequisite 's.guinnessd.l'.
Trying pattern rule with stem 'guinnessd.l'.
Trying implicit prerequisite 'SCCS/s.guinnessd.l'.
Trying pattern rule with stem 'guinnessd'.
Trying implicit prerequisite 'guinnessd.w'.
Looking for a rule with intermediate file 'guinnessd.w'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'guinnessd.w'.
Trying implicit prerequisite 'guinnessd.w,v'.
Trying pattern rule with stem 'guinnessd.w'.
Trying implicit prerequisite 'RCS/guinnessd.w,v'.
Trying pattern rule with stem 'guinnessd.w'.
Trying implicit prerequisite 'RCS/guinnessd.w'.
Trying pattern rule with stem 'guinnessd.w'.
Trying implicit prerequisite 's.guinnessd.w'.
Trying pattern rule with stem 'guinnessd.w'.
Trying implicit prerequisite 'SCCS/s.guinnessd.w'.
Trying pattern rule with stem 'guinnessd'.
Rejecting impossible implicit prerequisite 'guinnessd.w'.
No implicit rule found for 'guinnessd.c'.
Finished prerequisites of target file 'guinnessd.c'.
No need to remake target 'guinnessd.c'.
Finished prerequisites of target file '.dep.guinnessd.c'.
Prerequisite 'guinnessd.c' is older than target '.dep.guinnessd.c'.
No need to remake target '.dep.guinnessd.c'.
Considering target file '.dep.guinness.c'.
Looking for an implicit rule for '.dep.guinness.c'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.c'.
Found an implicit rule for '.dep.guinness.c'.
Considering target file 'guinness.c'.
Looking for an implicit rule for 'guinness.c'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.y'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.l'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.w'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.w'.
Trying pattern rule with stem 'guinness.c'.
Trying implicit prerequisite 'guinness.c,v'.
Trying pattern rule with stem 'guinness.c'.
Trying implicit prerequisite 'RCS/guinness.c,v'.
Trying pattern rule with stem 'guinness.c'.
Trying implicit prerequisite 'RCS/guinness.c'.
Trying pattern rule with stem 'guinness.c'.
Trying implicit prerequisite 's.guinness.c'.
Trying pattern rule with stem 'guinness.c'.
Trying implicit prerequisite 'SCCS/s.guinness.c'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.y'.
Looking for a rule with intermediate file 'guinness.y'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'guinness.y'.
Trying implicit prerequisite 'guinness.y,v'.
Trying pattern rule with stem 'guinness.y'.
Trying implicit prerequisite 'RCS/guinness.y,v'.
Trying pattern rule with stem 'guinness.y'.
Trying implicit prerequisite 'RCS/guinness.y'.
Trying pattern rule with stem 'guinness.y'.
Trying implicit prerequisite 's.guinness.y'.
Trying pattern rule with stem 'guinness.y'.
Trying implicit prerequisite 'SCCS/s.guinness.y'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.l'.
Looking for a rule with intermediate file 'guinness.l'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'guinness.l'.
Trying implicit prerequisite 'guinness.l,v'.
Trying pattern rule with stem 'guinness.l'.
Trying implicit prerequisite 'RCS/guinness.l,v'.
Trying pattern rule with stem 'guinness.l'.
Trying implicit prerequisite 'RCS/guinness.l'.
Trying pattern rule with stem 'guinness.l'.
Trying implicit prerequisite 's.guinness.l'.
Trying pattern rule with stem 'guinness.l'.
Trying implicit prerequisite 'SCCS/s.guinness.l'.
Trying pattern rule with stem 'guinness'.
Trying implicit prerequisite 'guinness.w'.
Looking for a rule with intermediate file 'guinness.w'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'guinness.w'.
Trying implicit prerequisite 'guinness.w,v'.
Trying pattern rule with stem 'guinness.w'.
Trying implicit prerequisite 'RCS/guinness.w,v'.
Trying pattern rule with stem 'guinness.w'.
Trying implicit prerequisite 'RCS/guinness.w'.
Trying pattern rule with stem 'guinness.w'.
Trying implicit prerequisite 's.guinness.w'.
Trying pattern rule with stem 'guinness.w'.
Trying implicit prerequisite 'SCCS/s.guinness.w'.
Trying pattern rule with stem 'guinness'.
Rejecting impossible implicit prerequisite 'guinness.w'.
No implicit rule found for 'guinness.c'.
Finished prerequisites of target file 'guinness.c'.
No need to remake target 'guinness.c'.
Finished prerequisites of target file '.dep.guinness.c'.
Prerequisite 'guinness.c' is older than target '.dep.guinness.c'.
No need to remake target '.dep.guinness.c'.
Considering target file '.dep.drinks.c'.
Looking for an implicit rule for '.dep.drinks.c'.
Trying pattern rule with stem 'drinks'.
Trying implicit prerequisite 'drinks.c'.
Found an implicit rule for '.dep.drinks.c'.
Considering target file 'drinks.c'.
Looking for an implicit rule for 'drinks.c'.
Trying pattern rule with stem 'drinks'.
Trying implicit prerequisite 'drinks.y'.
Trying pattern rule with stem 'drinks'.
Trying implicit prerequisite 'drinks.l'.
Trying pattern rule with stem 'drinks'.
Trying implicit prerequisite 'drinks.w'.
Trying pattern rule with stem 'drinks'.
Trying implicit prerequisite 'drinks.w'.
Trying pattern rule with stem 'drinks.c'.
Trying implicit prerequisite 'drinks.c,v'.
Trying pattern rule with stem 'drinks.c'.
Trying implicit prerequisite 'RCS/drinks.c,v'.
Trying pattern rule with stem 'drinks.c'.
Trying implicit prerequisite 'RCS/drinks.c'.
Trying pattern rule with stem 'drinks.c'.
Trying implicit prerequisite 's.drinks.c'.
Trying pattern rule with stem 'drinks.c'.
Trying implicit prerequisite 'SCCS/s.drinks.c'.
Trying pattern rule with stem 'drinks'.
Trying implicit prerequisite 'drinks.y'.
Looking for a rule with intermediate file 'drinks.y'.
Avoiding implicit rule recursion.