1 # Original sources and final program. 2 3 SOURCES = main.c client.c common.c declaration.c dispatch.c message.c program.c server.c structure.c summary.c 4 PROGRAM = idl 5 6 # Generated files from flex and bison. 7 8 SCANNER = lex.yy.c 9 PARSER = y.tab.c 10 HEADER = y.tab.h 11 GENERATED = $(SCANNER) $(PARSER) 12 13 # Computed values. 14 15 ALL_SOURCES = $(SOURCES) $(GENERATED) 16 OBJECTS = $(patsubst %.c,%.o,$(SOURCES)) 17 18 # Flags and options. 19 20 CFLAGS = -D_GNU_SOURCE 21 #DEBUG = -DYYDEBUG=1 22 23 # Rules. 24 25 all: $(PROGRAM) 26 27 clean: 28 $(RM) $(PROGRAM) $(GENERATED) $(HEADER) $(OBJECTS) 29 30 $(PROGRAM): $(GENERATED) $(OBJECTS) 31 $(CC) $(CFLAGS) -o $@ $(GENERATED) $(OBJECTS) -ll 32 33 $(SCANNER): idl.lex 34 flex $< 35 36 $(PARSER): idl.y 37 bison -d -y -t $< 38 39 $(OBJECTS): $(SOURCES) 40 41 .c.o: 42 $(CC) $(CFLAGS) -o $@ -c $<