BLOSSOM_DIR := blossom5-v2.05.src BLOSSOM_DIRS := $(BLOSSOM_DIR) $(BLOSSOM_DIR)/MinCost $(BLOSSOM_DIR)/GEOM BLOSSOM_SOURCES := $(filter-out $(BLOSSOM_DIR)/example.cpp, $(foreach dir, $(BLOSSOM_DIRS), $(wildcard $(dir)/*.cpp))) BLOSSOM_OBJS := $(patsubst %.cpp, %.o, $(BLOSSOM_SOURCES)) CFLAGS := -flto -O3 -D_NDEBUG -DPERFECT_MATCHING_DOUBLE CXX = clang++ LD = ld.lld LIBS := -lrt all: rbmp rbmp: rbmp.cpp $(BLOSSOM_DIR)/blossom5.o $(CXX) $(CFLAGS) $(BLOSSOM_DIR)/blossom5.o rbmp.cpp -o $@ $(BLOSSOM_DIR)/blossom5.o: ${BLOSSOM_OBJS} $(LD) -r -o $@ ${BLOSSOM_OBJS} .cpp.o: $(CXX) $(CFLAGS) $< -c -o $@ clean: rm -f ${BLOSSOM_OBJS} $(BLOSSOM_DIR)/blossom5.o rbmp