je ne comprend pas comment marche MAKEFLAGS en détails
il semble que cette doc ne soit pas parfaitement complète :
https://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.
html
(est il nécessaire de mettre un lien court, ou tout le monde connait ?)
je trouve que ça serais très pratique, si ici :
https://www.gnu.org/software/make/manual/html_node/Options-Summary.html
les options étaient regroupées en au moins 2 groupes :
- celles qui sont traitées avant la lecture du makefile et qui
n'apparaissent pas dans MAKEFLAGS
- celles qui sont mises dans MAKEFLAGS avant la lecture du makefile, et
qui sont traitées Í partir de MAKEFLAGS entre les 2 phases de traitement
(Í préciser : comment c'est situé par rapport Í la seconde expansion)
Í moins qu'il y ait 2 fois le traitement : au début et au milieu ?
- selon les cas, un 3eme groupe pour celles qui auraient encore un
traitement différent :
apparemment -e apparait dans MAKEFLAGS, pourtant ça impacte la 1ere
phase de traitement, pas seulement la 2eme
si on fait
MAKEFLAGS := e
est ce que c'est traité immédiatement et change le traitement des lignes
suivantes, au milieu de la 1ere phase ?
si on fait
MAKEFLAGS := option
est ce que ça efface les autres options du 2eme groupe, celles données
sur la ligne de commande ?
et du coup, pour ne pas les effacer nous avons Í faire
MAKEFLAGS += option
?
ou bien est ce que celles données sur la ligne de commande sont traitées
avant, nous n'avons pas la possibilité de les effacer, et le MAKEFLAGS
est disponible pour
- nous informer d'un 1er lot d'options traitées
- faire un 2eme lot d'options Í traiter après
?
je n'ai pas pu m'empêcher de le factoriser, même si ça sert Í rien ...
c'est marrant, ça ressemble un peu Í des maths,
mais c'est plus simple : le logiciel nous informe si on s'est trompé
qqpart en ne donnant pas le résultat attendu :-D
(je n'ai pas réfléchi au banc de tests qui permettrait de tester les 256
combinaisons possibles (ou moins parce que certaines sont inutiles) en
un seul appel Í make :-P )
j'en ai profité pour ajouter la fonction origin, qui elle aussi est
surprenante ...
il reste une nouvelle question qui est survenue :
pourquoi ce qui marche pour les variables ne marche pas pour les
fonctions ?