GNU Make Book - Linuxビルドの自動化を理解する

Linuxについて書いているだけでなく、ディストリビューションやツールに関するレビューやチュートリアルを書いているだけでなく、ソフトウェア開発にも関わっています。 残念ながら、そのソフトウェア開発の99.9%がWindowsプラットフォーム上で行われています。

私はC ++、Visual Basic、VB.NET、C#の開発者として20年以上の経験を持ち、DBAと開発者としてSQL Serverを手掛けています。

私がそれほどよくないのは、Linux用のソフトウェアを開発することです。 それは私が本当に心配したことのないものです。 主な理由は、日中にソフトウェアを開発した後、最後にやりたいことは、ソフトウェアを書く夜の席に座ることだ。

私は明らかにスクリプティングや奇妙な小さなプログラムの作成を手直しするのが好きです。 これらは、通常、Raspberry PIのエレクトロニクスベースのプロジェクト向けです。

Windowsプラットフォーム上の多くの開発者が最初にLinuxに移行する際に問題になることの1つは、アプリケーションを構築してパッケージ化するために必要なツールについて学ぶことです。

一般的にコンパイルされたコード(PHP、Perl、Python)を必要とせず、ファイルがWebサーバー上の設定された場所に配備されるため、開発する最も簡単なアプリケーションはWebアプリケーションです。

Linux用に構築された多数のアプリケーションは、C、C ++、またはPythonを使用して開発されています。 単一のCプログラムをコンパイルするのは比較的簡単ですが、複数の依存関係を持つ多数のCプログラムをコンパイルする必要がある場合は、やや難解です。

GNU Makeはビルドオートメーションのスクリプティングツールで、何度も何度もアプリケーションをコンパイルするのに役立ちます。 たとえば、値に応じて64ビットまたは32ビットを使用してアプリケーションをコンパイルするパラメータを指定できます。

GNU Makeのユーザは、John Graham-Cummingによって、GNU MakeのユーザがGNU Makeに関連した複雑さをより確実に把握できるように書かれています。

本は6つの章に分かれています:

  1. 再考された基本
  2. メイクファイルのデバッグ
  3. 建築と再建
  4. 落とし穴と問題
  5. 封筒を押す
  6. GNU Make標準ライブラリ

「GNU Makeとは何か?」、「Makeファイルを作成するにはどうすればよいのですか?」、「なぜMakefileを作成するのですか?」などの新しいテーマを学ぶときに期待する明確な説明がないため、初心者向けの本だとは思えません。各プログラムを1つずつコンパイルするよりもMake Makeをよく使うのですか? と "どのようにGNU Makeを使ってプログラムをコンパイルするのですか?" これらの分野のすべては、GNU Makeマニュアルでカバーされています

最初の章が "The Basics Revisited"と呼ばれるという事実は、 "The Basics"とは対照的に、あなたが始める前に主題に根ざしていることが明らかになっていることをはっきりと示しています。

最初の章では、変数の使用、コマンドで使用される環境、$(シェル)環境などのすべての基本について説明します。 章が進むにつれて、比較、リスト、およびユーザー定義関数の対象になります。

GNU Makeをしばらく使っているが、まだ自分自身を専門家と見なしていないのであれば、すぐにはわからないような複雑さを理解するのに役立つ素晴らしいヒントやヒントがあります。

2つ目の章は、ビルドスクリプトでエラーをトラップしようとしている人のためのものです。 "Makefile Debugging"セクションには、Makefileをデバッグするための優れたヒントとヒントが満載されています。また、変数値の出力や各変数の値のダンプに関するセクションも含まれています。 さらにこの章には、GNUデバッガのガイドがあり、これを使ってスクリプトを実行することができます。

3番目の章にはmakefileの例が含まれていますが、それ以上の部分は何度も何度も実行できるMakefileの作成方法を示しています。

「落とし穴と問題」では、=と:=、ifndefと?=などの特定の用語の違いを調べます。

GNU Makeを積極的に使用しようとしていないため、知識が非常に基本的なレベルであるため、主題のいくつかが私の頭の中で非常に多くなったということを、本書をさらに進めていくうちに見つけました。

私が「封筒を押してください」という章に着く頃には、私の目はやや明るくなっていました。

私の主な要約は、もし私がこの本をまとめなければならないのは、作者が自分のことをはっきりと知っており、できるだけ多くの情報を渡そうとしているということです。

問題は、主題の専門家が何かを書こうとしたときに、「ああ、簡単だよ、あなたがしなければならないのはすべて....」というオーラだということがある。

私のバックドアのゴム製のシールは先週から出てきました。数年前のことですが、私はまだそれが保証されているので、それを取り付けた会社に電話しました。

電話の女性は、「ああ、大丈夫です、私はあなたに新しい印鑑を送ります」と言った。

私は「ああ、私はそれを自分自身に適合させる必要がありますか?それは私ができることですか」と言いました。

応答は "確かにできる、あなたがしなければならないことは、ドアを離し、印鑑に合うようにしてドアを元に戻すことだ。

今すぐ私の考えは "うわあ、ちょっと戻って扉を脱ぐ?" 私はドアを外し、シールをはめ込み、ドアを修理する資格はない。 私はそれを専門家に任せます。

この本では、別の本が必要であり、それが役に立つと思う前にMakefilesを書いたある程度の経験があると感じます。

私は、ヒント、ヒント、そして知識が提供されると、「ああ、そういうわけで、そういうわけです」とか「あなたがそうすることができるとは気付かなかった」と言っている人もいます。

私の評価は、GNU Makeについての高度な知識や中級以上の説明を求めているが、初心者のための本ではありません。