SRC:=$(sort $(wildcard src/*.cpp)) OBJ:=src/build.yy.o src/build.tab.o $(patsubst %.cpp,%.o,$(SRC)) .PHONY: all clean all: build clean: -rm -Rf build $(OBJ) build: src/build.yy.c src/build.tab.c $(OBJ) g++ -ggdb -ldl -o build $(OBJ) %.o: %.cpp g++ -ggdb -Isrc -c -o $@ $< %.o: %.c g++ -ggdb -Isrc -c -o $@ $< %.yy.c: %.l flex --bison-bridge --bison-locations -o $@ $< %.tab.c: %.y bison -v -b$(patsubst %.tab.c,%,$@) $<