[FE training-materials-updates] Add a draft autotools agenda
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Thu Dec 4 17:20:05 CET 2014
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=6f17217474b7d6878cfacde0db4c20dd5262a182
>---------------------------------------------------------------
commit 6f17217474b7d6878cfacde0db4c20dd5262a182
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date: Thu Dec 4 17:19:33 2014 +0100
Add a draft autotools agenda
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>---------------------------------------------------------------
6f17217474b7d6878cfacde0db4c20dd5262a182
Makefile | 1 +
agenda/autotools-agenda.tex | 189 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 190 insertions(+)
diff --git a/Makefile b/Makefile
index 82185bc..8555f05 100644
--- a/Makefile
+++ b/Makefile
@@ -608,6 +608,7 @@ help:
@echo " full-boottime-slides.pdf Complete slides for the 'boottime' course"
@echo " full-yocto-slides.pdf Complete slides for the 'yocto' course"
@echo " android-agenda.pdf Agenda for the 'android' course"
+ @echo " autotools-agenda.pdf Agenda for the 'autotools' course"
@echo " boottime-agenda.pdf Agenda for the 'boottime' course"
@echo " buildroot-agenda.pdf Agenda for the 'buildroot' course"
@echo " sysdev-agenda.pdf Agenda for the 'sysdev' course"
diff --git a/agenda/autotools-agenda.tex b/agenda/autotools-agenda.tex
new file mode 100644
index 0000000..c9223c1
--- /dev/null
+++ b/agenda/autotools-agenda.tex
@@ -0,0 +1,189 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{palatino}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Autotools training},
+ pdfauthor={Free Electrons}}
+
+\renewcommand{\arraystretch}{2.0}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+{\em Autotools} training\\
+\large
+1-day session
+\end{center}
+\vspace{1cm}
+
+\small
+\newcolumntype{g}{>{\columncolor{fedarkblue}}m{4cm}}
+\newcolumntype{h}{>{\columncolor{felightblue}}X}
+
+\arrayrulecolor{lightgray} {
+ \setlist[1]{itemsep=-5pt}
+ \begin{tabularx}{\textwidth}{|g|h|}
+ {\bf Title} & {\bf Autotools training} \\
+ \hline
+
+ {\bf Overview} &
+ Understand the role of the {\em autotools} \par
+ Comparaison with other solutions \par
+ Using {\em autoconf}, writing {\em configure.ac} files \par
+ Using {\em automake}, writing {\em Makefile.am} files \par
+ Using {\em libtool} to generate libraries \\
+ \hline
+
+ {\bf Duration} & {\bf One} day - 8 hours
+ \newline 40\% of lectures, 60\% of practical labs. \\
+ \hline
+
+ {\bf Trainer} & {\bf Thomas Petazzoni}. Thomas is a major
+ Buildroot developer 2009, an activity through which he has gained
+ a good knowledge of {\em autoconf}, {\em automake} and {\em
+ libtool}.\\
+ \hline
+
+ {\bf Language} & Oral lectures: English, French.
+ \newline Materials: English.\\
+ \hline
+
+ {\bf Audience} & Companies already using or interested in using
+ {\em autotools} to build their software components.\\
+ \hline
+
+ {\bf Prerequisites} & {\bf Knowledge of embedded Linux} as covered
+ in our embedded Linux course:
+ \newline \url{http://free-electrons.com/training/embedded-linux/} \vspace{1em}
+ \newline {\bf Knowledge and practice of Unix or GNU/Linux commands}
+ \newline People lacking experience on this topic should get
+ trained by themselves with our freely available on-line slides:
+ \newline \url{http://free-electrons.com/docs/command-line/} \\
+ \hline
+ \end{tabularx}
+
+ \begin{tabularx}{\textwidth}{|g|h|}
+ {\bf Required equipment} &
+ {\bf For on-site sessions only.}
+ \newline Everything is supplied by Free Electrons in public
+ sessions.
+ \begin{itemize}
+ \item Video projector
+ \item PC computers with at least 2 GB of RAM, and Ubuntu Linux
+ installed in a {\bf free partition of at least 20 GB. Using Linux
+ in a virtual machine is not supported}, because of issues
+ connecting to real hardware.
+ \item We need Ubuntu Desktop 14.04 (32 or 64 bit, Xubuntu and
+ Kubuntu variants are fine). We don't support other
+ distributions, because we can't test all possible package versions.
+ \item {\bf Connection to the Internet} (direct or through the
+ company proxy).
+ \item {\bf PC computers with valuable data must be backed up}
+ before being used in our sessions. Some people have already made
+ mistakes during our sessions and damaged work data.
+ \end{itemize}\\
+ \hline
+
+ {\bf Materials} & Print and electronic copies of presentations and
+ labs.
+ \newline Electronic copy of lab files.\\
+ \hline
+
+\end{tabularx}}
+\normalsize
+
+\section{Day 1 - Morning}
+
+\feagendatwocolumn
+{Lecture - Overview and usage of {\em autotools}}
+{
+ \begin{itemize}
+ \item What are the {\em autotools}, what are the alternatives, and
+ what they are useful for.
+ \item General architecture of the {\em autotools}: role of
+ \code{autoconf}, \code{automake} and \code{libtool}.
+ \item Usage of an existing software component using the {\em
+ autotools}: \code{autoreconf}, generated files, configuring and
+ building the software component.
+ \end{itemize}
+}
+{Lab - Usage of an existing software component using the {\em autotools}}
+{
+ \begin{itemize}
+ \item Use \code{autoreconf}, and explore generated files
+ \item Configure the software component, explore the newly generated
+ files
+ \item Build the software component
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - autoconf/automake: the basics}
+{
+ \begin{itemize}
+ \item The basic \code{autoconf} macros, and writing a simple
+ \code{configure.ac} file
+ \item The basic \code{automake} macros, and writing simple
+ \code{Makefile.am} files
+ \item Interaction between \code{autoconf} and \code{automake}
+ \item Using \code{config.h} in C code
+ \item Documentation and resources about {\em autotools}
+ \end{itemize}
+}
+{Lab - autoconf/automake: the basics}
+{
+ \begin{itemize}
+ \item Experiment \code{autoconf} and \code{automake} by creating the
+ build system for a small project composed of several applications.
+ \end{itemize}
+}
+
+\section{Day 1 - Afternoon}
+
+\feagendatwocolumn
+{Lecture - \code{libtool}: generating libraries}
+{
+ \begin{itemize}
+ \item What is \code{libtool}
+ \item How to use it with \code{autoconf} and \code{automake} to ease
+ the building of static and shared libraries
+ \end{itemize}
+}
+{Lab - Using \code{libtool}}
+{
+ \begin{itemize}
+ \item Extend the project of the previous lab by adding libraries
+ built using \code{libtool}
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - More advanced topics}
+{
+ \begin{itemize}
+ \item Creating user-configurable options with \code{autoconf} and
+ handle them using \code{automake}
+ \item Detecting dependencies such as header files, functions,
+ programs or libraries, usage of \code{pkg-config}
+ \item Providing \code{pkg-config} files for the libraries being
+ installed
+ \end{itemize}
+}
+{Lab - Implement more advanced options}
+{
+ \begin{itemize}
+ \item Extend the project of the previous lab by using more advanced
+ \code{autoconf} and \code{automake} features.
+ \end{itemize}
+}
+
+\end{document}
More information about the training-materials-updates
mailing list