mirror of
https://github.com/zeux/pugixml.git
synced 2025-01-15 02:17:56 +08:00
40 lines
663 B
Makefile
40 lines
663 B
Makefile
|
config=debug
|
||
|
defines=standard
|
||
|
|
||
|
BUILD=build/make-$(CXX)-$(config)-$(defines)
|
||
|
|
||
|
SOURCES=src/pugixml.cpp $(wildcard tests/*.cpp)
|
||
|
EXECUTABLE=$(BUILD)/test
|
||
|
|
||
|
CXXFLAGS=-c -g -Wall -Wextra -Werror -pedantic
|
||
|
LDFLAGS=
|
||
|
|
||
|
ifeq ($(config),release)
|
||
|
CXXFLAGS+=-O3 -DNDEBUG
|
||
|
endif
|
||
|
|
||
|
ifneq ($(defines),standard)
|
||
|
COMMA=,
|
||
|
CXXFLAGS+=-D $(subst $(COMMA), -D ,$(defines))
|
||
|
endif
|
||
|
|
||
|
OBJECTS=$(SOURCES:%=$(BUILD)/%.o)
|
||
|
|
||
|
all: $(EXECUTABLE)
|
||
|
|
||
|
test: $(EXECUTABLE)
|
||
|
./$(EXECUTABLE)
|
||
|
|
||
|
clean:
|
||
|
rm -rf $(BUILD)
|
||
|
|
||
|
$(EXECUTABLE): $(OBJECTS)
|
||
|
$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
|
||
|
|
||
|
$(BUILD)/%.o: %
|
||
|
@mkdir -p $(dir $@)
|
||
|
$(CXX) $< $(CXXFLAGS) -MMD -MP -o $@
|
||
|
|
||
|
-include $(OBJECTS:.o=.d)
|
||
|
|
||
|
.PHONY: all test clean
|