[FE training-materials-updates] Create a fake autotoolsbuildroot training

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri May 22 18:19:58 CEST 2015


Repository : git://git.free-electrons.com/training-materials.git

On branch  : autotools-buildroot
Link       : http://git.free-electrons.com/training-materials/commit/?id=f2a51a9d9cf09e9c6d1279949ba54ce3a3c61b9a

>---------------------------------------------------------------

commit f2a51a9d9cf09e9c6d1279949ba54ce3a3c61b9a
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date:   Fri May 22 17:07:26 2015 +0200

    Create a fake autotoolsbuildroot training
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>


>---------------------------------------------------------------

f2a51a9d9cf09e9c6d1279949ba54ce3a3c61b9a
 Makefile                                           |  50 ++++++---
 ...ot-agenda.tex => autotoolsbuildroot-agenda.tex} | 120 ++++++++++++++++++---
 common/autotoolsbuildroot-labs-vars.tex            |   3 +
 common/autotoolsbuildroot-title.tex                |   3 +
 4 files changed, 150 insertions(+), 26 deletions(-)

diff --git a/Makefile b/Makefile
index 9a66c71..16a423f 100644
--- a/Makefile
+++ b/Makefile
@@ -278,13 +278,7 @@ YOCTO_SLIDES    = \
 		yocto-resources \
 		last-slides
 
-BUILDROOT_SLIDES = \
-		first-slides \
-		about-us \
-		course-information-title \
-		beagleboneblack-board \
-		course-information \
-		setup-lab \
+BUILDROOT_CORE_SLIDES = \
 		buildroot-introduction \
 		buildroot-build \
 		buildroot-tree \
@@ -301,18 +295,38 @@ BUILDROOT_SLIDES = \
 		buildroot-internals \
 		buildroot-support-contribution \
 		buildroot-whats-new \
-		buildroot-acknowledgements \
-		last-slides
+		buildroot-acknowledgements
 
-AUTOTOOLS_SLIDES = first-slides \
+BUILDROOT_SLIDES = \
+		first-slides \
 		about-us \
 		course-information-title \
+		beagleboneblack-board \
 		course-information \
 		setup-lab \
+		$(BUILDROOT_CORE_SLIDES) \
+		last-slides
+
+AUTOTOOLS_CORE_SLIDES = \
 		autotools-usage \
 		autotools-basics \
 		autotools-advanced \
-		autotools-references \
+		autotools-references
+
+AUTOTOOLS_SLIDES = first-slides \
+		about-us \
+		course-information-title \
+		course-information \
+		setup-lab \
+		$(AUTOTOOLS_CORE_SLIDES) \
+		last-slides
+
+AUTOTOOLSBUILDROOT_SLIDES = first-slides \
+		about-us \
+		course-information-title \
+		course-information \
+		$(AUTOTOOLS_CORE_SLIDES) \
+		$(BUILDROOT_CORE_SLIDES) \
 		last-slides
 
 # List of labs for the different courses
@@ -382,7 +396,7 @@ YOCTO_LABS    = setup \
 		yocto-sdk \
 		yocto-sdk-eclipse \
 
-BUILDROOT_LABS = setup \
+BUILDROOT_CORE_LABS = \
 		buildroot-basic \
 		buildroot-rootfs \
 		buildroot-new-packages \
@@ -390,11 +404,21 @@ BUILDROOT_LABS = setup \
 		buildroot-advanced \
 		buildroot-appdev
 
-AUTOTOOLS_LABS = setup \
+BUILDROOT_LABS = setup \
+		$(BUILDROOT_CORE_LABS)
+
+AUTOTOOLS_CORE_LABS = \
 		autotools-usage \
 		autotools-basics \
 		autotools-advanced
 
+AUTOTOOLS_LABS = setup \
+		$(AUTOTOOLS_CORE_LABS)
+
+AUTOTOOLSBUILDROOT_LABS = setup \
+		$(AUTOTOOLS_CORE_LABS) \
+		$(BUILDROOT_CORE_LABS)
+
 # Output directory
 OUTDIR   = $(PWD)/out
 
diff --git a/agenda/buildroot-agenda.tex b/agenda/autotoolsbuildroot-agenda.tex
similarity index 78%
copy from agenda/buildroot-agenda.tex
copy to agenda/autotoolsbuildroot-agenda.tex
index 36b6b4b..5cb870f 100644
--- a/agenda/buildroot-agenda.tex
+++ b/agenda/autotoolsbuildroot-agenda.tex
@@ -6,7 +6,7 @@
 \usepackage{palatino}
 \usepackage{calc}
 
-\hypersetup{pdftitle={Buildroot training},
+\hypersetup{pdftitle={Autotools and Buildroot training},
   pdfauthor={Free Electrons}}
 
 \renewcommand{\arraystretch}{2.0}
@@ -19,9 +19,9 @@
 
 \begin{center}
 \LARGE
-Buildroot training\\
+Autotools and Buildroot training\\
 \large
-3-day session
+4-day session
 \end{center}
 \vspace{1cm}
 
@@ -32,10 +32,19 @@ Buildroot training\\
 \arrayrulecolor{lightgray} {
   \setlist[1]{itemsep=-5pt}
   \begin{tabularx}{\textwidth}{|g|h|}
-    {\bf Title} & {\bf Buildroot training} \\
+    {\bf Title} & {\bf Autotools and Buildroot training} \\
     \hline
 
     {\bf Overview} &
+    Understand the role of the {\em autotools} \par
+    Usage of the {\em autotools} \par
+    Basics of {\em autoconf} and {\em automake} \par
+    Advanced {\em autoconf} topics: configuration header, checking for
+    functions, headers and libraries, writing custom tests, handling
+    external software and optional features, pkg-config, etc. \par
+    Advanced {\em automake} topics: subdirectories, conditionals,
+    shared libraries with {\em libtool}, etc. \par
+    References to books and tutorials about {\em autotools} \par
     Introduction to Buildroot \par
     Managing and building the configuration \par
     Buildroot source and build trees \par
@@ -53,12 +62,12 @@ Buildroot training\\
     Buildroot community: getting support and contributing \\
     \hline
 
-    {\bf Duration} & {\bf Three} days - 24 hours (8 hours per day).
+    {\bf Duration} & {\bf Four} days - 32 hours (8 hours per day).
     \newline 40\% of lectures, 60\% of practical labs. \\
     \hline
 
     {\bf Trainer} & {\bf Thomas Petazzoni}. Thomas is a major
-    Buildroot developer since 2009, with more than 2700 patches
+    Buildroot developer since 2009, with more than 2900 patches
     integrated and an active participation to the development process.\\
     \hline
 
@@ -69,7 +78,9 @@ Buildroot training\\
     {\bf Audience} & Companies already using or interested in using
     Buildroot to build their embedded Linux system.\\
     \hline
+  \end{tabularx}
 
+  \begin{tabularx}{\textwidth}{|g|h|}
     {\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}
@@ -78,9 +89,7 @@ Buildroot training\\
     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
@@ -138,6 +147,91 @@ Buildroot training\\
 \section{Day 1 - Morning}
 
 \feagendatwocolumn
+{Lecture - Overview and usage of {\em autotools}}
+{
+  \begin{itemize}
+  \item What the {\em autotools} are, what the alternatives are, and
+    what they are useful for.
+  \item Usage of an existing software component using the {\em
+      autotools}: configuring and building the software component.
+  \item Standard Makefile targets, filesystem hierarchy, configuration variables
+  \item System types: build, host, target
+  \item Cross-compilation
+  \item Out of tree build
+  \item Diverted installation
+  \item Cache variables
+  \item Using {\em autoreconf}
+  \end{itemize}
+}
+{Lab - Usage of an existing software component using the {\em autotools}}
+{
+  \begin{itemize}
+  \item First build of an {\em autotools} package
+  \item Out-of-tree build and cross-compilation
+  \item Overriding cache variables
+  \item Using {\em autoreconf}
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - autoconf/automake: the basics}
+{
+  \begin{itemize}
+  \item \code{configure.ac} language and basic macros
+  \item \code{AC_CONFIG_FILES} and {\em output variables}
+  \item Minimal \code{Makefile.am}
+  \end{itemize}
+}
+
+\section{Day 1 - Afternoon}
+
+\feagendaonecolumn
+{Lab - autoconf/automake: the basics}
+{
+  \begin{itemize}
+  \item Your first \code{configure.ac}
+  \item Adding and building a program
+  \item Going further: \code{autoscan} and \code{make dist}
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Autoconf advanced}
+{
+  \begin{itemize}
+  \item Configuration header
+  \item Checking for functions, headers, libraries
+  \item Custom tests
+  \item Handling external software and optional features
+  \item \code{pkg-config}
+  \end{itemize}
+}
+{Lecture - Automake advanced}
+{
+  \begin{itemize}
+  \item Subdirectories
+  \item Conditionals
+  \item Shared libraries
+  \item Misc: variables, macro and auxiliarly directories, silent
+    rules, etc.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lab - Implement more advanced options}
+{
+  \begin{itemize}
+  \item Use \code{AC_ARG_ENABLE} and \code{config.h}
+  \item Implement a shared library
+  \item Switch to multiple directories
+  \item Make the compilation of programs conditional
+  \item Use \code{pkg-config}
+  \end{itemize}
+}
+
+\section{Day 2 - Morning}
+
+\feagendatwocolumn
 {Lecture - Embedded Linux and build system introduction}
 {
   \begin{itemize}
@@ -177,7 +271,7 @@ Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 1 - Afternoon}
+\section{Day 2 - Afternoon}
 
 
 \feagendatwocolumn
@@ -235,7 +329,7 @@ Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 2 - Morning}
+\section{Day 3 - Morning}
 
 \feagendatwocolumn
 {Lecture - Download infrastructure in Buildroot}
@@ -282,7 +376,7 @@ Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 2 - Afternoon}
+\section{Day 3 - Afternoon}
 
 \feagendatwocolumn
 {Lecture - Advanced package aspects}
@@ -310,7 +404,7 @@ Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 3 - Morning}
+\section{Day 4 - Morning}
 
 \feagendatwocolumn
 {Lecture - Analyzing the build: licensing, dependencies, build time}
@@ -344,7 +438,7 @@ Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 3 - Afternoon}
+\section{Day 4 - Afternoon}
 
 \feagendatwocolumn
 {Lecture - Application development with Buildroot}
diff --git a/common/autotoolsbuildroot-labs-vars.tex b/common/autotoolsbuildroot-labs-vars.tex
new file mode 100644
index 0000000..e40e41d
--- /dev/null
+++ b/common/autotoolsbuildroot-labs-vars.tex
@@ -0,0 +1,3 @@
+\def\labbooktitle{Autotools and Buildroot Training}
+\def\longname{autotoolsbuildroot}
+\def\labbookurl{http://free-electrons.com/doc/training/{autotools,buildroot}/}
diff --git a/common/autotoolsbuildroot-title.tex b/common/autotoolsbuildroot-title.tex
new file mode 100644
index 0000000..fce6648
--- /dev/null
+++ b/common/autotoolsbuildroot-title.tex
@@ -0,0 +1,3 @@
+\authors{Free Electrons}
+\trainingurl{http://free-electrons.com/doc/training/{autotools,buildroot}/}
+\titleframe{Autotools and Buildroot}



More information about the training-materials-updates mailing list