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

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Jun 15 10:47:39 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=433d3ce90e050e026c27cd2bd85e2ba39c19c282

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

commit 433d3ce90e050e026c27cd2bd85e2ba39c19c282
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>


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

433d3ce90e050e026c27cd2bd85e2ba39c19c282
 Makefile                                           |  50 ++++++--
 ...ot-agenda.tex => autotoolsbuildroot-agenda.tex} | 134 +++++++++++++++++----
 common/autotoolsbuildroot-labs-vars.tex            |   3 +
 common/autotoolsbuildroot-title.tex                |   3 +
 4 files changed, 156 insertions(+), 34 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 76%
copy from agenda/buildroot-agenda.tex
copy to agenda/autotoolsbuildroot-agenda.tex
index 3ae9877..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
-Embedded Linux development with Buildroot training\\
+Autotools and Buildroot training\\
 \large
-3-day session
+4-day session
 \end{center}
 \vspace{1cm}
 
@@ -32,10 +32,19 @@ Embedded Linux development with Buildroot training\\
 \arrayrulecolor{lightgray} {
   \setlist[1]{itemsep=-5pt}
   \begin{tabularx}{\textwidth}{|g|h|}
-    {\bf Title} & {\bf Embedded Linux development with 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
@@ -50,16 +59,15 @@ Embedded Linux development with Buildroot training\\
     Advanced topics \par
     Application development with Buildroot \par
     Understanding the Buildroot internals \par
-    Buildroot community: getting support and contributing \par
-    What's new in Buildroot ? \\
+    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
 
@@ -68,21 +76,20 @@ Embedded Linux development with Buildroot training\\
     \hline
 
     {\bf Audience} & Companies already using or interested in using
-    Buildroot to build their embedded Linux systems.\\
+    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}
     \newline {\bf Knowledge and practice of Unix or GNU/Linux commands}
     \newline People lacking experience on this topic should get
-    trained by themselves, for example with our freely available
-    on-line slides:
+    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
@@ -140,6 +147,91 @@ Embedded Linux development with 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}
@@ -179,7 +271,7 @@ Embedded Linux development with Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 1 - Afternoon}
+\section{Day 2 - Afternoon}
 
 
 \feagendatwocolumn
@@ -237,7 +329,7 @@ Embedded Linux development with Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 2 - Morning}
+\section{Day 3 - Morning}
 
 \feagendatwocolumn
 {Lecture - Download infrastructure in Buildroot}
@@ -252,8 +344,8 @@ Embedded Linux development with Buildroot training\\
 {Lecture - GNU Make 101}
 {
   \begin{itemize}
-  \item Basics of make rules
-  \item Defining and referencing variables
+  \item Basic of make rules
+  \item Definining and referencing variables
   \item Conditions, functions
   \item Writing recipes
   \end{itemize}
@@ -284,7 +376,7 @@ Embedded Linux development with Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 2 - Afternoon}
+\section{Day 3 - Afternoon}
 
 \feagendatwocolumn
 {Lecture - Advanced package aspects}
@@ -312,7 +404,7 @@ Embedded Linux development with Buildroot training\\
   \end{itemize}
 }
 
-\section{Day 3 - Morning}
+\section{Day 4 - Morning}
 
 \feagendatwocolumn
 {Lecture - Analyzing the build: licensing, dependencies, build time}
@@ -341,12 +433,12 @@ Embedded Linux development with Buildroot training\\
   \item Use build time graphing capabilities
   \item Use dependency graphing capabilities
   \item Use licensing report generation, and add licensing
-    information to your own packages
+    informations to your own packages
   \item Use \code{BR2_EXTERNAL}
   \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