CXX = clang++
CXXFLAGS = -std=c++17 -O2 -Wall -Wextra -Wpedantic -pthread
SOURCES = main.cpp parser.cpp executor.cpp
OBJECTS = $(SOURCES:.cpp=.o)
TARGET = makeplus

all: $(TARGET)

$(TARGET): $(OBJECTS)
	$(CXX) $(CXXFLAGS) -o $@ $^

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

main.o: main.cpp parser.h executor.h
parser.o: parser.cpp parser.h
executor.o: executor.cpp executor.h parser.h

clean:
	$(RM) $(OBJECTS) $(TARGET)

install: $(TARGET)
	install -m 755 $(TARGET) /usr/local/bin/

.PHONY: all clean install
