diff options
Diffstat (limited to 'content/digarden/pages/20210519193247-make.org')
-rw-r--r-- | content/digarden/pages/20210519193247-make.org | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/content/digarden/pages/20210519193247-make.org b/content/digarden/pages/20210519193247-make.org new file mode 100644 index 0000000..919ff65 --- /dev/null +++ b/content/digarden/pages/20210519193247-make.org @@ -0,0 +1,55 @@ +:PROPERTIES: +:ID: fe849377-d338-4347-b34f-3fa9a70c3e35 +:END: +#+title: Make +Система сборки, используемая в проекте гну для языка си и си-подобных. +- Собирает программу при помощи например GCC +- Установка зависимостей +- Запоминание установок сборки +- Не будет собирать уже собранное + +*Нотация*: +#+begin_src makefile + target [target ...]: [component ...] + [command 1] # ^ компоненты = зависимости + . + . + . + [command 2] +#+end_src + +*Зависимости*: +#+begin_src makefile + 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# " +#+end_src + +*Особые команды*: +/(-)/ Игнорировать ошибки +/(@)/ Не выводить в стандартный порт вывода +/(+)/ Выполнить даже если make не в режиме выполнения + +*Макросы/переменные* +#+begin_src makefile + MACRO1 = 42 + + COMPILE = gcc *.c + + gcc: + $(COMPILE) +#+end_src + + + +https://gnu.org/software/make/ |