TARGET = main

CC = g++

OBJD = obj
SRCS := $(wildcard *.cpp)
OBJS := $(SRCS:%.cpp=$(OBJD)/%.o)

CCFLAGS = -Wall
LDFLAGS = -lsfml-graphics -lsfml-window -lsfml-system

.PHONY: all run clean tags 

all: $(TARGET) tags

$(TARGET): $(OBJS)
	$(CC) $^ -o $(TARGET) $(LDFLAGS) $(CCFLAGS)

$(OBJS): $(OBJD)/%.o: %.cpp
	mkdir -p $(@D)
	$(CC) -c $? -o $@ $(CCFLAGS)

clean:
	rm -r $(TARGET) $(OBJD)

run: $(TARGET) tags
	./$(TARGET)

tags:
	ctags -R