Bonjour,

J'ai dans mon projet des makefile 'generique' repondant au besoin de développement multiplateforme (x86, ARM, ...), grâce à l'inclusion d'un autre fichier contenant les règles spécifiques à l'architecture.
On gère également l'installation et le nettoyage (du build seulement).

Pour gérer au niveau projet la construction des applicatifs, on a crée un Makefile "maitre" dans lequel on consigne la cible et les options de compilations plus orientées 'application' : activation de traces, noms des interfaces réseau à utiliser (typiquement : EXTRA_CFLAGS, DESTDIR, DEBUG=Y,...).
Le but étant de regrouper les configurations les plus fréquences et d'éviter d'avoir à retaper toute la ligne de commande.

Seulement ça a quelques désavantages :
  • il faut créer un groupe pour chaque architecture gérée : clean-ppc, build-debug-ppc, build-rls-ppc,etc...
  • en phase de mise au point on doit régulièrement éditer ce fichier pour ajouter dans EXTRA_CFLAGS l'activation des traces ou pas....
  • on a pas toute la liste des symboles sous les yeux !


Ou pourrait améliorer un peu l'édition de la conf en listant en amont du fichier les différentes options, quelque chose dans le genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
# Choisissez l'architecture
#ARCH=x86
#ARCH=ppc
#ARCH=ARM
 
# Option C
#EXTRA_CFLAGS+=TRACE_COMPOSANT1
#EXTRA_CFLAGS+=TRACE_COMPOSANT2
# Le nom de la carte
#EXTRA_CFLAGS+="-DCARD=eth0"
#EXTRA_CFLAGS+="-DCARD=eth1"
Par le biais des commentaires on aurait toutes les possibilités listées et une config. On pourrait aussi stocker ces informations dans un autre fichier inclus, de sorte à disposer de plusieurs configs utilisables simplement via l'utilisation d'un lien symbolique ( config -> configx86-debug ). Ca éviterait également les conflits lors d'une synchronisation des sources avec un dépôt.
On pourrait améliorer les choses en prévenant les erreurs comme par exemple la sélection de plusieurs architectures par un contrôle en fin de fichier.
Encore que je me demande comment recompiler automatiquement lorsque je change la conf ?

J'ai bien lu quelques tutoriels des autoconfs, mais ça sent l'usine à gaz et j'ai l'impression que le but est vraiment de construire le makefile, alors que je veux juste une conf. et puis c'est un peu trop tard, j'aurai du proposer d'utiliser cmake/qmake au moment de la migration du projet.
Je lorgne pas mal sur les possibilités du kbuild de linux : GUI , formalisation des options possibles, définition d'une configuration par défaut, sauvegarde et restauration de configuration. Mais je n'ai pas trouvé d'application du kbuild en dehors de linux et de gros projets comme buildroot. Du coup j'ai quelques doutes.
Et puis c'est tout ce que j'ai trouvé comme possibilité

Avez-vous des idées ?
De mon côté je vais essayer d'avancer avec kbuild.