CXX ?= g++
CXXFLAGS ?= -std=c++17 -O2 -g -Wall -Wextra -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -pthread
FUSE_CFLAGS := $(shell pkg-config --cflags fuse3)
FUSE_LIBS := $(shell pkg-config --libs fuse3)

TARGET := etvd_fuse
SRCS := src/main.cpp src/fuse_ops.cpp src/store.cpp src/meta.cpp
OBJS := $(SRCS:.cpp=.o)
HEADERS := $(wildcard src/*.h)

.PHONY: all clean

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) $(OBJS) -o $@ $(FUSE_LIBS) -pthread

src/%.o: src/%.cpp $(HEADERS)
	$(CXX) $(CXXFLAGS) $(FUSE_CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(TARGET)
