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