1TARGET := spirv-cross
2
3SOURCES := $(wildcard spirv_*.cpp)
4CLI_SOURCES := main.cpp
5
6OBJECTS := $(SOURCES:.cpp=.o)
7CLI_OBJECTS := $(CLI_SOURCES:.cpp=.o)
8
9STATIC_LIB := lib$(TARGET).a
10
11DEPS := $(OBJECTS:.o=.d) $(CLI_OBJECTS:.o=.d)
12
13CXXFLAGS += -std=c++11 -Wall -Wextra -Wshadow -Wno-deprecated-declarations
14
15ifeq ($(DEBUG), 1)
16	CXXFLAGS += -O0 -g
17else
18	CXXFLAGS += -O2 -DNDEBUG
19endif
20
21ifeq ($(SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS), 1)
22	CXXFLAGS += -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS -fno-exceptions
23endif
24
25all: $(TARGET)
26
27-include $(DEPS)
28
29$(TARGET): $(CLI_OBJECTS) $(STATIC_LIB)
30	$(CXX) -o $@ $(CLI_OBJECTS) $(STATIC_LIB) $(LDFLAGS)
31
32$(STATIC_LIB): $(OBJECTS)
33	$(AR) rcs $@ $(OBJECTS)
34
35%.o: %.cpp
36	$(CXX) -c -o $@ $< $(CXXFLAGS) -MMD
37
38clean:
39	rm -f $(TARGET) $(OBJECTS) $(CLI_OBJECTS) $(STATIC_LIB) $(DEPS)
40
41.PHONY: clean
42