2009-10-07 5 views

Répondre

2

Cela dépend entièrement de la façon dont votre makefile est écrit. Vous pouvez utiliser conditionals pour éviter l'ajout de fichiers dans certaines conditions sont satisfaites:

ifeq ($(OS),win32) 
SOURCES += foo_win32.cpp 
else 
SOURCES += foo_posix.cpp 
endif 
... 
foo: $(SOURCES) 

Si vous un peu élaboré exactement que vous voulez faire, vous pouvez obtenir une meilleure réponse.

EDIT: Si les fichiers sont déterminés par trouver en cours d'exécution, vous pouvez exclure les fichiers/répertoires de trouver comme ceci:

SOURCES:=$(shell find srcdir -type f | grep -v dirtoexclude) 
+0

Comment seraient-ils filtrés à partir de la commande 'find'? – Geo

+1

La commande find a une syntaxe pour exclure les fichiers, mais elle est plutôt compliquée. Je passe généralement la sortie find via grep dans les cas suivants: "find ... | grep -v somedir". – JesperE

+0

BTW: l'utilisation de find pour déterminer les fichiers sources à compiler est une mauvaise pratique, car tout fichier qui se trouve dans votre arborescence source sera inclus. Vous devriez considérer une liste statique à la place. – JesperE

-3

Bien sûr - ne les spécifiez pas dans votre Makefile.

-1

Vous pouvez créer des cibles distinctes qui sont identiques à l'exception de ce que vous souhaitez exclure.

Questions connexes