1.makeについてmakeは、厳密には分割コンパイルのためのツールではなく、 configuration controlのためのツールです。これを狭義に対象をプログラムのみに絞った場合、分割コンパイルのためのツールとなります。
また厳密に言うと、
という2つの言葉があります。
- 独立コンパイル
- 分割コンパイル
C言語等は独立コンパイル可能な言語ではあるが、分割コンパイルのための機能は持っていません。そのため、別途、make等というツールを流用(?)しているのです。
ただ現状では、言語系自体で分割コンパイル機能を持った言語は存在しない、ということで、この2つの言葉が混合して使われているようです。ちなみに、modula-2という言語では、分割コンパイル機能を言語処理系として持っています。