L4Re/idl4re

Annotated Makefile

27:6babd2232b8e
2019-10-27 Paul Boddie Employ protocol interface attribute values as opcodes in generated functions. Replaced the special-purpose string formatting and allocating function with asprintf usage, adding compilation flags to expose asprintf appropriately.
paul@13 1
# Original sources and final program.
paul@11 2
paul@22 3
SOURCES = main.c client.c summary.c
paul@13 4
PROGRAM = idl
paul@11 5
paul@11 6
# Generated files from flex and bison.
paul@11 7
paul@0 8
SCANNER = lex.yy.c
paul@0 9
PARSER = y.tab.c
paul@0 10
HEADER = y.tab.h
paul@8 11
GENERATED = $(SCANNER) $(PARSER)
paul@0 12
paul@13 13
# Computed values.
paul@13 14
paul@13 15
ALL_SOURCES = $(SOURCES) $(GENERATED)
paul@13 16
OBJECTS = $(patsubst %.c,%.o,$(SOURCES))
paul@13 17
paul@13 18
# Flags and options.
paul@13 19
paul@27 20
CFLAGS = -D_GNU_SOURCE
paul@2 21
#DEBUG = -DYYDEBUG=1
paul@2 22
paul@13 23
# Rules.
paul@13 24
paul@13 25
all: $(PROGRAM)
paul@0 26
paul@0 27
clean:
paul@13 28
	$(RM) $(PROGRAM) $(GENERATED) $(HEADER) $(OBJECTS)
paul@0 29
paul@13 30
$(PROGRAM): $(GENERATED) $(OBJECTS)
paul@27 31
	$(CC) $(CFLAGS) -o $@ $(GENERATED) $(OBJECTS) -ll
paul@0 32
paul@0 33
$(SCANNER): idl.lex
paul@0 34
	flex $<
paul@0 35
paul@0 36
$(PARSER): idl.y
paul@2 37
	bison -d -y -t $<
paul@13 38
paul@13 39
$(OBJECTS): $(SOURCES)
paul@13 40
paul@13 41
.c.o:
paul@27 42
	$(CC) $(CFLAGS) -o $@ -c $<