Salut,
J'avais une question d'ordre pratique, alors allons y gaiement :
Je réalise une application qui a un module nommé db.c. Ce module est appelé par beaucoup d'autres modules de l'application, donc db.h est inclu dans de nombreux autres fichiers.
Cependant, db.c est un module qui doit réaliser des échanges entre le logiciel est une base de données. Or j'ai voulu qu'il soit compatible aussi bien avec Oracle qu'avec MySQL.
Comme vous vous en doutez, les fonctions appelées ne sont pas les mêmes, et les librairies dynamiques non plus.
Voulant éviter à mon utilisateur d'être obligé d'avoir toutes les librairies dynamiques Oracle + MySQL, j'ai décidé de compiler deux versions distinctes de mon programme.
C'est là que je coince, car j'aimerais automatiser cela le plus possible. Comment faire pour qu'avec uniquement une seule variable de changée dans mon makefile, je fasse passer sa valeur à une variable du préprocesseur pour que le compilateur ne compile que la partie du code dédiée à Oracle (ou MySQL, c'est selon) ?
Vous auriez sinon une autre solution ? Variable d'environnement ?
Merci pour vos réponses
Partager