source: content/digarden/pages/20210519193247-make.org@ 972a737

Last change on this file since 972a737 was 972a737, checked in by w96k <w96k@…>, on Apr 16, 2023 at 5:54:55 PM

Add logseq

  • Property mode set to 100644
File size: 1.5 KB
Line 
1:PROPERTIES:
2:ID: fe849377-d338-4347-b34f-3fa9a70c3e35
3:END:
4#+title: Make
5Система сборки, используемая в проекте гну для языка си и си-подобных.
6- Собирает программу при помощи например GCC
7- Установка зависимостей
8- Запоминание установок сборки
9- Не будет собирать уже собранное
10
11*Нотация*:
12#+begin_src makefile
13 target [target ...]: [component ...]
14 [command 1] # ^ компоненты = зависимости
15 .
16 .
17 .
18 [command 2]
19#+end_src
20
21*Зависимости*:
22#+begin_src makefile
23 all: program1
24 # ^ если запущен просто make, то запускает программы из all
25 # v зависимости v
26 program1: objectFile.o obj2.o
27 gcc *.o -o program1 # Linking only
28
29 objectFile.o: objectFile.c
30 gcc -c objectFile.c -o objectFile.c # Compile only
31
32 obj2.o: obj2.c
33 gcc -c obj2.c -o obj2.c # Compile only
34
35 hello: ; @echo "Hello# "
36#+end_src
37
38*Особые команды*:
39/(-)/ Игнорировать ошибки
40/(@)/ Не выводить в стандартный порт вывода
41/(+)/ Выполнить даже если make не в режиме выполнения
42
43*Макросы/переменные*
44#+begin_src makefile
45 MACRO1 = 42
46
47 COMPILE = gcc *.c
48
49 gcc:
50 $(COMPILE)
51#+end_src
52
53
54
55https://gnu.org/software/make/
Note: See TracBrowser for help on using the repository browser.