1d8e27e0888ceb03630cc4e40e0dc67080c193c6
[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 \end{lstlisting}
24 \end{frame}
25
26 \begin{frame}[fragile]
27 \frametitle{Variabelen}
28
29 \begin{block}{Declareren van variabelen}
30 \begin{lstlisting}
31 NAAM:=frob
32 NAAM=nic
33 NAAM+=ator
34 NAAM?=frobbel
35 L=variabele met 1 letter
36
37 all: $(NAAM)
38 touch $L
39 \end{lstlisting}
40 \end{block}
41
42 \pause%
43 \begin{block}{Veelgebruikte ingebouwde variabelen}
44 \begin{lstlisting}
45 $@ target
46 $< eerste prerequisite
47 $? alle prerequisites nieuwer dan target
48 $^ alle prerequisites zonder dubbelen
49 $+ alle prerequisites
50 $% naam van een archief file
51 \end{lstlisting}
52 \end{block}
53 \end{frame}
54
55 \begin{frame}[fragile]
56 \frametitle{Patronen en ingebouwde regels}
57 \begin{block}{\textsc{\%}}
58 \begin{lstlisting}
59 %.o: %.c
60 gcc -c -o $@ $<
61
62 %.pdf: %.tex
63 pdflatex $<
64
65 a.out: %.cxx
66 g++ $<
67 \end{lstlisting}
68 \end{block}
69
70 \begin{block}{Ingebouwd}
71 \begin{itemize}
72 \item Vaak complex
73 \item Je kan er op inhaken dmv standaard variabelen
74 \item Maak ze zichtbaar met: \verb#$ make -p#
75 \end{itemize}
76 \end{block}
77 \end{frame}