Update
[linuxnijmegen-make.git] / gebruik.tex
1 \begin{frame}[fragile]
2 \frametitle{Doelwitten en benodigdheden}
3
4 \begin{lstlisting}[caption={Skelet van een \Make{} regel}]
5 target: pre1 pre2 ... pren
6 cmd1
7 cmd2
8 ...
9 cmdm
10 \end{lstlisting}
11
12 \begin{lstlisting}[language=sh,caption={Aanroep van een make}]
13 make # Standaard target
14 make target # Specifiek target
15 make t1 t2 t3 # Meerdere targets
16 make -C map # Voer make uit in een andere map
17 make -B # Hercompileer alles, ongeacht of het nodig is
18 make -f file # Voer make uit met een makefile die niet een
19 # standaard naam heeft.
20 make -n # Doe een dry run
21 make -p # Print de hele database van (ingebouwde) regels.
22 make -r # Gebruik geen ingebouwde regels.
23 make -j N # Draai make met N threads.
24 \end{lstlisting}
25 \end{frame}
26
27 \begin{frame}[fragile]
28 \frametitle{Variabelen}
29
30 \begin{block}{Declareren van variabelen}
31 \begin{lstlisting}
32 NAAM:=frob
33 NAAM=nic
34 NAAM+=ator
35 NAAM?=frobbel
36 override
37 L=variabele met 1 letter
38
39 all: $(NAAM)
40 touch $L
41 \end{lstlisting}
42 \end{block}
43
44 \pause%
45 \begin{block}{Veelgebruikte ingebouwde variabelen}
46 \begin{lstlisting}
47 $@ target
48 $< eerste prerequisite
49 $? alle prerequisites nieuwer dan target
50 $^ alle prerequisites zonder dubbelen
51 $+ alle prerequisites
52 $% naam van een archief file
53 \end{lstlisting}
54 \end{block}
55 \end{frame}
56
57 \begin{frame}[fragile]
58 \frametitle{Patronen en ingebouwde regels}
59 \begin{block}{\textsc{\%}}
60 \begin{lstlisting}
61 %.o: %.c
62 gcc -c -o $@ $<
63
64 %.pdf: %.tex
65 pdflatex $<
66
67 a.out: %.cxx
68 g++ $<
69 \end{lstlisting}
70 \end{block}
71
72 \begin{block}{Ingebouwd}
73 \begin{itemize}
74 \item Vaak complex
75 \item Je kan er op inhaken dmv standaard variabelen
76 \item Maak ze zichtbaar met: \verb#$ make -p#
77 \end{itemize}
78 \end{block}
79 \end{frame}
80
81 \begin{frame}[fragile]
82 \frametitle{Functies}
83 \begin{block}{String functies}
84 \begin{lstlisting}
85 $(filter pattern,text)
86 $(filter-out pattern,text)
87 $(subst search,replace,text)
88 $(word n,text))
89 $(findstring string,text)
90 \end{lstlisting}
91 \end{block}
92
93 \begin{block}{Pad functies}
94 \begin{lstlisting}
95 $(wildcard *.tex)
96 $(dir text)
97 $(addsuffix suffix,lijst)
98 $(addprefix suffix,lijst)
99 $(basename text)
100 \end{lstlisting}
101 \end{block}
102
103 \begin{block}{Andere functies}
104 \begin{lstlisting}
105 $(shell date)
106 $(if if,then,else)
107 $(error text)
108 $(foreach ident,lijst)
109 \end{lstlisting}
110 \end{block}
111 \end{frame}