Question

Un enseignant administrateur système m'a dit un jour que je devrais apprendre à utiliser "make". parce que je pourrais l’utiliser pour beaucoup d’autres choses qui ne font que déclencher des complilations.

Je n'ai jamais eu la chance d'en parler plus longtemps. Avez-vous un bon exemple?

En prime, cet outil n'est-il pas obsolète? Quelles sont les alternatives modernes (pour la compilation et autres)?

Était-ce utile?

La solution

Make peut être utilisé pour exécuter toutes les commandes que vous souhaitez exécuter. Il est préférable de l'utiliser pour les activités nécessitant une vérification de dépendance, mais rien ne vous empêche de vérifier votre courrier électronique, de redémarrer vos serveurs, de faire des sauvegardes ou toute autre chose.

Ant, NAnt et msbuild sont supposés être les alternatives modernes, mais plain-old-make est encore largement utilisé dans les environnements qui n'utilisent pas Java ou .NET.

Autres conseils

LaTeX est une excellente chose que nous puissions utiliser. Si vous travaillez sérieusement avec LaTeX, vous trouverez que make est très pratique car il est nécessaire de réinterpréter plusieurs fois les fichiers .tex lors de l’utilisation de BibTex ou de tables des matières.

Make n'est certainement pas obsolète. Bien qu’il existe différentes façons de faire la même chose (fichiers de commandes sous Windows, scripts shell sous Linux), l’outil le plus efficace est IMHO.

  

n'est-ce pas cet outil obsolète

Quoi?! Non, pas même légèrement. Je suis sous Linux, alors je réalise que je ne suis pas une personne ordinaire, mais je l'utilise presque quotidiennement. Je suis sûr qu'il existe des milliers de développeurs Linux qui l'utilisent quotidiennement.

Je me souviens avoir vu un article sur Slashdot il y a quelques années, décrivant une technique d'optimisation de la séquence de démarrage Linux à l'aide de make. .

modifier:

Voici un article d'IBM expliquant le principe.

Make effectue un tri topologique , ce qui revient à dire que, dans certains cas, et un ensemble d'exigences voulant qu'une chose soit avant une autre, il trouve un moyen de commander toutes les choses afin que toutes les exigences soient remplies. La construction d'objets (programmes, documents, archives de distribution, etc.) est une utilisation courante du tri topologique, mais il en existe d'autres. Vous pouvez créer un fichier Makefile avec une entrée pour chaque serveur de votre centre de données, y compris les dépendances entre serveurs (NFS, NIS, DNS, etc.) et vous indiquer dans quel ordre allumer vos ordinateurs après une panne de courant, ou quel ordre de les éteindre avant une panne de courant. Vous pouvez l'utiliser pour déterminer l'ordre dans lequel démarrer les services sur un seul serveur. Vous pouvez l'utiliser pour déterminer l'ordre dans lequel mettre vos vêtements le matin. Tout problème pour lequel vous devez rechercher un ensemble de tâches ou de tâches qui satisfont à de nombreuses exigences spécifiques du formulaire A va avant que B ne puisse être résolu avec make.

L’utilisation la plus aléatoire que j’ai jamais vue est d’utiliser make à la place de bash pour les scripts d’initialisation sur BCCD . Cela a fonctionné décemment, une fois que vous avez dépassé le moment wtf ....

Pensez à faire en tant que scripts shell avec oomph ajouté.

Eh bien, je suis certain que l'outil UNIX " make " est encore beaucoup utilisé, même si cela diminue dans le monde .Net. Et, alors que de plus en plus de personnes utilisent peut-être MSBUILD, Ant, nAnt et d’autres outils de nos jours, il s’agit essentiellement de "make". avec une syntaxe de fichier différente. Le concept de base est le même.

Les outils Make sont pratiques pour tout ce qui contient un fichier d’entrée transformé en fichier de sortie. Rédigez vos rapports dans MSWord, mais distribuez-les au format PDF. - Utilisez make pour générer les PDF.

Le fichier de configuration est modifié via la crontab, si si nécessaire.

J'ai des exemples de cartes postfix et de tables externes squid .

Exemple pour / etc / postfix / Makefile:

POSTMAP=/usr/sbin/postmap
POSTFIX=/usr/sbin/postfix

HASHES=transport access virtual canonical relocated annoying_senders
BTREES=clients_welcome

HASHES_DB=${HASHES:=.db}
BTREES_DB=${BTREES:=.db}

all: ${BTREES_DB} ${HASHES_DB} aliases.db
    echo \= Done

${HASHES_DB}: %.db: %
    echo . Rebuilding <*>lt; hash...
    ${POSTMAP} <*>lt;

${BTREES_DB}: %.db: %
    echo . Rebuilding <*>lt; btree...
    ${POSTMAP} <*>lt;

aliases.db: aliases
    echo . Rebuilding aliases...
    /usr/bin/newaliases

etc

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top