-PLATFORM ?= x86_64-linux-gnu
+#PLATFORM ?= x86_64-linux-gnu
+PLATFORM ?= x86_64-w64-mingw32
+
+CC ::= x86_64-w64-mingw32-cc
BUILDDIR ?= target/$(PLATFORM)
SRCDIR ?= src
CPPFLAGS ::= -iquotesrc/ $(CPPFLAGS)
-CFLAGS ::= -g -std=c99 -Wall -Wextra -Wpedantic $(CFLAGS)
+CFLAGS ::= -g -std=c99 -Wall -Wextra -Wpedantic -Werror \
+ -Wno-error=unused-function -Wno-error=unused-parameter $(CFLAGS)
LDFLAGS ::= $(LDFLAGS)
-LDLIBS ::= -L/usr/local/lib -lGL -lGLEW -lglut -lassimp $(LDLIBS)
+LDLIBS ::= -L/usr/x86_64-w64-mingw32/bin -lm -lopengl32 -lglew32 -lglfw3 -lassimp $(LDLIBS)
# ######
# Paths
sources ::= main.c \
engine/asset.c \
+ engine/engine.c \
+ engine/geometry.c \
+ engine/input.c \
engine/logger.c \
engine/performance.c \
engine/render.c \
+ engine/scene.c \
+ engine/string.c \
engine/tga.c \
engine/ui.c \
+ game/game.c \
+ game/input.c \
game/level.c \
game/player.c
#else
# binext ::=
#endif
-binary ::= $(BUILDDIR)/shadowclad #$(binext)
+binary ::= $(BUILDDIR)/shadowclad.exe
+#binary ::= $(BUILDDIR)/shadowclad #$(binext)
# ######
# Main build rules
# Default rule: build executable
$(binary): $(objects)
@mkdir -p $(@D)
- @echo "###### Linking executable..."
+ @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
# ######
# Build and run
run: $(binary)
@echo
- @LD_LIBRARY_PATH=/usr/local/lib $(binary)
+ @$(binary)
.PHONY: run
# Build executable
# ######
clean:
- rm -rf $(BUILDDIR)
+ @echo "Removing $(BUILDDIR)"
+ @rm -rf $(BUILDDIR)
.PHONY: clean