Чтобы создать Для соответствующего Makefile нужны эти две вещи:
Макросы - это то, что мы используем в Makefiles, чтобы сократить синтаксис и упростить редактирование файла, если что-то изменилось. Например:
C = gcc # sets the macro for the C compiler to C
Итак, $ (C)
можно заменить на gcc
Правила - это то, что используется для проверки изменений файлов и их зависимостей. Всегда должно быть правило all
, чтобы при запуске make
сначала проверялось правило all
. Как и ваша программа на C, где сначала выполняется функция main ()
.
Пример Makefile:
C = gcc
CFLAGS = -o
INPUT = hello
OUT = $(INPUT)
all: $(INPUT)
$(OUT): $(INPUT).c
$(C) $(INPUT).cpp $(CFLAGS) $(OUT)
Правило можно объявить, указав его имя + точку с запятой (например, do_this:
), добавив после него любые зависимые файлы или правила (например, another_rule $ (DEPENDANDTFILE) )
), а затем добавление команд на следующей строке после TAB.
ПРИМЕЧАНИЕ. Правила не будут работать, если в начале строки оператора не будет TAB.
Вариант использования этого двойного отношения аналогичен отношению «обеспечивает». systemd-timesyncd
предоставляет услугу синхронизации времени, поэтому она удовлетворяет любой зависимости устройства от time-sync.target
. Он должен запускаться до time-sync.target
, потому что он необходим для любой службы, которая зависит от синхронизации времени, и ему требуется time-sync.target
, потому что любой модуль, полагающийся на синхронизацию времени, должен запускаться вместе со службой systemd-timesyncd
.
Я думаю, что непонимание исходит из вашей интерпретации «хочет». Отношение «хочет» в systemd не является зависимостью :systemd-timesyncd
, ему не нужно time-sync
для работы. Это отношение «начать вместе с» :, оно говорит о том, что конфигурирующий блок(systemd-timesyncd.service
)хочет, чтобы перечисленные блоки(time-sync.target
)запускались вместе с ним.
См. также Какой сервис предоставляет время -sync.target в systemd?
time-sync.target
является своего рода флагом в системе, так что службы, зависящие от правильного времени, не должны зависеть от systemd -timesyncd, ntpd, чего угодно.
Запись Before
указывает systemd запустить systemd -timesyncd, затем time -sync.target (это просто для заказа ). Wants
сообщает ему установить флаг.