2010-11-10 3 views
0

Disons que nous avons un package nommé CYGPKG_FOO, qui a une option cdl "CYGPKG_FOO_FEATURE_A_ENABLE". Je souhaite qu'un indicateur gcc spécifique (par exemple "-DFEATURE_A = 1") soit ajouté aux CFLAGS de ce package lorsque cette option cdl a été activée.Peut-on ajouter un CFLAG spécifique à un paquet eCos lorsqu'une option cdl a été activée?

Mais "Le Guide de concepteur de composants eCos" a déclaré:

http://ecos.sourceware.org/docs-3.0/cdl-guide/build.make.html#BUILD.FLAGS

À partir du lien ci-dessus, il semble que nous ne pouvons pas ajouter/supprimer CFLAGS basé sur les sélections de cdl_option ...

Ma question est la suivante: puis-je faire ce qui est décrit au premier paragraphe, et si oui, comment?

Merci!

Répondre

0

-DFEATURE_A=1 est exactement le même que d'écrire #define FEATURE_A 1 dans un fichier source ou d'en-tête.

Lorsque CYGPKG_FOO_FEATURE_A_ENABLE est défini, certains symboles de préprocesseur sont définis dans les fichiers d'inclusion générés automatiquement. Consultez le répertoire install/include/pkgconf/ après avoir exécuté ecosconfig. Vous pouvez ajouter d'autres lignes define à votre CDL pour que d'autres symboles soient définis, si les valeurs par défaut ne vous conviennent pas.

Si vous souhaitez contrôler avec précision les valeurs prises par ces symboles, vous pouvez le faire avec un autre cdl_option, éventuellement avec une directive legal_values ou une directive calculated; Si ce n'est pas le cas, vous pouvez ajouter des définitions appropriées dans un fichier d'en-tête à l'intérieur de votre paquet qui activent la présence ou l'absence d'un symbole de préprocesseur.

Questions connexes