next up previous
suivant: À propos de ce monter: GPImake précédent: macro-définitions standard

règles génériques et fonctions

Une règle générique est définie par:
%.b: %.a tout fichier de suffixe .b dépend du fichier de même nom de suffixe .a,
 
La syntaxe d'une fonction est: $(fonction paramètres).
Pour toutes les fonctions suivantes, la valeur de retour est affectée à la variable RES :
RES=$(wildcard $*.$a) retourne la liste des fichiers de suffixe .a,
RES=$(subst from,to,text) retourne le texte text
  en substituant toutes les occurences de from par to dans text,
RES=$(findstring text,find) retourne le texte find si find est dans text,
RES=$(strip text) retourne le text text
  en supprimant les espaces au début et à la fin de text,
RES=$(shell ls -l) retourne le résultat de l'éxecution de la commande ls -l,
RES=$(VAR:.a=.b) comme RES=$(subst .a,.b,$(VAR)),
RES=$(dir src/file.c) retourne src,
RES=$(notdir src/file.c) retourne file.c,
 
Il est possible de vérifier des conditions avec la syntaxe
ifeq CONDITIONAL-DIRECTIVE <tab>TEXT-IF-TRUE else <tab>TEXT-IF-FALSE endif.  
 
exemples: TEX = latex
TEXTOPS = dvips
FICHIERSTEX = $(wildcard *.tex)
all : $(FICHIERSTEX:.tex=.ps)

%.dvi : %.tex
tab $(TEX) $<
tab rm $(@:.dvi=.aux)
tab rm $(@:.dvi=.log)
%.ps : %.dvi
tab $(TEXTOPS) $< -o $@



-------------------------

OS=$(shell uname)
all : deuxtests

deuxtests :
ifeq ($(OS),Linux)
tab  echo OS est Linux
else
tab  echo OS pas Linux mais $(OS)
endif
ifeq (1.tex,$(wildcard 1.tex))
tab  echo 1.tex est dans rep courant
else
tab  echo 1.tex pas dans rep courant
endif

next up previous
suivant: À propos de ce monter: GPImake précédent: macro-définitions standard
n 2004-03-21