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