[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