Setup the Makefile to allow me to produce a release build and to create some directories if they're not there already.

This commit is contained in:
2022-03-16 18:23:11 +00:00
parent b3693f17df
commit 34557c92c3
+15 -4
View File
@@ -1,21 +1,32 @@
CC = gcc CC = gcc
CFLAGS=-Wall CFLAGS=-Wall -DDEBUG
SRC=src SRC=src
OBJ=obj OBJ=obj
SRCS=$(wildcard $(SRC)/*.c) SRCS=$(wildcard $(SRC)/*.c)
# Substitute all .c with .o from SRCS
OBJS=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SRCS)) OBJS=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SRCS))
BINDIR=bin BINDIR=bin
BIN=$(BINDIR)/clox BIN=$(BINDIR)/clox
all:$(BIN) all: $(BIN)
$(BIN): $(OBJS) release: CFLAGS=-Wall -O2
release: clean
release: $(BIN)
$(BIN): $(OBJS) $(BINDIR)
$(CC) $(CFLAGS) $(OBJS) -o $@ $(CC) $(CFLAGS) $(OBJS) -o $@
$(OBJ)/%.o: $(SRC)/%.c $(OBJ)/%.o: $(SRC)/%.c $(OBJ)
$(CC) $(CFLAGS) -c $< -o $@ $(CC) $(CFLAGS) -c $< -o $@
$(BINDIR):
mkdir $@
$(OBJ):
mkdir $@
.PHONY: clean .PHONY: clean
.PHONY: test .PHONY: test