OVH Cloud OVH Cloud

problème récurrent avec les Makefile

18 réponses
Avatar
Tux
Bonjour,

J'ai souvent le même problème lorque j'essaye
d'installer des programmes à partir des sources :
lorsque les sources sont réparties dans une arborescence
qui contient des sous-répertoires dans lesquels sont
définis des Makefile spécifiques, make n'arrive pas à
trouver ces sous répertoires.
Un exemple, parceque je sens que je ne suis pas très clair:
le Makefile principal contient la ligne:

SUBDIRS = doc maths (*)

La compilation s'arrête avec:

/bin/sh: line 1: cd: doc: No such file or directory

J'arrive à corriger le problème en changeant doc par ./doc
dans (*), mais c'est pas très pratique quand il y a beaucoup
de sous-répertoires.

Merci d'avance

Yves

8 réponses

1 2
Avatar
Jérémy JUST
On Thu, 18 Dec 2003 00:09:40 +0000
Tux wrote:

lorsque les sources sont réparties dans une arborescence qui contient
des sous-répertoires dans lesquels sont définis des Makefile
spécifiques, make n'arrive pas à trouver ces sous répertoires.


Tu es bien sous Linux?

Que te dit:
$ make -v


--
Jérémy JUST

Avatar
Yves Kuhry
Jérémy JUST wrote:

On Thu, 18 Dec 2003 00:09:40 +0000
Tux wrote:

lorsque les sources sont réparties dans une arborescence qui contient
des sous-répertoires dans lesquels sont définis des Makefile
spécifiques, make n'arrive pas à trouver ces sous répertoires.


Tu es bien sous Linux?

oui, une distribution à propos de laquelle

un certain théorème a été établi.

Que te dit:
$ make -v

GNU Make 3.80



Avatar
Jérémy JUST
On Fri, 19 Dec 2003 06:18:27 -0500
Yves Kuhry wrote:

Tu es bien sous Linux?
oui, une distribution à propos de laquelle un certain théorème a été

établi.


Cool, j'ai la même! Par contre, je n'ai pas encore eu le temps d'y
installer Outlook... D'ailleurs, je n'ai même pas dû installer Wine...

Bon, plus sérieusement, est-ce que tu peux donner un exemple de logiciel
que tu n'arrives pas à compiler, si possible petit (URL d'un *.tar.gz)?
Et, éventuellement, coller un message d'erreur un peu plus long que la
ligne de ton post initial.

Ton problème m'intrigue... Chez moi, quand ça fait ça, c'est juste qu'il
y a une erreur dans le Makefile...

Ah, et quelle version de ta distribution moquée-mais-bien?

--
Jérémy JUST


Avatar
g.patel
On Sun, 21 Dec 2003 05:02:55 +0000, Yves Kuhry
wrote:

Le dernier en date qui m'a fait ça est koctave (frontend graphique
pour octave)

http://bubben.homelinux.net/~matti/koctave/koctave3-0.65.tar.bz2

dont l'installation est classique. La compilation donne ceci :

[ koctave3-0.65]$ make
make all-recursive
make[1]: Entering directory
'/home/kuhry/archives/software/tars/koctave3-0.65'
Making all in koctave3
/bin/sh: line 1: cd: koctave3: No such file or directory


Sur une mandrake cooker (Make 3.80), je ne vois pas ce problème.
La compilation échoue plus tard sur la documentation, mais koctave3
est créé. Par contre les messages de début sont très différents :
[ koctave3-0.65]$ make
cd .
&& CONFIG_FILES= CONFIG_HEADERS=config.h
/bin/sh ./config.status
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing default-1 commands
make all-recursive
make[1]: Entering directory
`/home/gerard/log/download/tti/koctave3-0.65'
Making all in koctave3
make[2]: Entering directory
`/home/gerard/log/download/tti/koctave3-0.65/koctave3'
source='logo.cpp' object='logo.o' libtool=no

Peut-etre le configure s'est mal passé ?

Gérard Patel

Avatar
Yves Kuhry
Jérémy JUST wrote:

Bon, plus sérieusement, est-ce que tu peux donner un exemple de logiciel
que tu n'arrives pas à compiler, si possible petit (URL d'un *.tar.gz)?
Et, éventuellement, coller un message d'erreur un peu plus long que la
ligne de ton post initial.



Le dernier en date qui m'a fait ça est koctave (frontend graphique
pour octave)

http://bubben.homelinux.net/~matti/koctave/koctave3-0.65.tar.bz2

dont l'installation est classique. La compilation donne ceci :

[ koctave3-0.65]$ make
make all-recursive
make[1]: Entering directory
'/home/kuhry/archives/software/tars/koctave3-0.65'
Making all in koctave3
/bin/sh: line 1: cd: koctave3: No such file or directory
make[1]: *** [all-recursive] Erreur 1
make[1]: Leaving directory
`/home/kuhry/archives/software/tars/koctave3-0.65'
make: *** [all] Erreur 2

[ koctave3-0.65]$ ls -d */
admin// autom4te.cache// doc// koctave3// koctave3-api// logos// po//


Ton problème m'intrigue... Chez moi, quand ça fait ça, c'est juste qu'il
y a une erreur dans le Makefile...



C'est possible, mais les trucs générés automatiquement avec
les outils GNU me sont particulièrement imbitables, étant données
mes connaissances assez rudimentaires.

Ah, et quelle version de ta distribution moquée-mais-bien?

9.1, je préfère attendre de n'avoir rien d'urgent à faire

avec mon ordi avant d'upgrader. La dernière mise à jour
était assez sportive.

Avatar
Yves Kuhry
gerard patel wrote:

dont l'installation est classique. La compilation donne ceci :

[ koctave3-0.65]$ make
make all-recursive
make[1]: Entering directory
'/home/kuhry/archives/software/tars/koctave3-0.65'
Making all in koctave3
/bin/sh: line 1: cd: koctave3: No such file or directory


Sur une mandrake cooker (Make 3.80), je ne vois pas ce problème.
La compilation échoue plus tard sur la documentation, mais koctave3
est créé. Par contre les messages de début sont très différents :
[ koctave3-0.65]$ make
cd .
&& CONFIG_FILES= CONFIG_HEADERS=config.h
/bin/sh ./config.status
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing default-1 commands
make all-recursive
make[1]: Entering directory
`/home/gerard/log/download/tti/koctave3-0.65'
Making all in koctave3
make[2]: Entering directory
`/home/gerard/log/download/tti/koctave3-0.65/koctave3'
source='logo.cpp' object='logo.o' libtool=no

Peut-etre le configure s'est mal passé ?

En fait, j'ai bien les mêmes messages au début. Ils n'étaient

pas affichés dans l'exemple que j'ai donné plus haut
parceque j'ai lancé make sans nettoyer les fichiers de
l'execution précédente.
Je doit effectivement avoir une version buggée de make,
comme l'a suggéré J. Mayer.


Avatar
g.patel
On Sun, 21 Dec 2003 06:52:43 +0000, Yves Kuhry
wrote:

Je doit effectivement avoir une version buggée de make,


Si l'on se fie au numéro de version affiché, j'ai la meme.
D'un autre coté, il ne faut pas vraiment se fier au numéro
de version affiché. Le seul logiciel identique à un autre
ne retourne rien quand on le compare avec cet autre en
utilisant diff.
On pourrait penser que ça soit un bogue introduit par un
correctif apporté par l'éditeur de la distribution, mais j'en
doute un peu (comment cet éditeur aurait-il pu compiler
le système ?). Regarder si un correctif existe. Test : télécharger
le source officiel de make, le compiler et l'utiliser à la place du
make de la distribution. Vérifier l'environnement (MAKEFLAGS)

Gerard Patel

Avatar
Yves Kuhry
gerard patel wrote:

On Sun, 21 Dec 2003 06:52:43 +0000, Yves Kuhry
wrote:

Je doit effectivement avoir une version buggée de make,


Si l'on se fie au numéro de version affiché, j'ai la meme.
D'un autre coté, il ne faut pas vraiment se fier au numéro
de version affiché. Le seul logiciel identique à un autre
ne retourne rien quand on le compare avec cet autre en
utilisant diff.
On pourrait penser que ça soit un bogue introduit par un
correctif apporté par l'éditeur de la distribution, mais j'en
doute un peu (comment cet éditeur aurait-il pu compiler
le système ?). Regarder si un correctif existe. Test : télécharger
le source officiel de make, le compiler et l'utiliser à la place du
make de la distribution. Vérifier l'environnement (MAKEFLAGS)

J'ai téléchargé et compilé make-3.80 (il a fallu modifier

le Makefile, comme d'hab). La version est différente de celle
installée, mais le problème persiste.
Je vais essayer de trouver un peu de temps pour regarder
ca de plus près. C'est vrai que c'est intriguant cette histoire.

Merci


1 2