====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