En introduisant la version 2.0 de la librairie en ligne de commande, nous avons modifié nos scripts de compilation et réalisé que nous n'avions jamais expliqué comment compiler la librairie en ligne de commande.
L'API en ligne de commande est en réalité une série d'applications écrites en C++ qui utilisent notre bibliothèque C++. Le répertoire "Source" contient les sources des utilitaires. Dans le sous-répertoire "cpplib" est incluse notre notre librairie de programmation C++. Pour compiler un utilitaire, il faut compiler les fichiers sources correspondants, quelques fichiers communs ainsi que la bibliothèque de programmation C++. Il faut également définir la macro CMD_xxx (où xxx correspond au nom de l'utilitaire) lors de la compilation pour que le préprocesseur C utilise la bonne version du code.
Concrètement, pour compiler l'utilitaire YAltitude.exe, il faut compiler:
- Le fichier YAltitude.cpp du répertoire "Source".
- Les fichiers cmdline_linker.cpp et cmdline_common.cpp du répertoire "Source".
- Tous les fichiers C++ du répertoire "Source/cpplib".
- Tous les fichiers C du répertoire "Source/cpplib/yapi".
- Tous les fichiers C du répertoire "Source/cpplib/yapi/mbedtls/library".
Il faut s'assurer que les répertoires suivants fassent partie de l'include path:
- Le répertoire "Source/cpplib".
- Le répertoire "Source/cpplib/yapi".
- Le répertoire "Source/cpplib/yapi/mbedtls/include".
Lors de la compilation, il faut utiliser l'option -D CMD_YAltitude (ou /D CMD_YAltitude) pour que le compilateur définisse la macro "CMD_YAltitude".
GNU Makefile
Comme vous le constatez, la compilation est fastidieuse, et pour cette raison, nous avons un Makefile GNU qui gère la compilation de tous les utilitaires et pour toutes les plateformes.
Pour compiler la bibliothèque, il suffit d'aller dans le répertoire "Binaries" et de taper make. Le Makefile va compiler tous les utilitaires pour l'OS courant. Si vous n'avez besoin que d'un utilitaire en particulier, vous pouvez spécifier la cible comme ceci:
Cygwin
Pour la compilation sous Windows, nous avons décidé d'utiliser également le GNU Makefile, bien que ce dernier soit initialement un utilitaire Linux. Cela nous permet de simplifier nos scripts de build et de contrôler finement les options de compilation. L'inconvénient de cette solution est qu'il faut installer GNU Make sous Windows.
Pour installer GNU Make, plusieurs solutions existent, mais les deux plus répandues sont Cygwin et GnuWin32. Les deux solutions fonctionnent, le choix dépend de vos préférences.
Conclusion
La librairie en ligne de commande est disponible sur notre site web (et sur notre dépôt APT). Tous les fichiers d'archive contiennent les utilitaires déjà compilés et prêts à l'usage. Vous ne devriez donc pas avoir besoin de les recompiler, mais si vous désirez les porter sur une autre plateforme ou modifier le code source, vous savez désormais comment compiler cette bibliothèque.