====Exécuter du code pour un groupe de nom de fichiers====
cpp: cpp/area.pb.cc cpp/load.pb.cc cpp/number.pb.cc cpp/project.pb.cc
cpp/%.pb.cc: %.proto
protoc --cpp_out=cpp $^
''$@'' désigne ici ''cpp/XXX.pb.cc'' et ''$^'' désigne ici ''XXX.proto''.
====Ajouter une dépendance à all====
Il faut utiliser ''all-local''
all-local: dependance
commands
[[https://www.gnu.org/software/automake/manual/automake.pdf|GNU Automake]], {{ :autotools:makefile.am:automake-1.15.1.pdf |Archive}}
====Substituer une partie d'un texte d'une variable====
$(@:.pb.cc=.pb.h)
Remplace dans la variable ''@'' ''.pb.cc'' par ''.pb.h''.
[[https://www.gnu.org/software/make/manual/make.pdf|GNU Make]] {{ :autotools:makefile.am:make-4.2.pdf |Archive}}
====Création d'une librairie====
lib_LTLIBRARIES = lib1.la lib2.la
lib1_la_CXXFLAGS = $(AM_CXXFLAGS) -isystem /usr/include
lib1_la_LDFLAGS = $(AM_LDFLAGS) -release $(VERSION) -Wl,-Map,lib1.map
lib1_la_SOURCES = source.cc
lib1_ladir = $(includedir)
lib1_la_HEADERS = source.h
lib2_la_CXXFLAGS …
…
====Génération du code Doxygen====
all-local: doxygen.stamp
doxygen.stamp: $(libXXXXXX_la_SOURCES) $(libXXXXXX_la_HEADERS)
mkdir -p ../../../doc
echo Timestamp > doxygen.stamp
$(DOXYGEN) ./Doxyfile
CLEANFILES = doxygen.stamp
EXTRA_DIST = Doxyfile
clean-local:
rm -Rf ../../../doc