2017-10-12 11 views
0

J'essaye de «faire» BIND serveur DNS.
J'utilise la commande: make -f Makefile.in et j'obtiens l'erreur:
Makefile.in:32: *** missing separator (did you mean TAB instead of 8 Spaces?). Stop..
Je l'ai essayé tous les deux sur AntiX Linux (basé sur les tests Debian) et sur Ubuntu.
J'ai essayé les versions 9.11.2, 9.10.6 et 9.9.11 de BIND.
J'utilise la disposition du clavier QWERTY US UTF8 (mais je n'ai pas édité le Makefile.in).makefile onglet séparateur manquant

Sur la ligne 32 de la Makefile.in il y a ceci:
@[email protected]
Je ne l'ai jamais vu ces lignes avant (je suis nouveau à « faire »).
Est-ce que cela pourrait être une directive remplacée par des caractères d'espace et causer le problème?

Je sais qu'il y a plusieurs questions comme celles-ci, qui sont downvoted ou fermées hors sujet, mais certaines réponses seraient appréciées, ou probablement si vous pouviez me dire où cette question devrait être posée?

Répondre

2

Vous ne pouvez pas utiliser Makefile.in comme fichier Make. Ce n'est pas un makefile. C'est un modèle pour un fichier makefile, qui doit être traité en premier pour le transformer en un vrai makefile, qui sera appelé Makefile (pas de .in).

Vous devriez lire le fichier INSTALL ou README dans la distribution source pour apprendre à le construire. Je n'ai pas essayé de construire BIND (dans un très, très long temps), mais il est très probable qu'il soit livré avec un script configure que vous devez exécuter en premier. Ce script va créer le Makefile pour vous. Ensuite, vous exécutez make (sans aucun drapeau -f ...).

1

corrigé par MadScientist:

Makefile.in est un fichier modèle utilisé par autoconf et amis. Plus précisément, autoconf prend le fichier configure.in pour générer un script configure. Ce script prend ensuite Makefile.in et le modifie pour créer Makefile. Ce que vous avez trouvé était un marqueur pour ce processus. Vous pouvez trouver plus d'informations here

+0

Est-ce que 'autoconf' est un programme à exécuter? – thanopi57

+1

'autoconf' est un programme standard installé sur la plupart des systèmes. Il est généralement appelé à partir d'un script '.configure'. Comme @MadScientist mentionné, il devrait y avoir des instructions dans les fichiers 'INSTALL' ou' README' de vos paquets sur la façon d'installer le système correctement. – HardcoreHenry

+0

Désolé, mais ce n'est pas correct. Vous n'utilisez PAS "autoconf" pour générer des Makefiles. Vous utilisez autoconf pour convertir les fichiers 'configure.ac' (anciennement' configure.in') en un script 'configure'. Cette étape est effectuée par le _maintainers_ du logiciel (les personnes qui ont publié la distribution source BIND que vous avez téléchargé). Ce n'est pas fait par l'utilisateur final qui télécharge la distribution source: autoconf n'est pas nécessaire pour ces utilisateurs. Les utilisateurs finaux ont seulement besoin de lancer "configure". Ils ne devraient certainement pas fonctionner avec autoconf. – MadScientist