Comment la force d'une erreur dans un fichier gnumake

Je veux détecter une condition dans mon makefile lorsqu'un outil est la mauvaise version et la force de le faire échouer avec un message d'erreur indiquant que l'article n'est pas la bonne version.

Quelqu'un peut-il donner un exemple de cette?

J'ai essayé ce qui suit, mais il n'est pas la bonne syntaxe:

ifeq "$(shell svnversion --version | sed s/[^0-9\.]*://)" "1.4"
$error("Bad svnversion v1.4, please install v1.6")
endif

Grâce.

  • Vous pourriez vouloir vérifier cette contre 1.4. J'ai 1.4.4 installé et le --version sortie contient beaucoup plus que le numéro de version. Essayez quelque chose comme ifeq "$(shell svn --version | sed -nE -e '/version/s/^.*([0-9]+\.[0-9]\+)\..*$$/\1/p')" "1.4" au lieu
  • Mon sed n'accepte pas l'-E: "sed: invalid option -- E"
  • A-t-elle à faire? J'ai tendance à écrire ces tests à configurer.
  • Ah.. alors modifier le match portion de l'expression de ^.*\([0-9][0-9]*\.[0-9][0-9]*\)\..*$$. Le -E permettrait expressions régulières étendues qui permettent la plus compacte des expressions parmi d'autres goodies.
  • Je le recommande citant l'expression régulière pour la coque de trop. Juste pour être sûr. I. e., ifeq ($(shell svnversion --version | sed '<regexp>')) Vous permet d'économiser la peine de se soucier des caractères spéciaux du shell va engloutir les interpréter (sauf pour les simples guillemets eux-mêmes: remplacer les guillemets simples dans la cité de cordes avec '\'' (single-quote back-slash single-quote single-quote) de leur échapper.
InformationsquelleAutor WilliamKF | 2009-12-08