Update
[linuxnijmegen-make.git] / gebruik.tex
index e69de29..b578858 100644 (file)
@@ -0,0 +1,111 @@
+\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}