[Kos-cvs] [kos] Modification CVS par d2

KOS CVS kos at kos.enix.org
Thu Oct 9 20:07:45 CEST 2003


Module :	kos
Modifié par :	d2	09/10/03 19:07:45

Fichiers modifiés :
	.              : MkRules 
	modules        : Makefile MkRules 
	modules/karm   : Makefile 
Fichiers ajoutés :
	modules/karm   : gen_interface-desc.sh get_intf_id.sh 
Fichiers enlevés :
	utils          : generate_iface.sh 

Détails :
Generation a la demande des .h a partir des .xml. Il faut un gcc qui
supporte l'option -MG : le but c'est de generer le fichier de
dependances (.machin.d) meme quand des includes sont manquantes. Si ce
n'est pas le cas, faire un revert du present patch.

Principe. Quand on rencontre une dependance du type
karm/interface/%.h, le MkRules de modules/ demande au Makefile de
modules/karm de generer interface/%.h dans modules/karm.

Et le Makefile de karm contient la regle qui va bien. La difficulte
est d'affecter les identifiants d'interface. Pour ca, on fait appel au
script get_intf_id.sh qui gere un dico de correspondance 'identifiant
<-> "nom_interface"' (fichier interfaces.lst) comme ca on est sur que
ca reste tjs le meme identifiant. En effet, sinon les dependances
makefile peuvent faire qu'on appelle cette regle 2+ fois pour un meme
fichier. Un simple compteur global ici ne cnviendrait donc pas, on
risquerait d'avoir des sources compiles avec des valeurs differentes
pour l'INTERFACE_ID contenu dans le header genere, puisque celui ci
peut etre genere plusieurs fois.

Pour generer le interface-desc.c, on utilise le script
gen_interface-desc.sh de karm/, derive de celui qui etait dans utils.

Pour resumer, je trouve ca merdique, c'etait mieux avant ;) Je pense
qu'il serait preferable de centraliser toutes les interfaces dans le
MkVars par exemple, ou de forcer la generation de tout (.h et .c) au
tout debut du Makefile de modules. Parce que le "generation des .h a
la demande", c'est batard comme truc, dans la mesure ou on a besoin de
connaitre la liste complete de toutes les interfaces pour generer le
interface-desc.c . Bref, c'etait pour voir, et y'a tjs moyen de
revenir en arriere.



More information about the Kos-cvs mailing list