2009-09-15 6 views
0

A make script tente de définir une variable comme suit:Convertir un hexagone en décimal dans le script make?

VER_DEC=$(perl -e "print hex(\"$(VER_HEX)\");") 

VER_HEX arrive d'avoir une valeur de 0a.

Perl semble penser que VER_HEX est égal à zéro, ce qui implique que la variable est pas définie (mais il est , selon un écho de débogage dans le makefile).

Est-ce que faire un moyen plus simple de convertir des bases?

Si oui, quelle version de make est nécessaire?

MISE À JOUR: Ceci est un fichier Makefile GNU. L'appel de perl ne contient pas le mot shell à l'intérieur du $() et peut avoir des problèmes d'échappement avec les guillemets.

Répondre

2
VER_DEC=$(shell printf "%d" 0x$(VER_HEX)) 

si vous parlez Makefile. Parce que votre ne ressemble pas Makefile à moi, plus comme shell. (Je pense que $(shell) est l'extension GNU, mais la plupart du temps, vous pouvez le remplacer en toute sécurité par des guillemets).