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

Нотация:

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-11-27 Sun 23:34