2010-08-24 13 views
0

J'utilise m4 pour un petit prétraitement de texte ici, et il se comporte d'une manière que je ne comprends pas.m4 n'obéit pas à l'expansion?

Ceci est la partie en question:

ifdef(`TEST', 
    define(`O_EXT', `.obj'), 
    define(`O_EXT', `.o')) 

Cette macro toujours être étendu à .o, indépendamment du fait que TEST est défini (m4 -DTEST) ou non.

Qu'est-ce que je fais mal?

Répondre

0

Vous ne citez pas les autres arguments à ifdef. Essayez ceci:

ifdef(`TEST', `define(`O_EXT', `.obj')', `define(`O_EXT', `.o')')