[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