Existe-t-il un outil pour générer des makefiles et résoudre les dépendances?

J’ai un grand arbre source et quelque part à l’intérieur, j’ai un fichier avec une fonction principale et je veux générer un fichier makefile sans résoudre toutes les dépendances (répertoires d’inclusion et fichiers c nécessaires) manuellement. Ainsi, l’outil aurait besoin d’effectuer une recherche à partir du dossier principal et d’aller de haut en bas dans l’arborescence de fichiers pour rechercher les fichiers inclus qui sont “les plus proches” du fichier principal.

Il y a l’outil gratuit HWUT, un outil de test unitaire qui fait le travail! HWUT chez Sourceforge

HWUT s’efforce de faciliter la configuration des tests unitaires. Vous pouvez installer ‘ctags’ (hwut l’utilisera automatiquement). Sinon, HWUT parsing le code en utilisant la sortie du fichier object du compilateur (qui est notoirement lente).

Une fois, vous avez installé hwut vous appelez simplement avec

> hwut sos your.c --root some/root/dir another/root/dir --args -DMyComstackrArg -DAnother Arg -- 

Il commencera à rechercher les fichiers d’inclusion, les fichiers source, les fichiers object et les bibliothèques dans “some / root / dir” et “another / root / dir”. À partir du fichier “your.c”, il recherchera toutes les références requirejses et tous les en-têtes et générera un fichier Makefile bien formaté. Si le projet est toujours trop volumineux, vous pouvez spécifier des ensembles de répertoires racine pour rechercher les sources, les inclus et les bibliothèques séparément.

  • –root-sources … pour les répertoires racine dans lesquels rechercher des sources
  • –root-includes … à partir duquel rechercher les en-têtes
  • –root-libraries … où chercher dans les bibliothèques
  • –root-objects … où rechercher des objects

BTW: Il existe un mode ‘sols’ (safe our laze souls) qui génère directement des fichiers de test pour toutes les fonctions d’un module, c’est-à-dire

hwut sols “module-to-test.c”

générera non seulement un Makefile mais également une batterie de fichiers de test servant de sharepoint départ à la rédaction de tests.

Cmake fera en partie ce que vous demandez. Vous pouvez toujours commencer avec un modèle de projet solide.

Je vous suggère de regarder c-template .

http://c-template.readthedocs.org/en/latest/

https://github.com/redjack/c-template

Notez que si vous avez déjà une ligne de compilation gcc avec les chemins d’inclusion appropriés, vous pouvez laisser le compilateur générer automatiquement une liste de dépendances pour les fichiers .h inclus. Voir l’ option -MM .