37 lines
509 B
Makefile
37 lines
509 B
Makefile
CC = gcc
|
|
CFLAGS=-Wall -DDEBUG
|
|
SRC=src
|
|
OBJ=obj
|
|
SRCS=$(wildcard $(SRC)/*.c)
|
|
# Substitute all .c with .o from SRCS
|
|
OBJS=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SRCS))
|
|
|
|
BINDIR=bin
|
|
BIN=$(BINDIR)/clox
|
|
|
|
all: $(BIN)
|
|
|
|
release: CFLAGS=-Wall -O2
|
|
release: clean
|
|
release: $(BIN)
|
|
|
|
$(BIN): $(OBJS) $(BINDIR)
|
|
$(CC) $(CFLAGS) $(OBJS) -o $@
|
|
|
|
$(OBJ)/%.o: $(SRC)/%.c $(OBJ)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BINDIR):
|
|
mkdir $@
|
|
|
|
$(OBJ):
|
|
mkdir $@
|
|
|
|
.PHONY: clean
|
|
.PHONY: test
|
|
|
|
clean:
|
|
rm -r $(BINDIR)/* $(OBJ)/*
|
|
|
|
test:
|
|
$(BIN) test.lox
|