CXX ?= g++
CXXFLAGS := -std=c++17 -O2 -g -fPIC -fno-exceptions -funwind-tables -fno-omit-frame-pointer \
            -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter
LDFLAGS := -shared -static-libstdc++ -static-libgcc -Wl,--no-undefined -Wl,-z,now
SRCS := $(wildcard src/*.cpp)
OBJS := $(patsubst src/%.cpp,build/%.o,$(SRCS))

build/libsilofilter.so: $(OBJS)
	$(CXX) $(LDFLAGS) -o $@ $^

build/%.o: src/%.cpp $(wildcard src/*.h) | build
	$(CXX) $(CXXFLAGS) -c -o $@ $<

build:
	mkdir -p build

clean:
	rm -rf build

.PHONY: clean
