Mephisto Posté(e) le 16 janvier 2007 Partager Posté(e) le 16 janvier 2007 Bonjour une nouvelle question pour vous: je cherche a rendre un programme compatible sur plusieurs achi, mais j'ai besoin de rajouter des conditions dans mes define, pour quils ne sapliquent qu'a certaines archis.. bref, voila en gros tous les define sur la compatibilite: #ifndef _COMPA_H_ # define _COMPA_H_ /* BSD */ #include <sys/ttycom.h> /* SunOS #include <stropts.h> #include <sys/types.h> #define TIOCGETA TCGETA #define TIOCSETA TCSETA #define termios termio */ /* Alpha #include <stropts.h> #include <sys/types.h> */ /* Linux #define TIOCGETA TCGETA #define TIOCSETA TCSETA #define termios termio */ #endif comme vous le voyez, a present, pour la compatibilite, je m'amuse a decommenter la partie du code correspondant a l'archi sur laquelle je me trouve, mais n'y a-t-il pas plus simple ? par exemple des define propres a l'archi qui me permettraient un #ifndef / #idefdef [lecode] #endif, ... ??? ou quoi que ce soit d'autre ? merci pour votre aide ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 17 janvier 2007 Partager Posté(e) le 17 janvier 2007 tu peux passer l'option -D à gcc pour définir une macro. gcc -D_ALPHA_ par exemple collera un #define _ALPHA_ 1 dans ton code. C'est comme ça qu'on fait pour gérer plusieurs architectures. plusieurs choix s'offre à toi : soit tu fait un makefile par archi (et tu appelles make -f makefile.alpha par exemple), soit tu fais un configure pour générer le makefile en fonction de l'archi. Dans ce cas autant se pencher sur les autotools qui gère ça tous seuls Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 23 janvier 2007 Auteur Partager Posté(e) le 23 janvier 2007 mwe, mais j'ai fait autrement finalement, j'ai trouve beaucoup plus simple de tete, ca donne: #ifndef _COMPA_H_ # define _COMPA_H_ #include <curses.h> #include <sys/types.h> #ifndef TIOCGETA # include <stropts.h> # define TIOCGETA TCGETS # define TIOCSETA TCSETS #endif #endif bah we, en fait, pas la peine de jouer avec termios/termio pour la compatibilite, je me compliquais la vie pour rien. enfin, le strops est assez moche (a la lecture, il a l'air d'appeler plein d'autres .h systeme, ..., c'est tout un bazard), si ca continue, je vais militer pour un recode complet, propre et optimise de la libC merci pour ton aide en tout cas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.