Skip to main content

Le livre GNU Make Book - Démystifier l'automatisation de la construction Linux

Sigil 0.9.3 - A vitória do software livre (Mai 2024)

Sigil 0.9.3 - A vitória do software livre (Mai 2024)
Anonim

En plus d'écrire sur Linux et de rédiger des critiques et des tutoriels sur les distributions et les outils, je suis également très impliqué dans le développement de logiciels. Malheureusement, 99,9% de ce développement logiciel est réalisé sur la plate-forme Windows.

J’ai plus de 20 ans d’expérience en tant que développeur C ++, Visual Basic, VB.NET et C #, et je suis également collaborateur de SQL Server en tant que DBA et développeur.

Ce que je ne connais pas très bien, c'est le développement de logiciels pour Linux. C'est juste quelque chose que je n'ai jamais vraiment dérangé. La raison principale en est que, après avoir développé un logiciel au cours de la journée, la dernière chose que je souhaite faire est de passer une soirée à écrire plus de logiciels.

J'aime évidemment bricoler avec les scripts et écrire le petit programme étrange. Ce sont généralement des projets électroniques sur le Raspberry PI.

Une chose que beaucoup de développeurs sur la plate-forme Windows auront du mal à faire lorsqu'ils passeront pour la première fois à Linux est de se renseigner sur les outils nécessaires pour créer et empaqueter des applications.

Le type d'application le plus facile à développer est de loin celui du Web, car il ne nécessite généralement pas de code compilé (PHP, Perl, Python) et les fichiers sont déployés à un emplacement défini sur le serveur Web.

Un grand nombre d'applications conçues pour Linux sont développées en C, C ++ ou Python. Compiler un seul programme C est relativement facile, mais lorsque vous avez besoin de compiler un certain nombre de programmes C avec plusieurs dépendances, les choses deviennent un peu plus compliquées.

GNU Make est un outil de script d’automatisation de construction qui vous aide à compiler vos applications encore et encore et de différentes manières. Par exemple, vous pouvez fournir un paramètre qui, en fonction de la valeur, compilera une application en 64 bits ou 32 bits.

Le livre GNU Make a été écrit par John Graham-Cumming pour aider les utilisateurs de GNU Make à mieux comprendre les complexités associées à GNU Make.

Le livre est divisé en six chapitres:

  1. Les bases revisitées
  2. Débogage de Makefile
  3. Construction et reconstruction
  4. Pièges et problèmes
  5. Pousser l'enveloppe
  6. La bibliothèque GNU Make Standard

Je ne crois pas que le livre s'adresse vraiment aux débutants, car il manque certaines clarifications auxquelles on pourrait s'attendre lors de l'apprentissage d'un nouveau sujet, tel que "Qu'est-ce que GNU Make?", "Comment créer un fichier Make?", "Pourquoi est-ce que l’utilisation de Make est meilleure que la compilation de chaque programme un par un? " et "Comment compiler des programmes avec GNU Make?". Tous ces sujets sont traités dans le manuel GNU Make.

Le fait que le premier chapitre s'appelle "The Basics Revisited" par opposition à "The Basics" montre clairement que vous êtes censé avoir une formation de base dans le sujet avant de commencer.

Le premier chapitre couvre toutes les bases telles que l'utilisation de variables, les environnements utilisés par les commandes et l'environnement $ (Shell). Au fur et à mesure que le chapitre avance, vous abordez le sujet de la comparaison, des listes et des fonctions définies par l'utilisateur.

Si vous utilisez GNU Make depuis un moment, mais ne vous considérez pas encore comme un expert, voici quelques astuces et conseils utiles qui vous aideront à comprendre certaines subtilités qui peuvent ne pas apparaître immédiatement.

Le deuxième chapitre sera une aubaine pour ceux d’entre vous qui ont essayé de piéger les erreurs dans des scripts de construction. La section "Débogage de Makefile" regorge d'excellents conseils et astuces pour le débogage des Makefiles et comprend des sections sur l'impression des valeurs de variables et même le vidage de la valeur de chaque variable. Plus loin dans ce chapitre, vous trouverez un guide du débogueur GNU que vous pouvez utiliser pour parcourir des scripts.

Le troisième chapitre contient des exemples de fichiers Makefiles, mais vous en apprendre davantage sur la création de fichiers Makefiles que vous pouvez exécuter plusieurs fois.

"Pièges et problèmes" examine les différences entre certains termes tels que = et: =, et ifndef et? =.

Au fur et à mesure que je parcourais le livre, j’ai constaté que, parce que je n’essayais pas activement d’utiliser GNU Make et que mes connaissances étaient très élémentaires, certains des sujets me passaient beaucoup à l’esprit.

Au moment où je suis arrivé au chapitre "Pushing The Envelope" (Pousser l'enveloppe), mes yeux se sont vitrés.

Mon résumé principal, si je devais résumer ce livre, est que l’auteur connaît bien son travail et a essayé de transmettre le plus d’informations possible.

Le problème est que parfois, quand un expert en la matière essaie d’écrire quelque chose, il a cette "oh, c’est facile, tout ce que vous avez à faire est de …" l’aura à leur sujet.

Le joint en caoutchouc de ma porte arrière s’est détaché la semaine dernière et, comme il n’était que de quelques années, j’ai appelé la société qui l’a installé car il est toujours sous garantie.

La dame au téléphone a dit: "Oh, c'est bon, je vais vous envoyer un nouveau scellé".

J'ai dit "Oh, dois-je l'adapter moi-même? Est-ce quelque chose que je peux faire".

La réponse a été "Bien sûr, tout ce que vous avez à faire est d’enlever la porte, de poser le joint et de replacer la porte".

Maintenant, ma pensée instantanée était "woah, rembobine un peu là-bas. Enlève la porte?!?". Je ne suis pas qualifié pour enlever une porte, installer un joint et remonter la porte. Je laisse cela aux experts.

Avec ce livre, j'estime que vous avez besoin d'un autre livre et d'une certaine expérience de l'écriture de Makefiles avant que vous ne le trouviez utile.

Je pense que les conseils, astuces et connaissances fournis aideraient certaines personnes à dire "Oh, c'est pourquoi c'est la raison" ou "Je n'avais pas réalisé que tu pouvais le faire de cette façon".

Mon évaluation est donc que vous devriez acheter ce livre si vous recherchez des éclaircissements ou des connaissances plus avancées à intermédiaires sur GNU Make, mais ce n’est pas un livre pour débutants.