voeg special targets toe en functies begin
[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 L=variabele met 1 letter
37
38 all: $(NAAM)
39 touch $L
40 \end{lstlisting}
41 \end{block}
42
43 \pause%
44 \begin{block}{Veelgebruikte ingebouwde variabelen}
45 \begin{lstlisting}
46 $@ target
47 $< eerste prerequisite
48 $? alle prerequisites nieuwer dan target
49 $^ alle prerequisites zonder dubbelen
50 $+ alle prerequisites
51 $% naam van een archief file
52 \end{lstlisting}
53 \end{block}
54 \end{frame}
55
56 \begin{frame}[fragile]
57 \frametitle{Patronen en ingebouwde regels}
58 \begin{block}{\textsc{\%}}
59 \begin{lstlisting}
60 %.o: %.c
61 gcc -c -o $@ $<
62
63 %.pdf: %.tex
64 pdflatex $<
65
66 a.out: %.cxx
67 g++ $<
68 \end{lstlisting}
69 \end{block}
70
71 \begin{block}{Ingebouwd}
72 \begin{itemize}
73 \item Vaak complex
74 \item Je kan er op inhaken dmv standaard variabelen
75 \item Maak ze zichtbaar met: \verb#$ make -p#
76 \end{itemize}
77 \end{block}
78 \end{frame}
79
80 \begin{frame}[fragile]
81 \frametitle{Functies}
82 \begin{block}{String functies}
83 \begin{lstlisting}
84 \end{lstlisting}
85 \end{block}
86
87 \begin{block}{Andere functies}
88 \begin{lstlisting}
89 $(wildcard *.tex)
90 $(shell date)
91 $(
92 \end{lstlisting}
93 \end{block}
94 \end{frame}