2010-01-04 4 views
4

J'ai un Makefile pour Nmake contenant une liste de fichiers dans une macro:Enchaînement des foldername et des noms de fichiers dans nmake

MYSRCFILES1=myfolder\file1.svg myfolder\file2.svg ... myfolder\file99.svg 

et une seconde comme ceci:

MYSRCFILES2=myfolder2\file1.svg myfolder2\file2.svg ... myfolder2\file99.svg 

Ce que je suis essayer est d'éviter la duplication de la liste des fichiers, et d'éviter la duplication des noms de dossiers, quelque chose comme ceci:

MYSRCFILES0=file1.svg file2.svg file3.svg 

MYSRCFILES1="prepend 'myfolder\' to each element of $(MYSRCFILES0)" 

MYSRCFILES2="prepend 'myfolder2\' to each element of $(MYSRCFILES0)" 

Je me suis creusé la documentation de Nmake Je n'ai pas encore trouvé de solution. Une idée de comment accomplir cela?

Répondre

5

enfin trouvé une solution pour mon problème, ce n'est pas parfait, car je dois ajouter un .\ à chaque fichier, mais qui semble être ok dans mon cas:

MYSRCFILES0=.\file1.svg .\file2.svg .\file3.svg ... 

MYSRCFILES1=$(MYSRCFILES0:.\=myfolder\) 

MYSRCFILES2=$(MYSRCFILES0:.\=myfolder2\) 

le tour est joué.

-1

Est-ce que Nmake simillar est à fabriquer? Vous pouvez utiliser la fonction patsubst ("pattern substitut string") comme ceci:

MYSRCFILES0=.\file1.svg .\file2.svg .\file3.svg ... 
MYSRCFILES1=$(patsubst %,myFolder/%,MYSRCFILES0) 
MYSRCFILES2=$(patsubst %,myFolder2/%,MYSRCFILES0) 
+0

Non, cela ne fonctionnera pas dans Nmake. Ma propre solution fait la même chose, mais dans la syntaxe NMake. Si on utilise un make Unix (ou est ce GNU-make spécifique?), Alors peut-être que ta solution sera appropriée, mais ce n'était pas ce que je cherchais. –