У меня есть такой Makefile
PROJECT=GameOfLife
CXX=clang++-13
STD=c++2a
STDLIB=libstdc++
FLAGS=-Wall -Wextra
LINKARGS=-lsfml-graphics -lsfml-window -lsfml-system
SOURCES=src/main.cpp
OBJECTS=$(wildcard build/*.o)
build: $(SOURCES)
$(CXX) -c -std=$(STD) -stdlib=$(STDLIB) $(FLAGS) $(SOURCES)
mv *.o ./build
link: $(OBJECTS)
$(CXX) $(OBJECTS) -o bin/$(PROJECT) $(LINKARGS)
clean:
rm -rf bin/*
rm -rf build/*
compile:
make build
make link
run:
make compile
./bin/$(PROJECT)
.PHONY: clean compile run
Если я запускаю
make build
первый раз, то всё работает. Если запускаю второй раз, то вылезает такое сообщение:
➜ make build
make: «build» не требует обновления.
До этого я выполнил команду make clean. В итоге этот такс срабатывает только если его постоянно переименовывать.
Структура проекта:
GOL
┣ bin
┣ build
┣ include
┣ lib
┣ src
┃ ┗ main.cpp
┗ Makefile