# Utilities GCC ?= gcc LEX ?= flex YACC ?= bison CT ?= ct CFLAGS ?= -Wall -Werror -g --std=c99 ifdef PKGS CPPFLAGS += $(shell pkg-config --cflags $(PKGS)) LDFLAGS += $(shell pkg-config --libs $(PKGS)) endif # Targets all: $(PROG) clean: rm -f $(PROG) *.o *.a parse.h parse.c scan.c # C Rules $(PROG): $(SOURCES:%.c=%.o) $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS) %.o: %.c makefile $(GCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< # Lex / Yacc rules %.c: %.l parse.h makefile $(LEX) -o $@ $< %.c %.h: %.y makefile $(YACC) -d -o $*.c $*.y # CT Rules %.c: %.ct makefile $(CT) -o $@ $< # Miscellaneous .SECONDARY: # vim: ft=make