summaryrefslogtreecommitdiff
path: root/src/tools/c/examples/bronzeage/Makefile
blob: 67367920a973bdec386da28d027869594d66f099 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

GFDIR=../../../../../

LIBGFCC_INCLUDES = $(GFDIR)/lib/c
LIBGFCC_LIBDIR = $(GFDIR)/lib/c

GFCC2C = $(GFDIR)/bin/gfcc2c

TEST_PROG = bronzeage-test

GRAMMAR_DIR = $(GFDIR)/examples/bronzeage

GRAMMAR_MODULES = Bronzeage BronzeageEng BronzeageSwe

GRAMMAR_H_FILES = $(addsuffix .h, $(GRAMMAR_MODULES))
GRAMMAR_C_FILES = $(addsuffix .c, $(GRAMMAR_MODULES))
GRAMMAR_O_FILES = $(addsuffix .o, $(GRAMMAR_MODULES))

CFLAGS += -O2
CPPFLAGS += -I$(LIBGFCC_INCLUDES)

.PHONY: clean

all: bronzeage.gfcc $(TEST_PROG)

$(TEST_PROG): $(GRAMMAR_O_FILES) $(TEST_PROG).o $(LIBGFCC_LIBDIR)/libgfcc.a	

$(TEST_PROG).o: $(GRAMMAR_H_FILES) $(GRAMMAR_O_FILES) $(TEST_PROG).c

$(GRAMMAR_H_FILES) $(GRAMMAR_C_FILES): $(GFCC2C) bronzeage.gfcc
	$(GFCC2C) bronzeage.gfcc

bronzeage.gfcc:
	echo "i -optimize=all $(GRAMMAR_DIR)/BronzeageEng.gf" > mkBronzeage.gfs
	echo "i -optimize=all $(GRAMMAR_DIR)/BronzeageSwe.gf" >> mkBronzeage.gfs
	echo "s" >> mkBronzeage.gfs
	echo "pm -printer=gfcc | wf bronzeage.gfcc" >> mkBronzeage.gfs
	cat mkBronzeage.gfs | gf
	rm -f mkBronzeage.gfs

clean:
	-rm -f $(TEST_PROG) *.o


distclean: clean
	-rm -f $(GRAMMAR_H_FILES) $(GRAMMAR_C_FILES)
	-rm -f bronzeage.gfcc