CC = LC_ALL=C g++
CFLAGS += -Wall -Werror -g -O2
LFLAGS += -lnetfilter_queue -lcap
NAME = nfmod

SOURCES = $(wildcard *.cpp)
HEADERS = $(wildcard *.hpp)
OBJECTS = $(SOURCES:.cpp=.o)
PREFIX ?= /usr/local

$(NAME): $(OBJECTS)
    $(CC) -o $(@) $(^) $(LFLAGS)

%.o: %.cpp $(HEADERS) Makefile
    $(CC) $(CFLAGS) -o $(@) -c $(<)

.PHONY: valgrind
valgrind: $(NAME)
    sudo valgrind --leak-check=full --show-reachable=yes --track-origins=yes ./$(<) . nobody ruleset.txt

.PHONY: install
install: $(NAME)
    @install -v -t "$(DESTDIR)$(PREFIX)/bin" $(^)

.PHONY: clean
clean:
    rm -f $(NAME) $(OBJECTS)