CXX = g++ --std=c++11
LDXX = g++
+CPPCHECK = cppcheck -q --std=c++11 \
+ --enable=warning,style,performance,portability,unusedFunction,missingInclude \
+ --error-exitcode=1
LIBS = sdl2 SDL2_image SDL2_net SDL2_ttf glew openal freealut zlib
@echo run: codecov.io
@bash -c 'bash <(curl -s https://codecov.io/bash) -Z'
+lint:
+ @echo lint: source
+ @$(CPPCHECK) $(SOURCE_DIR)
+ @echo lint: tests
+ @$(CPPCHECK) -I $(SOURCE_DIR) $(TEST_SRC_DIR)
+
clean:
rm -f $(OBJ)
rm -f $(DEP)
rm -f $(BIN) cachegrind.out.* callgrind.out.*
rm -Rf build client-saves saves
-.PHONY: all release cover debug profile tests run gdb cachegrind callgrind test coverage codecov clean distclean
+.PHONY: all release cover debug profile tests run gdb cachegrind callgrind test coverage codecov lint clean distclean
-include $(DEP)
$(COVER_BIN): $(COVER_OBJ)
@echo link: $@
- @$(LDXX) -o $@ $(CXXFLAGS) $(LDXXFLAGS) $(TESTLIBS) $(COVER_FLAGS) $^
+ @$(LDXX) $(CXXFLAGS) $^ -o $@ $(LDXXFLAGS) $(TESTLIBS) $(COVER_FLAGS)
$(COVER_DIR)/%.o: $(TEST_SRC_DIR)/%.cpp | $(COVER_DIR)
@mkdir -p "$(@D)"
$(DEBUG_BIN): %.debug: $(DEBUG_DIR)/%.o $(DEBUG_LIB_OBJ)
@echo link: $@
- @$(LDXX) -o $@ $(CXXFLAGS) $(LDXXFLAGS) $(DEBUG_FLAGS) $^
+ @$(LDXX) $(CXXFLAGS) $^ -o $@ $(LDXXFLAGS) $(DEBUG_FLAGS)
$(DEBUG_DIR)/%.o: $(SOURCE_DIR)/%.cpp | $(DEBUG_DIR)
@mkdir -p "$(@D)"
$(PROFILE_BIN): %.profile: $(PROFILE_DIR)/%.o $(PROFILE_LIB_OBJ)
@echo link: $@
- @$(LDXX) -o $@ $(CXXFLAGS) $(LDXXFLAGS) $(PROFILE_FLAGS) $^
+ @$(LDXX) $(CXXFLAGS) $^ -o $@ $(LDXXFLAGS) $(PROFILE_FLAGS)
$(PROFILE_DIR)/%.o: $(SOURCE_DIR)/%.cpp | $(PROFILE_DIR)
@mkdir -p "$(@D)"
$(RELEASE_BIN): %: $(RELEASE_DIR)/%.o $(RELEASE_LIB_OBJ)
@echo link: $@
- @$(LDXX) -o $@ $(CXXFLAGS) $(LDXXFLAGS) $(RELEASE_FLAGS) $^
+ @$(LDXX) $(CXXFLAGS) $^ -o $@ $(LDXXFLAGS) $(RELEASE_FLAGS)
$(RELEASE_DIR)/%.o: $(SOURCE_DIR)/%.cpp | $(RELEASE_DIR)
@mkdir -p "$(@D)"
$(TEST_BIN): $(TEST_OBJ)
@echo link: $@
- @$(LDXX) -o $@ $(CXXFLAGS) $(LDXXFLAGS) $(TESTLIBS) $(TEST_FLAGS) $^
+ @$(LDXX) $(CXXFLAGS) $^ -o $@ $(LDXXFLAGS) $(TESTLIBS) $(TEST_FLAGS)
$(TEST_DIR)/%.o: $(TEST_SRC_DIR)/%.cpp | $(TEST_DIR)
@mkdir -p "$(@D)"
@$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(TEST_FLAGS) -o $@ -MMD -MP -MF"$(@:.o=.d)" -MT"$@" $<
-$(ASSET_DEP): .git/$(shell git symbolic-ref HEAD 2>/dev/null || echo .git/HEAD)
+$(ASSET_DEP): .git/$(shell git symbolic-ref HEAD 2>/dev/null || echo HEAD)
@echo fetch: assets
@git submodule update --init >/dev/null
@touch $@