56 lines
1.0 KiB
Makefile
56 lines
1.0 KiB
Makefile
|
# Verbosity of make output
|
||
|
ifeq ("$(VERBOSE)","1")
|
||
|
V :=
|
||
|
else
|
||
|
V := @
|
||
|
endif
|
||
|
|
||
|
# Debugging
|
||
|
ifeq ("$(DEBUG)","0")
|
||
|
D :=
|
||
|
else
|
||
|
D := -g
|
||
|
endif
|
||
|
|
||
|
# Optimizations
|
||
|
ifeq ("$(OPTIMIZE)","1")
|
||
|
O := -O1
|
||
|
else ifeq ("$(OPTIMIZE)", "2")
|
||
|
O := -O2
|
||
|
else ifeq ("$(OPTIMIZE)", "3")
|
||
|
O := -O3
|
||
|
else
|
||
|
O := -O0
|
||
|
endif
|
||
|
|
||
|
SRC_DIR=src
|
||
|
INCLUDE_DIR=include
|
||
|
BUILD_DIR=build
|
||
|
|
||
|
CC=clang++
|
||
|
WARNINGS_ON=-Weverything
|
||
|
WARNINGS_OFF=-Wno-missing-braces -Wno-gnu-anonymous-struct -Wno-old-style-cast\
|
||
|
-Wno-zero-as-null-pointer-constant -Wno-nested-anon-types\
|
||
|
-Wno-padded
|
||
|
|
||
|
CFLAGS=$(D) $(O) -std=c++11 $(WARNINGS_ON) $(WARNINGS_OFF) -I$(INCLUDE_DIR)
|
||
|
LIBS=-lSDL2
|
||
|
|
||
|
_HEADERS = engine.h platform.h util.h
|
||
|
HEADERS = $(patsubst %,$(INCLUDE_DIR)/%,$(_HEADERS))
|
||
|
|
||
|
_OBJS = engine.o main.o platform.o
|
||
|
OBJS = $(patsubst %,$(BUILD_DIR)/%,$(_OBJS))
|
||
|
|
||
|
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp $(HEADERS)
|
||
|
@ if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi
|
||
|
$(V) $(CC) -c -o $@ $< $(CFLAGS)
|
||
|
|
||
|
$(BUILD_DIR)/engine: $(OBJS)
|
||
|
$(V) $(CC) -o $@ $^ $(CFLAGS) $(LIBS)
|
||
|
|
||
|
.PHONY: clean
|
||
|
|
||
|
clean:
|
||
|
rm -rf $(BUILD_DIR)
|