[bootlin/training-materials updates] master: agenda/autotools-online-agenda: new agenda (2ecb61a4)

Thomas Petazzoni thomas.petazzoni at bootlin.com
Wed Mar 30 13:36:36 CEST 2022


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/2ecb61a49660a421755987a63b84d5242b3f5afb

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

commit 2ecb61a49660a421755987a63b84d5242b3f5afb
Author: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Date:   Wed Mar 30 13:36:36 2022 +0200

    agenda/autotools-online-agenda: new agenda
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>


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

2ecb61a49660a421755987a63b84d5242b3f5afb
 agenda/autotools-agenda.tex        |   6 +-
 agenda/autotools-online-agenda.tex | 154 +++++++++++++++++++++++++++++++++++++
 2 files changed, 155 insertions(+), 5 deletions(-)

diff --git a/agenda/autotools-agenda.tex b/agenda/autotools-agenda.tex
index df5a4457..d1dfe282 100644
--- a/agenda/autotools-agenda.tex
+++ b/agenda/autotools-agenda.tex
@@ -49,11 +49,7 @@
 }
 \feagendasummaryitem{Prerequisites}{
   \begin{itemize}
-  \item {\bf Knowledge and practice of UNIX or GNU/Linux commands}:
-    participants must be familiar with the Linux command
-    line. Participants lacking experience on this topic should get
-    trained by themselves, for example with our freely available
-    on-line slides (\url{https://bootlin.com/blog/command-line/})
+    \prerequisitecommandline
   \end{itemize}
 }
 \ferequiredequipmentonsite{}
diff --git a/agenda/autotools-online-agenda.tex b/agenda/autotools-online-agenda.tex
new file mode 100644
index 00000000..7e5c7e2b
--- /dev/null
+++ b/agenda/autotools-online-agenda.tex
@@ -0,0 +1,154 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\def \trainingtitle{Autotools training}
+\def \trainingduration{On-line seminar, 2 sessions of 4 hours}
+\def \agendalanguage{english}
+\def \training{autotools}
+
+\usepackage{agenda}
+
+\begin{document}
+
+\feshowtitle
+
+\feagendasummaryitem{Title}{
+  {\bf \trainingtitle{}}
+}
+\feagendasummaryitem{Training objectives}{
+  \begin{itemize}
+  \item Be able to understand the role of the {\em autotools}
+  \item Be able to use the {\em autotools}
+  \item Be able to set up a basic project with {\em autoconf} and {\em
+      automake}
+  \item Be able to use advanced {\em autoconf} features: configuration
+    header, checking for functions, headers and libraries, writing
+    custom tests, handling external software and optional features,
+    pkg-config, etc.
+  \item Be able to use advanced {\em automake} features:
+    subdirectories, conditionals, shared libraries with {\em libtool},
+    etc.
+  \end{itemize}
+}
+\feagendasummaryitem{Duration}{
+  {\bf Two} half days - 8 hours (4 hours per half day)
+}
+\onsitepedagogics{40}{60}{autotools}
+\feagendasummaryitem{Trainer}{
+  {\bf Thomas Petazzoni}. Thomas is a major
+  Buildroot developer since 2009, an activity through which he has
+  gained a good knowledge of {\em autoconf}, {\em automake} and {\em
+    libtool}.
+}
+\feagendasummaryitem{Language}{
+  Oral lectures: English, French.
+  \newline Materials: English.
+}
+\feagendasummaryitem{Audience}{
+  Companies already using or interested in using
+  {\em autotools} to build their software components.
+}
+\feagendasummaryitem{Prerequisites}{
+  \begin{itemize}
+    \prerequisitecommandline
+  \end{itemize}
+}
+\feagendasummaryitem{Required equipment}{
+  \begin{itemize}
+  \item Computer with the operating system of your choice, with the
+    Google Chrome or Chromium browser for videoconferencing
+  \item Webcam and microphone (preferably from an audio headset)
+  \item High speed access to the Internet
+  \item For people interested in our optional practical labs,
+    an installation of VirtualBox and about 30 GB of free
+    disk space.
+  \end{itemize}
+}
+\certificate{}
+\disabilities{}
+
+\section{Half day 1}
+
+\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}
+}
+
+\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}
+}
+
+\section{Half day 2}
+
+\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}
+}
+
+\end{document}




More information about the training-materials-updates mailing list