Pas de règle pour faire de la cible `/Makefile", nécessaire par le "Makefile"
Je suis en train de "faire" à l'aide d'un simple fichier makefile. Mon makefile est nommé "Makefile" donc, je suis tout simplement en utilisant la commande 'make'.
J'obtiens cette erreur étrange:
make: *** No rule to make target `/Makefile', needed by `Makefile'. Stop.
Si, cependant, j'utilise
make -f "full-path-to-makefile"
il ne fait exécuter (avec de curieuses conséquences...). Je dois dire que je suis tout cela à partir du répertoire où le fichier Makefile se trouve, bien sûr.
Je travaille sur Mac OSX, à l'aide de tcsh.
Edit:
Je travaille dans le LLVM cadre, en essayant de compiler un laissez-passer de la fonction et c'est l'associée makefile:
NIVEAU = ../../../ LIBRARYNAME = Nomfonction LOADABLE_MODULE = 1 comprennent un montant de(NIVEAU)/Makefile.commune
Toutes les idées seront appréciées 🙂
Ma conjecture est que vous avez une substitution de variable dans l'une de vos cibles; mais pour permettre aux gens de donner une vraie réponse, vous avez besoin de poster le fichier Makefile en question.
OriginalL'auteur Dana | 2011-01-21
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème en essayant d'écrire un nouveau mot de passe pour LLVM j'ai suivi ces instructions d'essayer de faire un HelloB (comme Bonjour déjà exsited) http://llvm.org/docs/WritingAnLLVMPass.html#quickstart
Ce que j'ai a faire a faire ./configurer à nouveau, puis faites à partir du répertoire de base.
Juste pour le rendre plus clair. Dans
LLVM_SRC_ROOT
ne./configure
de nouveau. Puis dans$LLVM_SRC_ROOT/lib/Transforms/Hello
exécutermake
. Cela a fonctionné pour moiOriginalL'auteur Nate
Je vais aller sur une branche: vous avez un supplément de slash. Essayez en omettant la dernière barre oblique dans $(NIVEAU).
OriginalL'auteur Beta
J'ai trouvé la réponse, en quelque sorte:
Le problème était avec le processus d'installation de LLVM. Il semble que si vous procédez à l'installation dans un ordre plutôt qu'un autre, il peut conduire à l'erreur. Il ne fait aucun sens pour moi, mais après je l'ai installé correctement tout compile grand (même code, même Makefile, même faire le programme).
Je ne sais vraiment pas pourquoi cela est arrivé, mais je sais comment résoudre le problème 🙂
Ce que vous voulez faire est ./configurer à nouveau, puis faire de la répertoire de base (contrairement à ce qui est indiqué dans les instructions sur le site web). Ce qui a fonctionné pour moi.
BTW - j'ai obtenu les mêmes résultats en cours d'exécution sur Ubuntu (avec le même correctif).
OriginalL'auteur Dana
Juste pour ajouter quelques informations ici (car c'est le premier coup qui vient sur Google lors de la recherche de l'erreur) - j'ai eu le même problème qui a soudainement surgi sur un (ancien) LLVM le programme d'installation sur OSX, et de les remonter en arrière pour le comportement de la fonction realpath commande en faire.
Plus précisément, ce qui se passait c'est que j'avais un répertoire appelé "LLVM/llvm-2.9-construire", mais pour certaines raisons, la tentative de résoudre PROJECT_OBJ_ROOT en haut de Makefile.config serait de décider que ce répertoire est en fait appelé "llvm/llvm-2.9-build". Depuis OSX est insensible à la casse par défaut, cela ne cause pas un problème immédiat, sauf que par la suite LLVM_SRC_ROOT défini pour "LLVM/llvm-2.9-build". Ensuite, cela signifie que la création de PROJ_SRC_DIR à l'aide de patsubst pour remplacer le répertoire des objets seraient le résultat d'un inexistante chemin (comme l'incomparable cas signifie qu'aucun motif de le remplacer), qui à son tour se résoudre à /par la fonction realpath.
Avec PROJ_SRC_DIR /, cela se traduit dans le fichier makefile règle de copie dans le Makefile.les règles de décider que le makefile source est à $(PROJ_SRC_DIR)/Makefile (ie /Makefile), et le message d'erreur décrit.
Il semble que c'est seulement le construit-dans la mise en œuvre de la fonction realpath en Faire (GNU Make est de 3,81 dans mon cas) qui a ce comportement, avec autant de force à l'aide de la macro version de la fonction realpath à partir du haut de Makefile.config résout le problème. Cependant, ce n'est pas une bonne solution à long terme, comme vous le feriez manuellement le patch tous les LLVM makefiles.
À la fin, je ne pouvais pas voir où realpath serait au bas-de-casse "llvm", mais a pensé que c'était probablement un artefact d'une certaine façon de certains de la mise en cache du nom à partir d'un point dans le temps lorsque j'avais référencé le répertoire à l'aide de son bas-de-casse nom. Donc j'ai essayé d'aller dans ce répertoire et mv-ing à un nom complètement différent, et puis retour à la "LLVM" avant d'aller dans les et construire encore, et qui semble avoir résolu le problème.
J'espère que c'est utile à quelqu'un d'autre qui vient à travers cette étrangeté!
OriginalL'auteur Ben
Ce n'est pas une réponse complète, mais ce que vous voyez est gmake de ne pas trouver le fichier Makefile, il est dit de comprendre, et donc il est en train de le refaire et de l'échec, car il ne peut pas trouver une recette pour qu'il soit.
Cependant, le Makefile extrait de code que vous avez posté ne produit pas le message d'erreur que vous voyez, donc je pense que le problème est à l'intérieur du Makefile.fichier commun. Regarder pour comprendre des énoncés qui font référence à un $(certaines variables d'expansion)/Makefile et travailler à rebours à partir de là. Vous pouvez également essayer d'exécuter gmake avec l'option-d et de suivre le traitement sur la base de la sortie.
OriginalL'auteur Lars
Depuis votre ligne se lit comme suit:
il est étonnant que vous n'obtenez pas une erreur sur
/Makefile.common
. Si vous étiez, alors je suggère que vous avez peut-être une fin vide après la définition de NIVEAU.Pourrait-il y avoir une ligne dans le fichier Makefile.commune, qui elle-même comprend $(SOMEMACRO)/Makefile et vous n'avez pas défini la valeur de SOMEMACRO?
OriginalL'auteur Jonathan Leffler
voici mon résout ce problème: (https://github.com/rust-lang/rust/issues/24887#issuecomment-99391849)
mise à jour src/llvm/Makefile.config.dans avant l'exécution ./configurer
ou de mise à jour x86_64-apple-darwin/llvm/Makefile.config avant de faire
ligne 59:
mise à jour
ligne 86:
mise à jour
OriginalL'auteur mindon