J'aimerais pouvoir créer plusieurs versions (i386
et AMD64
) de mon paquetage comportant des dépendances non triviales (gtk, etc.).
Mon script de construction utilise cmake
.
Pour le moment, la commande debuild -i -us -uc -b
ne construit que AMD64
sur ma distribution Ubuntu 64bits et je n’ai installé aucune chaîne d’outils de compilation croisée.
Comment créer des fichiers binaires pour les deux plates-formes?
Le packaging (c'est-à-dire debuild
) n'est pas la partie difficile ici: la construction de l'application l'est.
Il existe de nombreuses façons de construire des binaires i386
sur un système 64 bits.
L'installation d'un via virtualbox est simple.
C’est de loin le plus simple, mais cela demande beaucoup d’espace disque et vous devrez configurer l’ensemble du système.
L'idée est de créer un sandbox i386 minimal dans votre configuration 64 bits.
Vous allez installer toutes les dépendances de compilation de votre outil et de votre application dans le chroot et effectuer la construction à partir de là.
Cette approche est plus légère que celle vm et offre beaucoup d’isolement.
tutoriel Kaizo explique clairement comment le faire
Un chroot prêt à construire une application gtk vala consommera environ 700 millions de dollars sur votre disque dur.
cmake est capable de construire votre application facilement à condition que la chaîne d’outils multilib soit installée.
La chaîne d’outils multilib peut être installée via
Sudo apt-get install g++-multilib
Ensuite, vous devez spécifier les paramètres m32
à cmake afin de pouvoir construire des binaires i386 ce qui est facile .
Bien sûr, vous devrez installer sur votre ordinateur toutes les variantes i386 des dépendances de vos applications.
Si les dieux apt
sont avec vous, vous pouvez le faire avec:
dpkg --add-architecture i386
apt-get update
apt-get install libgtk-3-dev:i386 libgee-0.8-dev:i386 ...
Ceci fait, vous pouvez conditionner vos binaires brillants i386
avec
debuild -ai386 -i -us -uc -b
debuild clean