From 1b972fcd173af2259d3c574b465f14ff7ffd4100 Mon Sep 17 00:00:00 2001 From: David Given Date: Thu, 3 Feb 2022 21:28:47 +0100 Subject: [PATCH 1/2] Rip out the old pm stuff and write a simple Makefile. Update README. --- util/LLgen/Makefile | 49 +++++++++++++++ util/LLgen/READ_ME | 42 +++++-------- util/LLgen/c.pm | 143 ------------------------------------------ util/LLgen/pm | Bin 82977 -> 0 bytes util/LLgen/pmfile-ack | 37 ----------- 5 files changed, 65 insertions(+), 206 deletions(-) create mode 100644 util/LLgen/Makefile delete mode 100644 util/LLgen/c.pm delete mode 100755 util/LLgen/pm delete mode 100644 util/LLgen/pmfile-ack diff --git a/util/LLgen/Makefile b/util/LLgen/Makefile new file mode 100644 index 000000000..144d15bb7 --- /dev/null +++ b/util/LLgen/Makefile @@ -0,0 +1,49 @@ +OBJDIR = .obj +PREFIX = /usr/local +CFLAGS = \ + -Os -g \ + -DNON_CORRECTING \ + -DLIBDIR=\"$(PREFIX)/share/LLgen/\" + +SRCS = \ + src/alloc.c \ + src/cclass.c \ + src/check.c \ + src/compute.c \ + src/gencode.c \ + src/global.c \ + src/LLgen.c \ + src/Lpars.c \ + src/machdep.c \ + src/main.c \ + src/name.c \ + src/reach.c \ + src/savegram.c \ + src/sets.c \ + src/tokens.c + +OBJS = $(patsubst %.c, $(OBJDIR)/%.o, $(SRCS)) +DEPS = $(patsubst %.c, $(OBJDIR)/%.d, $(SRCS)) + +LLgen: $(OBJS) + $(CC) $(CFLAGS) -o $@ $(OBJS) + +$(OBJDIR)/%.o: %.c + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -MMD -c -o $@ $< + +$(OBJDIR)/%.pdf: doc/%.n doc/LLgen.refs + refer -p doc/LLgen.refs $^ | groff -G -e -g -p -ms -Tpdf > $@ + +clean: + rm -rf $(OBJDIR) + +install: LLgen doc/LLgen.1 $(OBJDIR)/LLgen.pdf $(OBJDIR)/LLgen_NCER.pdf $(wildcard lib/*) + install -D -s LLgen -T $(PREFIX)/bin/LLgen + install -D doc/LLgen.1 -T $(PREFIX)/man/man1/LLgen.1 + install -D $(OBJDIR)/LLgen.pdf -T $(PREFIX)/doc/LLgen + install -D $(OBJDIR)/LLgen_NCER.pdf -T $(PREFIX)/doc/LLgen + install -D $(wildcard lib/*) -t $(PREFIX)/share/LLgen + +-include $(DEPS) + diff --git a/util/LLgen/READ_ME b/util/LLgen/READ_ME index fe418b976..da91a948c 100644 --- a/util/LLgen/READ_ME +++ b/util/LLgen/READ_ME @@ -1,8 +1,8 @@ LLGEN V1.0.4 ============ - Copyright © 1991-2005 by the Vrije Universiteit, Amsterdam, the Netherlands. - 2006-07-26 + Copyright ǒ 1991-2005 by the Vrije Universiteit, Amsterdam, the Netherlands. + 2021-02-03 INTRODUCTION ============ @@ -22,25 +22,20 @@ LLgen depends on the following software: gcc: currently, LLgen only builds on gcc, due largely to the lack of any non-gcc test systems. Please contact the support mailing list (see below) if this is a problem. + + groff and grap: this is used to build the documentation. - groff: used to build the documentation. +LLgen uses make as its build tool. To build, do: -LLgen uses Prime Mover as its build tool. To build, do: - - ./pm install + make install This will compile LLgen and install it into /usr/local (which you must be able -to write to). If you want it installed elsewhere, use -D to change the PREFIX -variable: +to write to). If you want it installed elsewhere, change the PREFIX variable: - ./pm -DPREFIX="/home/dg/" install + make install PREFIX=/home/dg -(If you do change the prefix, you must supply it whenever you invoke pm, -whether you're installing or just building. And there must be a trailing / in -the path you give it.) - -Invoking ./pm by itself will compile it but not install it; look in the bin -directory for an image of the installation directory. +(If you do change the prefix, you must do a `make clean` first, or else the +installed binary will look for its libraries in the wrong place.) USING LLGEN =========== @@ -48,12 +43,11 @@ USING LLGEN Please see the white papers in PREFIX/share/doc/LLgen, or the man page (called LLgen). -LLgen itself uses a parser compiled in LLgen, so you can study the files in -the src directory for examples. If you wish to modify LLgen's own parser, the +LLgen itself uses a parser compiled in LLgen, so you can study the files in the +src directory for examples. If you wish to modify LLgen's own parser, the bootstrap.sh script will update LLgen's source from the parser *.g files. -LLgen itself may then be recompiled with pm in the usual way. (Although you -may want to keep a copy of a known good LLgen around in case you break -something!) +LLgen itself may then be recompiled in the usual way. (Although you may want to +keep a copy of a known good LLgen around in case you break something!) SUPPORT ======= @@ -70,16 +64,12 @@ There is a mailing list available at: LICENSE ======= -LLgen is © 1991-2005 by the Vrije Universiteit and is distributed under a +LLgen is ǒ 1991-2005 by the Vrije Universiteit and is distributed under a license equivalent to the three-clause BSD license. See the COPYING file for details. -Prime Mover is © 2006 David Given and is distributed under the MIT license. -Do './pm --license' for details. - ----------------------------------------------------------------------------- David Given dg@cowlark.com -2006-07-21 +2021-02-03 -/* $Id$ */ diff --git a/util/LLgen/c.pm b/util/LLgen/c.pm deleted file mode 100644 index c38e85bef..000000000 --- a/util/LLgen/c.pm +++ /dev/null @@ -1,143 +0,0 @@ --- pm includefile to compile *host* C programs. - --- Standard Lua boilerplate. - -local io_open = io.open -local string_gsub = string.gsub -local string_gfind = string.gfind -local table_insert = table.insert -local table_getn = table.getn -local filetime = pm.filetime - --- Define some variables. - -CCOMPILER = "gcc" -CC = "%CCOMPILER% %CBUILDFLAGS% %CDYNINCLUDES% %CINCLUDES% %CDEFINES% %CEXTRAFLAGS% -c -o %out% %in%" -CPROGRAM = "%CCOMPILER% %CBUILDFLAGS% %CLINKFLAGS% %CEXTRAFLAGS% -o %out% %in% %CLIBRARIES%" -CDEPENDS = "%CCOMPILER% %CBUILDFLAGS% %CDYNINCLUDES% %CINCLUDES% %CDEFINES% %CEXTRAFLAGS% -MM -MG %in% > %out%" -AR = "%RM% %out% && ar cr %out% %in% && ranlib %out%" - -CBUILDFLAGS = "-g -O" -CINCLUDES = {} -CDEFINES = {} -CEXTRAFLAGS = "" -CLINKFLAGS = "" -CDYNINCLUDES = "" -CLIBRARIES = "" - ---- Manage C file dependencies ---------------------------------------------- - -local dependency_cache = {} -local function load_dependency_file(fn) - local o = dependency_cache[fn] - if o then - return o - end - - -- Read in the dependency file. - - local f = io_open(fn) - if not f then - print("failed to open "..fn) - return nil - end - f = f:read("*a") - - -- Massage the dependency file into a string containing one unescaped - -- filename per line. - - f = string_gsub(f, "^.*[^\\]: *", "") - f = string_gsub(f, "\\\r?\n", "") - f = string_gsub(f, "([^\\]) +", "%1\n") - f = string_gsub(f, "\\", "") - - -- Parse the string. - - o = {} - for l in string_gfind(f, "[^\n]+") do - table_insert(o, l) - end - - dependency_cache[fn] = o - return o -end - --- This clause specialises 'simple' to add support for smart dependencies of C --- files. - -simple_with_clike_dependencies = simple { - class = "simple_with_clike_dependencies", - makedepends = {"%CDEPENDS%"}, - - __init = function(self, p) - simple.__init(self, p) - - -- If we're a class, don't verify. - - if ((type(p) == "table") and p.class) then - return - end - - -- If dynamicheaders is an object, turn it into a singleton list. - - if self.dynamicheaders then - if (type(self.dynamicheaders) ~= "table") then - self:__error("doesn't know what to do with dynamicheaders, which ", - "should be a list or an object but was a ", type(self.dynamicheaders)) - end - if self.dynamicheaders.class then - self.dynamicheaders = {self.dynamicheaders} - end - end - end, - - __dependencies = function(self, inputs, outputs) - local obj = simple { - CDYNINCLUDES = self.CDYNINCLUDES, - command = self.makedepends, - outputs = {"%U%-%I%.d"}, - unpack(inputs) - } - local o = obj:__build() - local depends = load_dependency_file(o[1]) - if not depends then - self:__error("could not determine the dependencies for ", - pm.rendertable(inputs)) - end - return depends - end, - - __buildadditionalchildren = function(self) - self.CDYNINCLUDES = "" - if self.dynamicheaders then - for _, i in ipairs(self.dynamicheaders) do - local o = i:__build() - if o[1] then - self.CDYNINCLUDES = self.CDYNINCLUDES..' "-I'..string_gsub(o[1], "/[^/]*$", "")..'"' - end - end - end - end -} - --- These are the publically useful clauses. - -cfile = simple_with_clike_dependencies { - class = "cfile", - command = {"%CC%"}, - outputs = {"%U%-%I%.o"}, -} - -cprogram = simple { - class = "cprogram", - command = {"%CPROGRAM%"}, - outputs = {"%U%-%I%"}, -} - -clibrary = simple { - class = "clibrary", - command = { - "%AR%" - }, - outputs = {"%U%-%I%.a"}, -} diff --git a/util/LLgen/pm b/util/LLgen/pm deleted file mode 100755 index 47c4736d5eefc8ebedca2ac0cc68bd39d1863cd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82977 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 S@Qr`$rAdZ=JMJ+vZ~*`#r(yp9 diff --git a/util/LLgen/pmfile-ack b/util/LLgen/pmfile-ack deleted file mode 100644 index 7785418ac..000000000 --- a/util/LLgen/pmfile-ack +++ /dev/null @@ -1,37 +0,0 @@ --- $Source$ --- $State$ - -local d = ROOTDIR.."util/LLgen/" - -tool_LLgen = cprogram { - CDEFINES = {PARENT, 'NON_CORRECTING', 'LIBDIR="'..d..'lib"'}, - - cfile (d.."src/main.c"), - cfile (d.."src/gencode.c"), - cfile (d.."src/compute.c"), - cfile (d.."src/check.c"), - cfile (d.."src/reach.c"), - cfile (d.."src/global.c"), - cfile (d.."src/name.c"), - cfile (d.."src/sets.c"), - cfile (d.."src/alloc.c"), - cfile (d.."src/machdep.c"), - cfile (d.."src/cclass.c"), - cfile (d.."src/savegram.c"), - - -- These use pre-LLgen'd version of the files. If LLgen.g gets updated, - -- they need rebuilding. Use the bootstrap script to do this. - - cfile (d.."src/LLgen.c"), - cfile (d.."src/Lpars.c"), - cfile (d.."src/tokens.c"), - - outputs = {"%U%/LLgen"}, - install = pm.install("%TOOLDIR%LLgen") -} - --- Revision history --- $Log$ --- Revision 1.1 2006-11-11 22:58:30 dtrg --- Added a pmfile to allow LLgen to be built as part of the ACK again. --- \ No newline at end of file From 06ede2e2f54be8818ea307d005ad7a4881856b44 Mon Sep 17 00:00:00 2001 From: David Given Date: Thu, 3 Feb 2022 21:40:49 +0100 Subject: [PATCH 2/2] Fix the main documentation PDF not to use mangled character spacing. --- util/LLgen/Makefile | 22 ++++++++++++++++------ util/LLgen/doc/LLgen.n | 5 ++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/util/LLgen/Makefile b/util/LLgen/Makefile index 144d15bb7..8833dbbd2 100644 --- a/util/LLgen/Makefile +++ b/util/LLgen/Makefile @@ -22,8 +22,15 @@ SRCS = \ src/sets.c \ src/tokens.c +DOCS = \ + doc/LLgen.n \ + doc/LLgen_NCER.n \ + OBJS = $(patsubst %.c, $(OBJDIR)/%.o, $(SRCS)) DEPS = $(patsubst %.c, $(OBJDIR)/%.d, $(SRCS)) +PDFS = $(patsubst doc/%.n, $(OBJDIR)/%.pdf, $(DOCS)) + +all: LLgen doc LLgen: $(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) @@ -33,16 +40,19 @@ $(OBJDIR)/%.o: %.c $(CC) $(CFLAGS) -MMD -c -o $@ $< $(OBJDIR)/%.pdf: doc/%.n doc/LLgen.refs - refer -p doc/LLgen.refs $^ | groff -G -e -g -p -ms -Tpdf > $@ + @mkdir -p $(dir $@) + groff -R -G -e -g -p -ms -Tpdf $< > $@ + +doc:: $(PDFS) clean: rm -rf $(OBJDIR) -install: LLgen doc/LLgen.1 $(OBJDIR)/LLgen.pdf $(OBJDIR)/LLgen_NCER.pdf $(wildcard lib/*) - install -D -s LLgen -T $(PREFIX)/bin/LLgen - install -D doc/LLgen.1 -T $(PREFIX)/man/man1/LLgen.1 - install -D $(OBJDIR)/LLgen.pdf -T $(PREFIX)/doc/LLgen - install -D $(OBJDIR)/LLgen_NCER.pdf -T $(PREFIX)/doc/LLgen +install: LLgen doc/LLgen.1 $(PDFS) $(wildcard lib/*) + install -D -s LLgen -t $(PREFIX)/bin + install -D doc/LLgen.1 -t $(PREFIX)/man/man1 + install -D $(OBJDIR)/LLgen.pdf -t $(PREFIX)/doc/LLgen + install -D $(OBJDIR)/LLgen_NCER.pdf -t $(PREFIX)/doc/LLgen install -D $(wildcard lib/*) -t $(PREFIX)/share/LLgen -include $(DEPS) diff --git a/util/LLgen/doc/LLgen.n b/util/LLgen/doc/LLgen.n index 3d9786a5b..2cd6bf992 100644 --- a/util/LLgen/doc/LLgen.n +++ b/util/LLgen/doc/LLgen.n @@ -9,7 +9,10 @@ . if t .ds <, ,\ \}\ \} -.cs 5 22u +.R1 +database doc/LLgen.refs +accumulate +.R2 .ND .EQ delim @@