Permalink
Browse files

adds peg to the source tree

  • Loading branch information...
1 parent 492cdac commit 2cb1f3d02a9d0848ed1a58b8334773e42f6906d4 @jeremytregunna jeremytregunna committed May 16, 2012
View
@@ -3,4 +3,5 @@ project(Acute)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/modules/")
+add_subdirectory(peg)
add_subdirectory(wee)
View
@@ -0,0 +1,8 @@
+set(CMAKE_C_FLAGS "-g -std=c99 -DNDEBUG")
+set(SRCS
+ "leg.c"
+ "tree.c"
+ "compile.c"
+)
+
+add_executable(leg ${SRCS})
View
@@ -0,0 +1,65 @@
+CFLAGS = -g -Wall $(OFLAGS) $(XFLAGS)
+OFLAGS = -O3 -DNDEBUG
+#OFLAGS = -pg
+
+OBJS = tree.o compile.o
+
+all : peg leg
+
+peg : peg.o $(OBJS)
+ $(CC) $(CFLAGS) -o $@-new peg.o $(OBJS)
+ mv $@-new $@
+
+leg : leg.o $(OBJS)
+ $(CC) $(CFLAGS) -o $@-new leg.o $(OBJS)
+ mv $@-new $@
+
+ROOT =
+PREFIX = /usr/local
+BINDIR = $(ROOT)$(PREFIX)/bin
+
+install : $(BINDIR)/peg $(BINDIR)/leg
+
+$(BINDIR)/% : %
+ cp -p $< $@
+ strip $@
+
+uninstall : .FORCE
+ rm -f $(BINDIR)/peg
+ rm -f $(BINDIR)/leg
+
+peg.o : peg.c peg.peg-c
+
+%.peg-c : %.peg compile.c
+ ./peg -o $@ $<
+
+leg.o : leg.c
+
+leg.c : leg.leg compile.c
+ ./leg -o $@ $<
+
+check : check-peg check-leg
+
+check-peg : peg .FORCE
+ ./peg < peg.peg > peg.out
+ diff peg.peg-c peg.out
+ rm peg.out
+
+check-leg : leg .FORCE
+ ./leg < leg.leg > leg.out
+ diff leg.c leg.out
+ rm leg.out
+
+test examples : .FORCE
+ $(SHELL) -ec '(cd examples; $(MAKE))'
+
+clean : .FORCE
+ rm -f *~ *.o *.peg.[cd] *.leg.[cd]
+ $(SHELL) -ec '(cd examples; $(MAKE) $@)'
+
+spotless : clean .FORCE
+ rm -f peg
+ rm -f leg
+ $(SHELL) -ec '(cd examples; $(MAKE) $@)'
+
+.FORCE :
Oops, something went wrong.

0 comments on commit 2cb1f3d

Please sign in to comment.