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