regles pour GNU make 4.4.1 compilant un meme fichier C++ de plusieurs facons
Bonjour la liste
(j'ignore s'il est licite d'utiliser des caractères non-ASCII dans le sujet: je m'en suis abstenu pour è, ê et ç, il faut y lire: "règles", "même", et "façons")
Dans github.com/RefPerSys/RefPerSys/ (un moteur d'inférences sous licence GPL/CeCILL) le code source est
majoritairement en C++23 (et compilé par GCC15 ou GCC16). Une petite partie (que je souhaite croissante) est générée par ce même logiciel.
je fais référence au commit e01f0e64c402 et donc au GNUmakefile de https://github.com/RefPerSys/RefPerSys/commit/e01f0e64c402f97ff0d84bbcf269bf353cf7ba89
Les fichiers C++ que j'y ai écrits sont nommés [a-z]*_rps.cc par exemple agenda_rps.cc et objects_rps.cc (et il y en a trentaine d'autres, dont l'optionnel )
Les fichiers C++ générés par ce logiciel sont (pour la plupart) sous generated/ par exemple generated/rps-names.hh
Ces fichiers doivent chacun être compilés de plusieurs façons. Selon qu'ils utilisent (ou non) une bibliothèque graphique (fltk.org)
Ainsi:
agenda_rps.raw.o doit être compilé depuis agenda_rps.cc avec (en plus d'autres) les drapeaux -DRPS_WITH_FLTK=0 et -DRPS_IS_RAW=1
tandis que
agenda_rps.o doit être compilé depuis agenda_rps.cc sans ces drapeaux pour le préprocesseur.
Bien évidemment le fichier d'entête commun refpersys.hh contient #if RPS_WITH_FLTK ....
Je n'arrive pas à coder mon GNUmakefile (autour des lignes 180-200) pour ce faire.
Quelqu'un a-t-il un exemple de tel GNUmakefile
NB. Je voudrais éviter GNU autoconf ou cmake car je les maîtrise mal. Et le logiciel de configuration est tools/do-configure-refpersys.c codé en C.
Librement
--
Basile STARYNKEVITCH <basile@starynkevitch.net>
8 rue de la Faïencerie http://starynkevitch.net/Basile/
92340 Bourg-la-Reine https://github.com/bstarynk
France https://github.com/RefPerSys/RefPerSys
Reply to: