|
- ifndef RACK_DIR
- $(error RACK_DIR is not defined)
- endif
-
- ifndef VERSION
- $(error VERSION is not defined)
- endif
-
- include $(RACK_DIR)/arch.mk
-
- FLAGS += -DVERSION=$(VERSION)
- # Generate dependency files alongside the object files
- FLAGS += -MMD -MP
- FLAGS += -g
- # Optimization
- FLAGS += -O3 -march=nocona -ffast-math -fno-finite-math-only
- FLAGS += -Wall -Wextra -Wno-unused-parameter
-
- ifneq ($(ARCH), mac)
- CXXFLAGS += -Wsuggest-override
- endif
- CXXFLAGS += -std=c++11
-
-
- ifeq ($(ARCH), lin)
- FLAGS += -DARCH_LIN
- endif
- ifeq ($(ARCH), mac)
- FLAGS += -DARCH_MAC
- CXXFLAGS += -stdlib=libc++
- LDFLAGS += -stdlib=libc++
- MAC_SDK_FLAGS = -mmacosx-version-min=10.7
- FLAGS += $(MAC_SDK_FLAGS)
- LDFLAGS += $(MAC_SDK_FLAGS)
- endif
- ifeq ($(ARCH), win)
- FLAGS += -DARCH_WIN
- FLAGS += -D_USE_MATH_DEFINES
- endif
-
- CFLAGS += $(FLAGS)
- CXXFLAGS += $(FLAGS)
-
-
- # Derive object files from sources and place them before user-defined objects
- OBJECTS := $(patsubst %, build/%.o, $(SOURCES)) $(OBJECTS)
- DEPENDENCIES := $(patsubst %, build/%.d, $(SOURCES))
-
- # Final targets
-
- $(TARGET): $(OBJECTS)
- $(CXX) -o $@ $^ $(LDFLAGS)
-
- -include $(DEPENDENCIES)
-
- build/%.c.o: %.c | dep
- @mkdir -p $(@D)
- $(CC) $(CFLAGS) -c -o $@ $<
-
- build/%.cpp.o: %.cpp | dep
- @mkdir -p $(@D)
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
- build/%.cc.o: %.cc | dep
- @mkdir -p $(@D)
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
- build/%.m.o: %.m | dep
- @mkdir -p $(@D)
- $(CC) $(CFLAGS) -c -o $@ $<
-
- # Dummy target
- dep:
-
- .PHONY: dep
|