LIBS = sword minizip
override CXXFLAGS += -MMD -Wall -std=c++20 -fPIC `pkg-config $(LIBS) --cflags`
override LDFLAGS += -lstdc++fs `pkg-config $(LIBS) --libs`
SOURCES = $(wildcard *.cc)
OBJECTS = $(SOURCES:.cc=.o)
DEPS = $(OBJECTS:.o=.d)
LIBRARY = libbible
SONAME = $(LIBRARY).so.$(word 1, $(subst ., , $(version)))
LIBRARY_STATIC = $(LIBRARY).a
LIBRARY_SHARED = $(LIBRARY).so

.PHONY: all
all: $(LIBRARY_SHARED) $(LIBRARY_STATIC)

$(LIBRARY_SHARED): $(OBJECTS)
	$(CXX) $^ -shared -Wl,-soname,$(SONAME) -o $@ $(LDFLAGS)

$(LIBRARY_STATIC): $(OBJECTS)
	$(AR) rcs $@ $^

.PHONY: clean
clean:
	$(RM) $(OBJECTS) $(DEPS) $(LIBRARY_SHARED) $(LIBRARY_STATIC)