OVH Cloud OVH Cloud

Boost.Build vs make

22 réponses
Avatar
Alain Gaillard
Bonjour à tous,

Je commence à m'intéresser à Boost. Mieux vaut tard que jamais :-)
Du coup je découvre aussi Boost.build.
Alors, en espérant ne pas être trop hors sujet et en espérant ne pas
lancer un troll non plus, je voudrais savoir si tous les expérimentés de
la construction de projets C++ que vous êtes, pensez que Boost.build est
une bonne alternative à make ou bien est-ce que vous préférez restez
avec ce bon vieux make ?

--
Alain

10 réponses

1 2 3
Avatar
kanze
Alain Gaillard wrote:

Je commence à m'intéresser à Boost. Mieux vaut tard que jamais :-)
Du coup je découvre aussi Boost.build.
Alors, en espérant ne pas être trop hors sujet et en espérant ne pas
lancer un troll non plus, je voudrais savoir si tous les expérimentés de
la construction de projets C++ que vous êtes, pensez que Boost.build est
une bonne alternative à make ou bien est-ce que vous préférez restez
avec ce bon vieux make ?


Jusqu'ici, je n'ai pas réelement évalué le système de build de
Boost, pour pouvoir le comparer à d'autres systèmes. (Je sais
que je n'aime pas du tout la façon que Boost gère les
dépendances, avec des #ifdef partout.) Je me sers de make, mais
pas de « ce bon vieux make » ; mes fichiers de make sont pour
GNU make, et ceux que j'utilise actuellement chez moi exige la
version 3.81 (la dernière, en somme).

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
Alain Gaillard

Merci pour ta réponse,

Jusqu'ici, je n'ai pas réelement évalué le système de build de
Boost, pour pouvoir le comparer à d'autres systèmes. (Je sais
que je n'aime pas du tout la façon que Boost gère les
dépendances, avec des #ifdef partout.)


Regardant la doc et quelques exemples, je dois dire que pour l'instant
je partage ton avis.
Je trouve à Boost.build comme un côté usine à gaz. C'est pour ne pas
rester sur une impression peut être fausse que je demandes des avis

Je me sers de make, mais
pas de « ce bon vieux make » ; mes fichiers de make sont pour
GNU make, et ceux que j'utilise actuellement chez moi exige la
version 3.81 (la dernière, en somme).


J'avais compris :-)
"Bon vieux make" c'est une expression pour dire que l'outil make a fait
ses preuves depuis longtemps. Je ne doute pas que tu utilises une
version récente :-)


--
Alain

Avatar
Jean-Marc Bourguet
Alain Gaillard writes:

Je trouve à Boost.build comme un côté usine à gaz. C'est pour ne pas
rester sur une impression peut être fausse que je demandes des avis


Est-ce que quelqu'un a déjà vu un système de build ne ressemblant pas à une
usine à gaz?

J'utilise make aussi, mais ni chez moi ni au boulot on ne peut dire que ce
soit simple. L'utilisation est simple, oui, du moins quand on reste dans
ce qui a été prévu mais le système lui-même...

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
loufoque
Bonjour à tous,

Je commence à m'intéresser à Boost. Mieux vaut tard que jamais :-)
Du coup je découvre aussi Boost.build.
Alors, en espérant ne pas être trop hors sujet et en espérant ne pas
lancer un troll non plus, je voudrais savoir si tous les expérimentés de
la construction de projets C++ que vous êtes, pensez que Boost.build est
une bonne alternative à make ou bien est-ce que vous préférez restez
avec ce bon vieux make ?


Je suis pas fan perso, c'est assez lourd comme truc.
En ce moment j'expérimente scons.

Avatar
Alain Gaillard

Je suis pas fan perso, c'est assez lourd comme truc.
En ce moment j'expérimente scons.


Je ne connais pas scons non plus. Je vais regarder. Merci à toi et
Christophe pour l'info :)

--
Alain

Avatar
Alain Gaillard

Je suis pas fan perso, c'est assez lourd comme truc.
En ce moment j'expérimente scons.


Je ne connais pas scons non plus. Je vais regarder. Merci à toi et
Christophe pour l'info :)

--
Alain

Avatar
kanze
Alain Gaillard wrote:

Merci pour ta réponse,

Jusqu'ici, je n'ai pas réelement évalué le système de build de
Boost, pour pouvoir le comparer à d'autres systèmes. (Je sais
que je n'aime pas du tout la façon que Boost gère les
dépendances, avec des #ifdef partout.)


Regardant la doc et quelques exemples, je dois dire que pour
l'instant je partage ton avis. Je trouve à Boost.build comme
un côté usine à gaz. C'est pour ne pas rester sur une
impression peut être fausse que je demandes des avis


L'usine à gaz, c'est dans Boost même, je crois. Je n'ai pas
régardé leur système de build assez pour dire s'il offre
d'autres possibilités. C'est même probable que si, mais étant
donné que j'étais déjà bien lancé dans ma solution à base de
make quand je l'ai rencontré, je n'ai pas pris la peine de
régarder de plus près.

Je me sers de make, mais
pas de « ce bon vieux make » ; mes fichiers de make sont pour
GNU make, et ceux que j'utilise actuellement chez moi exige la
version 3.81 (la dernière, en somme).


J'avais compris :-)
"Bon vieux make" c'est une expression pour dire que l'outil make a fait
ses preuves depuis longtemps. Je ne doute pas que tu utilises une
version récente :-)


Ce que je voulais dire, c'est que mon utilisation ne ressemble
pas particulièrement à des utilisations classiques, de ce qu'on
entend souvent par « make ». GNU make a un langage
fonctionnel integré, et depuis 3.81, une fonction qui permet à
traiter les chaînes renvoyées par des fonctions comme s'il
faisait parties du fichier de make. Le résultat, c'est que mes
fichiers make ressemble à « ce bon vieux make » comme mon code
C++ ressemble à ce bon vieux C:-).

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Alain Gaillard


L'usine à gaz, c'est dans Boost même, je crois.


Oui... je suis en train de chercher comment faire pour donner des
options de compilations différentes dans un même projet et pour
l'instant je n'ai pas compris comment on fait.


faisait parties du fichier de make. Le résultat, c'est que mes
fichiers make ressemble à « ce bon vieux make » comme mon code
C++ ressemble à ce bon vieux C:-).


LOL
Mais ça veut dire aussi que la valeur ajoutée de BoostBuild n'ets pas
très claire. Pour moi en tout cas.



--
Alain

Avatar
kanze
Alain Gaillard wrote:

[...]
L'utilisation est simple, oui, du moins quand on reste dans
ce qui a été prévu


La construction de petit projets ça semble aller. Maisdéjà un gros
porjet comme lalibrairie bosst c'est moins évident. J'ai eu du mal a
compiler (avec la v2) la librairie.

mais le système lui-même...


Justement, il est prévu pour être extensible... et là... Quand
on lit la doc c'est assez nébuleux je trouve


C'est à mon avis un point fort de GNU make. La documentation est
nettement mieux que ce que j'ai trouvé pour les alternatives.

La côté négative, au moins en ce qui me concerne, c'est que
c'est un langage fonctionnelle, ce dont je n'ai absoluement pas
l'habitude. (Qu'est-ce que j'en étais fier quand j'ai réussi à
faire marcher ma première boucle :

multiPatSubst = $(if $(1),$(patsubst $(firstword $(1)),$(2),$(call
multiPatSubst,$(wordlist 2,1000,$(1)),$(2),$(3))),$(3))

Quelque chose qui pour moi est trivial en C++, mais il m'a fallu
un certain temps pour le faire marcher en make.)

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Alain Gaillard


La côté négative, au moins en ce qui me concerne, c'est que
c'est un langage fonctionnelle, ce dont je n'ai absoluement pas
l'habitude.


Moi j'aime bien les langages fonctionnels.

(Qu'est-ce que j'en étais fier quand j'ai réussi à
faire marcher ma première boucle :


LOL.
Ca me rappelle comme j'étais fier quand j'ai écrit mes premières lignes
de Haskell ;)



multiPatSubst = $(if $(1),$(patsubst $(firstword $(1)),$(2),$(call
multiPatSubst,$(wordlist 2,1000,$(1)),$(2),$(3))),$(3))


Heu oui, bon, on dirait qu'on a là une fonction récursive. Mais ce qu'on
ne dirait pas c'est que la syntaxe soit très élégante non plus.



--
Alain

1 2 3