Je viens de googliser pendant pas mal de temps pour essayer de
trouver une solution à un problème qui pourtant est assez trivial,
mais je dois m'y prendre comme un manche.
Considérons un projet (avec des vrais morceaux de automake
dedans). Le Makefile.am commence par :
La compilation se passe admirablement bien lorsqu'elle est lancée
par un make tout court. Avec un make -j2, je n'ai jamais relevé de
problème. Par contre, j'ai un utilisateur ce matin qui a eu l'idée
de lancer la compilation avec un make -j8 et là, catastrophe. Je
m'explique : le répertoire src requière des bibliothèques compilées
dans tools, lapack et un utilitaire de rpliconv.
Je cherche donc à bloquer la compilation de src jusqu'à ce que
toutes les cibles précédentes soient achevées. J'ai bien trouvé une
cible .NOPARALLEL, mais ça me semble une usine-à-gaz à utiliser pour
l'utilisation que je vais en faire. La doc de make ne m'avance pas
beaucoup, pourtant, ça doit être un problème connu. Je ne dois juste
pas chercher au bon endroit.
Une idée ?
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JKB
Le 11-02-2010, ? propos de make -j [problème de makefile], JKB ?crivait dans fr.comp.os.unix :
Bonjour à tous,
Je viens de googliser pendant pas mal de temps pour essayer de trouver une solution à un problème qui pourtant est assez trivial, mais je dois m'y prendre comme un manche.
Considérons un projet (avec des vrais morceaux de automake dedans). Le Makefile.am commence par :
La compilation se passe admirablement bien lorsqu'elle est lancée par un make tout court. Avec un make -j2, je n'ai jamais relevé de problème. Par contre, j'ai un utilisateur ce matin qui a eu l'idée de lancer la compilation avec un make -j8 et là, catastrophe. Je m'explique : le répertoire src requière des bibliothèques compilées dans tools, lapack et un utilitaire de rpliconv.
Je cherche donc à bloquer la compilation de src jusqu'à ce que toutes les cibles précédentes soient achevées. J'ai bien trouvé une cible .NOPARALLEL, mais ça me semble une usine-à-gaz à utiliser pour l'utilisation que je vais en faire. La doc de make ne m'avance pas beaucoup, pourtant, ça doit être un problème connu. Je ne dois juste pas chercher au bon endroit.
Bon, je me réponds à moi-même parce que je crois avoir trouvé quelque chose d'assez élégant et qui pourra intéresser :
ST_SUBDIRS = vim examples lapack rpliconv tools SUBDIRS = src scripts man doc rpltags EXTRA_DIST = LIMITATIONS Licence_CeCILL_V2-fr.txt Licence_CeCILL_V2-en.txt
include_HEADERS = rplconfig.h
licences: cp -f $(top_builddir)/COPYING $(srcdir) make -C src $@
toolsclean: for i in @NCURSES@ @READLINE@ @UNITS@ @GSL@ @GPP@ @GNUPLOT_COMPILATION@ @FILE@ @ICONV@; do rm -rf $(srcdir)/tools/$$i; done;
J'ai donc remonté les dépendances à la racine pour ne compiler le contenu du répertoire src que lorsque tout les outils sont déjà disponibles.
Ne restent que deux ou trois choses à mettre au point...
Cordialement,
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
Le 11-02-2010, ? propos de
make -j [problème de makefile],
JKB ?crivait dans fr.comp.os.unix :
Bonjour à tous,
Je viens de googliser pendant pas mal de temps pour essayer de
trouver une solution à un problème qui pourtant est assez trivial,
mais je dois m'y prendre comme un manche.
Considérons un projet (avec des vrais morceaux de automake
dedans). Le Makefile.am commence par :
La compilation se passe admirablement bien lorsqu'elle est lancée
par un make tout court. Avec un make -j2, je n'ai jamais relevé de
problème. Par contre, j'ai un utilisateur ce matin qui a eu l'idée
de lancer la compilation avec un make -j8 et là, catastrophe. Je
m'explique : le répertoire src requière des bibliothèques compilées
dans tools, lapack et un utilitaire de rpliconv.
Je cherche donc à bloquer la compilation de src jusqu'à ce que
toutes les cibles précédentes soient achevées. J'ai bien trouvé une
cible .NOPARALLEL, mais ça me semble une usine-à-gaz à utiliser pour
l'utilisation que je vais en faire. La doc de make ne m'avance pas
beaucoup, pourtant, ça doit être un problème connu. Je ne dois juste
pas chercher au bon endroit.
Bon, je me réponds à moi-même parce que je crois avoir trouvé
quelque chose d'assez élégant et qui pourra intéresser :
ST_SUBDIRS = vim examples lapack rpliconv tools
SUBDIRS = src scripts man doc rpltags
EXTRA_DIST = LIMITATIONS Licence_CeCILL_V2-fr.txt
Licence_CeCILL_V2-en.txt
include_HEADERS = rplconfig.h
licences:
cp -f $(top_builddir)/COPYING $(srcdir)
make -C src $@
toolsclean:
for i in @NCURSES@ @READLINE@ @UNITS@ @GSL@ @GPP@ @GNUPLOT_COMPILATION@
@FILE@ @ICONV@;
do
rm -rf $(srcdir)/tools/$$i;
done;
J'ai donc remonté les dépendances à la racine pour ne compiler le
contenu du répertoire src que lorsque tout les outils sont déjà
disponibles.
Ne restent que deux ou trois choses à mettre au point...
Cordialement,
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Le 11-02-2010, ? propos de make -j [problème de makefile], JKB ?crivait dans fr.comp.os.unix :
Bonjour à tous,
Je viens de googliser pendant pas mal de temps pour essayer de trouver une solution à un problème qui pourtant est assez trivial, mais je dois m'y prendre comme un manche.
Considérons un projet (avec des vrais morceaux de automake dedans). Le Makefile.am commence par :
La compilation se passe admirablement bien lorsqu'elle est lancée par un make tout court. Avec un make -j2, je n'ai jamais relevé de problème. Par contre, j'ai un utilisateur ce matin qui a eu l'idée de lancer la compilation avec un make -j8 et là, catastrophe. Je m'explique : le répertoire src requière des bibliothèques compilées dans tools, lapack et un utilitaire de rpliconv.
Je cherche donc à bloquer la compilation de src jusqu'à ce que toutes les cibles précédentes soient achevées. J'ai bien trouvé une cible .NOPARALLEL, mais ça me semble une usine-à-gaz à utiliser pour l'utilisation que je vais en faire. La doc de make ne m'avance pas beaucoup, pourtant, ça doit être un problème connu. Je ne dois juste pas chercher au bon endroit.
Bon, je me réponds à moi-même parce que je crois avoir trouvé quelque chose d'assez élégant et qui pourra intéresser :
ST_SUBDIRS = vim examples lapack rpliconv tools SUBDIRS = src scripts man doc rpltags EXTRA_DIST = LIMITATIONS Licence_CeCILL_V2-fr.txt Licence_CeCILL_V2-en.txt
include_HEADERS = rplconfig.h
licences: cp -f $(top_builddir)/COPYING $(srcdir) make -C src $@
toolsclean: for i in @NCURSES@ @READLINE@ @UNITS@ @GSL@ @GPP@ @GNUPLOT_COMPILATION@ @FILE@ @ICONV@; do rm -rf $(srcdir)/tools/$$i; done;
J'ai donc remonté les dépendances à la racine pour ne compiler le contenu du répertoire src que lorsque tout les outils sont déjà disponibles.
Ne restent que deux ou trois choses à mettre au point...
Cordialement,
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
Emmanuel Florac
Le Thu, 11 Feb 2010 11:43:43 +0000, JKB a écrit:
J'ai donc remonté les dépendances à la racine pour ne compiler le contenu du répertoire src que lorsque tout les outils sont déjà disponibles.
Ça paraît une méthode correcte :)
-- Si non confectus non reficiat.
Le Thu, 11 Feb 2010 11:43:43 +0000, JKB a écrit:
J'ai donc remonté les dépendances à la racine pour ne compiler le
contenu du répertoire src que lorsque tout les outils sont déjà
disponibles.