CXX ?= g++ VERSION := 0.0.2 TARGET_NOVERSION := liboptions.so TARGET := $(TARGET_NOVERSION).$(VERSION) SRCS := $(wildcard *.cpp) OBJS := $(SRCS:.cpp=.o) CXXFLAGS := -std=c++17 -fPIC -shared OPTFLAGS := -O3 DBGFLAGS := -g LDFLAGS := # Default build all: release release: CXXFLAGS += $(OPTFLAGS) release: $(TARGET) debug: CXXFLAGS += $(DBGFLAGS) debug: $(TARGET) # Linker $(TARGET): $(OBJS) $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) # Compiler %.o: %.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ clean: rm -f $(OBJS) $(TARGET_NOVERSION) $(TARGET_NOVERSION).* install: cp $(TARGET) /usr/lib/$(TARGET) cp options.h /usr/include/options.h cp options_headeronly.h /usr/include/options_headeronly.h ln -s /usr/lib/$(TARGET) /usr/lib/$(TARGET_NOVERSION) uninstall: unlink /usr/lib/$(TARGET_NOVERSION) rm /usr/lib/$(TARGET) rm /usr/include/options.h rm /usr/include/options_headeronly.h