[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: