CC = gcc CFLAGS=-Wall SRC=src OBJ=obj SRCS=$(wildcard $(SRC)/*.c) OBJS=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SRCS)) BINDIR=bin BIN=$(BINDIR)/clox all:$(BIN) $(BIN): $(OBJS) $(CC) $(CFLAGS) $(OBJS) -o $@ $(OBJ)/%.o: $(SRC)/%.c $(CC) $(CFLAGS) -c $< -o $@ .PHONY: clean .PHONY: test clean: rm -r $(BINDIR)/* $(OBJ)/* test: $(BIN) test.lox