CC = g++
CFLAGS += -Wall -Werror -D_FILE_OFFSET_BITS=64
LFLAGS = -lfuse
NAME = fifuma

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

.PHONY: all
all: CFLAGS += -O2 -DNDEBUG
all: $(NAME)

.PHONY: debug
debug: CFLAGS += -O0 -g
debug: $(NAME)

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

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

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

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