\begin{frame}[fragile]
	\frametitle{Doelwitten en benodigdheden}

	\begin{lstlisting}[caption={Skelet van een \Make{} regel}]
target: pre1 pre2 ... pren
	cmd1
	cmd2
	...
	cmdm
	\end{lstlisting}

	\begin{lstlisting}[language=sh,caption={Aanroep van een make}]
make          # Standaard target
make target   # Specifiek target
make t1 t2 t3 # Meerdere targets
make -C map   # Voer make uit in een andere map
make -B       # Hercompileer alles, ongeacht of het nodig is
make -f file  # Voer make uit met een makefile die niet een
              # standaard naam heeft.
make -n       # Doe een dry run
make -p       # Print de hele database van (ingebouwde) regels.
make -r       # Gebruik geen ingebouwde regels.
make -j N     # Draai make met N threads.
	\end{lstlisting}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Variabelen}

	\begin{block}{Declareren van variabelen}
		\begin{lstlisting}
NAAM:=frob
NAAM=nic
NAAM+=ator
NAAM?=frobbel
override
L=variabele met 1 letter

all: $(NAAM)
	touch $L
		\end{lstlisting}
	\end{block}

	\pause%
	\begin{block}{Veelgebruikte ingebouwde variabelen}
		\begin{lstlisting}
$@ target
$< eerste prerequisite
$? alle prerequisites nieuwer dan target
$^ alle prerequisites zonder dubbelen
$+ alle prerequisites
$% naam van een archief file
		\end{lstlisting}
	\end{block}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Patronen en ingebouwde regels}
	\begin{block}{\textsc{\%}}
		\begin{lstlisting}
%.o: %.c
	gcc -c -o $@ $<

%.pdf: %.tex
	pdflatex $<

a.out: %.cxx
	g++ $<
		\end{lstlisting}
	\end{block}

	\begin{block}{Ingebouwd}
		\begin{itemize}
			\item Vaak complex
			\item Je kan er op inhaken dmv standaard variabelen
			\item Maak ze zichtbaar met: \verb#$ make -p#
		\end{itemize}
	\end{block}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Functies}
	\begin{block}{String functies}
		\begin{lstlisting}
$(filter pattern,text)
$(filter-out pattern,text)
$(subst search,replace,text)
$(word n,text))
$(findstring string,text)
		\end{lstlisting}
	\end{block}

	\begin{block}{Pad functies}
		\begin{lstlisting}
$(wildcard *.tex)
$(dir text)
$(addsuffix suffix,lijst)
$(addprefix suffix,lijst)
$(basename text)
		\end{lstlisting}
	\end{block}

	\begin{block}{Andere functies}
		\begin{lstlisting}
$(shell date)
$(if if,then,else)
$(error text)
$(foreach ident,lijst)
		\end{lstlisting}
	\end{block}
\end{frame}
