Я охотился за тем, как может выглядеть минимальный Makefile, кроме
some_stuff:
@echo "Hello World"
Я знаю, что опаздываю на эту вечеринку, но я думал, что тоже брошу свою шляпу на ринг. Ниже приведен мой единственный каталог проекта Makefile, который я использовал годами. С небольшой модификацией он масштабируется для использования нескольких каталогов (например, src, obj, bin, header, test и т. Д.). Предполагается, что все заголовки и исходные файлы находятся в текущем каталоге. И, должны дать проекту имя, которое используется для выходного двоичного имени.
NAME = my_project
FILES = $(shell basename -a $$(ls *.cpp) | sed 's/\.cpp//g')
SRC = $(patsubst %, %.cpp, $(FILES))
OBJ = $(patsubst %, %.o, $(FILES))
HDR = $(patsubst %, -include %.h, $(FILES))
CXX = g++ -Wall
%.o : %.cpp
$(CXX) $(HDR) -c -o $@ $<
build: $(OBJ)
$(CXX) -o $(NAME) $(OBJ)
clean:
rm -vf $(NAME) $(OBJ)