summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210519193247-make.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20210519193247-make.org')
-rw-r--r--content/digarden/pages/20210519193247-make.org55
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/