home: hub: minipeg

Download patch

ref: 487c2a6e18f22dbd8a43aa150db10b19529848eb
parent: 8aa3bcf788eceae09ca50650cba78ba89ffdde50
author: Andrew Chambers <ac@acha.ninja>
date: Thu Apr 7 20:28:30 CDT 2022

Work on new makefile.

--- a/Makefile
+++ b/Makefile
@@ -2,49 +2,49 @@
 PREFIX	= /usr/local
 BINDIR	= $(DESTDIR)$(PREFIX)/bin
 MANDIR	= $(DESTDIR)$(PREFIX)/man/man1
-CFLAGS = -g -Wall $(OFLAGS) $(XFLAGS) -Isrc
-OFLAGS = -O3 -DNDEBUG
+CFLAGS = -g -O2 -Wall
 
-OBJ = peg.o tree.o compile.o
-NEWOBJ = peg-new.o tree.o compile.o
+COMMONSRC = version.h tree.h compile.c tree.c
+SRC = $(COMMONSRC) peg.c
+NEWSRC = $(COMMONSRC) peg-new.c
 
-all : leg
+all: minipeg
 
-leg : $(OBJ)
-	$(CC) $(CFLAGS) -o $@ $(OBJ)
+install: $(BINDIR) $(BINDIR)/leg $(MANDIR) $(MANDIR)/peg.1
+	mkdir -p $(MANDIR) $(BINDIR)
+	cp minipeg $(BINDIR)
+	cp minipeg.1 $(MANDIR)
 
-leg-new : $(NEWOBJ)
-	$(CC) $(CFLAGS) -o $@ $(NEWOBJ)
+$(MANDIR) :
+	mkdir -p $(MANDIR)
 
-install : $(BINDIR) $(BINDIR)/leg $(MANDIR) $(MANDIR)/peg.1
+minipeg: minipeg.c
 
-$(BINDIR) :
-	mkdir -p $(BINDIR)
+minipeg-new: minipeg-new.c
 
-$(BINDIR)/% : %
-	cp -p $< $@
-	strip $@
+minipeg-split: $(SRC)
+	$(CC) $(CFLAGS) -o $@ compile.c tree.c peg.c
 
-$(MANDIR) :
-	mkdir -p $(MANDIR)
+minipeg.c: $(SRC)
+	sh amalg.sh $(SRC) > $@
 
-$(MANDIR)/% : src/%
-	cp -p $< $@
+minipeg-new.c: $(NEWSRC)
+	sh amalg.sh $(NEWSRC) > $@
 
-uninstall : .FORCE
-	rm -f $(BINDIR)/leg
-	rm -f $(MANDIR)/peg.1
+peg-new.c: peg.leg minipeg
+	./minipeg -o $@ $<
 
-check-peg : peg.c .FORCE
-	diff peg-new.c peg.c
+peg-split.c: peg.leg minipeg-split
+	./minipeg-split -o $@ $<
 
-peg-new.c :peg.leg leg
-	./leg -o $@ $<
+check-self-host: peg.c peg-new.c peg-split.c .FORCE
+	diff -u peg-new.c peg.c
+	diff -u peg-split.c peg.c
 
-test examples : leg .FORCE
+check: minipeg .FORCE
 	$(SHELL) -ec '(cd examples;  $(MAKE))'
 
 clean : .FORCE
-	rm -f leg leg-new leg-new.c *.o
+	rm -f minipeg minipeg.c minipeg-new.c *.o
 
 .FORCE :
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -1,6 +1,6 @@
 EXAMPLES = test rule accept wc dc dcv calc basic localpeg localleg erract
 
-CFLAGS = -g -O3
+CFLAGS = -g -Wall -O3
 
 DIFF = diff
 TEE = cat >
@@ -8,7 +8,7 @@
 all : $(EXAMPLES)
 
 test : .FORCE
-	../leg -o test.leg.c test.leg
+	../minipeg -o test.leg.c test.leg
 	$(CC) $(CFLAGS) -o test test.c
 	echo 'ab.ac.ad.ae.afg.afh.afg.afh.afi.afj.' | ./$@ | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -16,7 +16,7 @@
 	@echo
 
 rule : .FORCE
-	../leg -o rule.leg.c rule.leg
+	../minipeg -o rule.leg.c rule.leg
 	$(CC) $(CFLAGS) -o rule rule.c
 	echo 'abcbcdabcbcdabcbcdabcbcd' | ./$@ | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -24,7 +24,7 @@
 	@echo
 
 accept : .FORCE
-	../leg -o accept.leg.c accept.leg
+	../minipeg -o accept.leg.c accept.leg
 	$(CC) $(CFLAGS) -o accept accept.c
 	echo 'abcbcdabcbcdabcbcdabcbcd' | ./$@ | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -32,7 +32,7 @@
 	@echo
 
 wc : .FORCE
-	../leg -o wc.leg.c wc.leg
+	../minipeg -o wc.leg.c wc.leg
 	$(CC) $(CFLAGS) -o wc wc.leg.c
 	cat wc.leg | ./$@ | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -40,7 +40,7 @@
 	@echo
 
 dc : .FORCE
-	../leg -o dc.leg.c dc.leg
+	../minipeg -o dc.leg.c dc.leg
 	$(CC) $(CFLAGS) -o dc dc.c
 	echo '  2  *3 *(3+ 4) ' | ./dc | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -48,7 +48,7 @@
 	@echo
 
 dcv : .FORCE
-	../leg -o dcv.leg.c dcv.leg
+	../minipeg -o dcv.leg.c dcv.leg
 	$(CC) $(CFLAGS) -o dcv dcv.c
 	echo 'a = 6;  b = 7;  a * b' | ./dcv | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -56,7 +56,7 @@
 	@echo
 
 calc : .FORCE
-	../leg -o calc.leg.c calc.leg
+	../minipeg -o calc.leg.c calc.leg
 	$(CC) $(CFLAGS) -o calc calc.leg.c
 	echo 'a = 6;  b = 7;  a * b' | ./calc | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -64,7 +64,7 @@
 	@echo
 
 basic : .FORCE
-	../leg -o basic.leg.c basic.leg
+	../minipeg -o basic.leg.c basic.leg
 	$(CC) $(CFLAGS) -o basic basic.leg.c
 	( echo 'load "test"'; echo "run" ) | ./basic | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -72,7 +72,7 @@
 	@echo
 
 localpeg : .FORCE
-	../leg -o test.leg.c test.leg
+	../minipeg -o test.leg.c test.leg
 	$(CC) $(CFLAGS) -o localpeg localpeg.c
 	echo 'ab.ac.ad.ae.afg.afh.afg.afh.afi.afj.' | ./$@ | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -80,7 +80,7 @@
 	@echo
 
 localleg : .FORCE
-	../leg -o localleg.leg.c localleg.leg
+	../minipeg -o localleg.leg.c localleg.leg
 	$(CC) $(CFLAGS) -o localleg localleg.leg.c
 	./$@ < localleg.leg | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out
@@ -88,7 +88,7 @@
 	@echo
 
 erract : .FORCE
-	../leg -o erract.leg.c erract.leg
+	../minipeg -o erract.leg.c erract.leg
 	$(CC) $(CFLAGS) -o erract erract.leg.c
 	echo '6*9' | ./$@ | $(TEE) $@.out
 	$(DIFF) $@.ref $@.out