Система сборки, используемая в проекте гну для языка си и си-подобных.

Нотация:

target [target ...]: [component ...]
	[command 1]  # ^ компоненты = зависимости
	.
	.
	.
	[command 2]

Зависимости:

all: program1
# ^ если запущен просто make, то запускает программы из all
#         v   зависимости   v
program1: objectFile.o obj2.o
	gcc *.o -o program1			# Linking only

objectFile.o: objectFile.c
	gcc -c objectFile.c -o objectFile.c 	# Compile only

obj2.o: obj2.c
	gcc -c obj2.c -o obj2.c 		# Compile only

hello: ; @echo "Hello# "

Особые команды: (-) Игнорировать ошибки (@) Не выводить в стандартный порт вывода (+) Выполнить даже если make не в режиме выполнения

Макросы/переменные

MACRO1 = 42

COMPILE = gcc *.c

gcc:
	$(COMPILE)

https://gnu.org/software/make/

w96k Ⓐ 2019-2022

2022-10-16 Sun 19:30