BUILDDIR ?= target/$(PLATFORM)
SRCDIR ?= src
-CFLAGS ::= -g -std=c99 -Wall -Wextra -Wpedantic $(CFLAGS)
+CPPFLAGS ::= -iquotesrc/ $(CPPFLAGS)
+CFLAGS ::= -g -std=c99 -Wall -Wextra -Wpedantic -Werror $(CFLAGS)
LDFLAGS ::= $(LDFLAGS)
LDLIBS ::= -L/usr/local/lib -lGL -lGLEW -lglut -lassimp $(LDLIBS)
# ######
sources ::= main.c \
- asset.c \
- level.c \
- logger.c \
- performance.c \
- player.c \
- render.c \
- tga.c \
- ui.c
+ engine/asset.c \
+ engine/logger.c \
+ engine/performance.c \
+ engine/render.c \
+ engine/tga.c \
+ engine/ui.c \
+ game/level.c \
+ game/player.c
srcfiles ::= $(addprefix $(SRCDIR)/, $(sources))
# Default rule: build executable
$(binary): $(objects)
@mkdir -p $(@D)
- @echo "###### Linking executable..."
- $(CC) $(LDFLAGS) -o $(binary) $^ $(LOADLIBES) $(LDLIBS)
+ @echo "Linking executable"
+ @$(CC) $(LDFLAGS) -o $(binary) $^ $(LOADLIBES) $(LDLIBS)
# Build C translation units
$(objects): $(BUILDDIR)/%.c.o: %.c $(BUILDDIR)/%.c.mk
@mkdir -p $(@D)
- $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
+ @echo "Building $@"
+ @$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
# ######
# Setup
# Initialise build environment
init:
- mkdir -p $(BUILDDIR)
+ @echo "Creating build directory $(BUILDDIR)"
+ @mkdir -p $(BUILDDIR)
.PHONY: init
# ######
# ######
clean:
- rm -rf $(BUILDDIR)
+ @echo "Removing $(BUILDDIR)"
+ @rm -rf $(BUILDDIR)
.PHONY: clean