56 lines
1.1 KiB
Makefile
56 lines
1.1 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 -Wno-exit-time-destructors -Wno-global-constructors
|
|
|
|
CFLAGS=$(D) $(O) -std=c++11 $(WARNINGS_ON) $(WARNINGS_OFF) -I$(INCLUDE_DIR)
|
|
LIBS=-lSDL2
|
|
|
|
_HEADERS = engine.h geometry.h loader.h platform.h point.h transform.h util.h
|
|
HEADERS = $(patsubst %,$(INCLUDE_DIR)/%,$(_HEADERS))
|
|
|
|
_OBJS = engine.o loader.o main.o platform.o transform.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)
|