[FE training-materials-updates] autotools/agenda: update to reflect reality

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri May 22 17:32:12 CEST 2015


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

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=c02acad7d6d9bad108063ad3dc0c24dd2f842176

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

commit c02acad7d6d9bad108063ad3dc0c24dd2f842176
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date:   Fri May 22 17:31:49 2015 +0200

    autotools/agenda: update to reflect reality
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>


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

c02acad7d6d9bad108063ad3dc0c24dd2f842176
 agenda/autotools-agenda.tex | 87 +++++++++++++++++++++++++++------------------
 1 file changed, 52 insertions(+), 35 deletions(-)

diff --git a/agenda/autotools-agenda.tex b/agenda/autotools-agenda.tex
index 4feb0a8..c9d8520 100644
--- a/agenda/autotools-agenda.tex
+++ b/agenda/autotools-agenda.tex
@@ -37,10 +37,14 @@
 
     {\bf Overview} &
     Understand the role of the {\em autotools} \par
-    Comparison 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 \\
+    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}\\
     \hline
 
     {\bf Duration} & {\bf One} day - 8 hours
@@ -99,6 +103,9 @@
     \hline
 
 \end{tabularx}}
+
+\newpage
+
 \normalsize
 
 \section{Day 1 - Morning}
@@ -109,20 +116,24 @@
   \begin{itemize}
   \item What the {\em autotools} are, what the alternatives are, 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.
+      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 Use \code{autoreconf}, and explore generated files
-  \item Configure the software component, explore the newly generated
-    files
-  \item Build the software component
+  \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}
 }
 
@@ -130,15 +141,9 @@
 {Lecture - autoconf/automake: the basics}
 {
   \begin{itemize}
-  \item Brief introduction to the \code{m4} macro language, used in
-    \code{autoconf}
-  \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}
+  \item \code{configure.ac} language and basic macros
+  \item \code{AC_CONFIG_FILES} and {\em output variables}
+  \item Minimal \code{Makefile.am}
   \end{itemize}
 }
 
@@ -148,31 +153,43 @@
 {Lab - autoconf/automake: the basics}
 {
   \begin{itemize}
-  \item Experiment with \code{autoconf} and \code{automake} by creating
-    the build system for a small project composed of several applications.
+  \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 - More advanced topics}
+{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 Building shared and static libraries with \code{libtool}
-  \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
+  \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 Extend the project of the previous lab by adding libraries
-    built using \code{libtool}
-  \item Extend the project of the previous lab by using more advanced
-    \code{autoconf} and \code{automake} features.
+  \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}
 }
 



More information about the training-materials-updates mailing list