Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΌΡΡ ΡΠ²Π΅ΠΆΡΡ Π²Π΅ΡΡΠΈΡ GNU make Ρ ΡΠ°ΠΉΡΠ° ftp://ftp.gnu.org/pub/gnu/make, ΡΠ°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ Π΅Π΅ ΠΈ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅Π£ΡΠΈΠ»ΠΈΡΠ° make ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ make. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Visual C++ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ nmake.exe. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ make ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ make, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠΉ make ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ ΡΠΈΡΡΠ°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ make ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ.
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠ»ΠΈΡ make, Ρ ΡΠ΅ΡΠΈΠ» ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° GNU make, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ make. GNU make Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ GCC. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ GNU make Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Windows, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ GNU make ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ, Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GNU make Ρ Π½e-GNU-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π΄ΡΡΠ³ΠΈΡ make, ΡΠΈΠΏΠ° nmake.exe, Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° GNU make ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΎΡ Π΅Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π² Unix, ΠΈ Π² Windows, Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Windows cmd.exe ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΠ΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ; Π² Π½Π΅ΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΆΠ΅ΡΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π΄Π»ΠΈΠ½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΡ GNU make ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ cmd.exe, ΡΠΎ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ. Π ΡΡΠ°ΡΡΡΡ, Cygwin ΠΈ MSYS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GNU make Π² Windows.
MSYS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π² Windows make-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² configure Π² ΡΡΠΈΠ»Π΅ Unix. Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ awk, cat, cp, grep, ls, mkdir, mv, rm, rmdir ΠΈ sed. MSYS Π±ΡΠ»Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ GCC ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ Π΄Π»Ρ Windows, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ .bat-ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅ΡΠΈ (/) Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΡΠ΅ (-), ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π½Π΅Π΅ Π³Π»Π°Π΄ΠΊΠΎ.
Π’Π°ΠΊ, Π³Π΄Π΅ MSYS ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°, Cygwin ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°. Cygwin make ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ MSYS make, ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠ΅ make-ΡΠ°ΠΉΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠ·ΠΊΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΡΡΠΈΠ»ΠΈΡ GNU, ΠΈ ΠΎΠ½ΠΈ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² MSYS.
Π‘ΠΌΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅Π Π΅ΡΠ΅ΠΏΡ 1.1.
1.15. Π‘Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«Hello, WorldΒ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ GNU make
ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GNU make ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Β«Hello, WorldΒ», ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1.4.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Ρ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ make-ΡΠ°ΠΉΠ», Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, make-ΡΠ°ΠΉΠ» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΏΡΠ°Π²ΠΈΠ», ΠΈΠΌΠ΅ΡΡΠΈΡ Π²ΠΈΠ΄
ΡΠ΅Π»ΠΈ: ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄Π°-ΡΡΠ΅Π½Π°ΡΠΈΠΉ
ΠΠ΄Π΅ΡΡ ΡΠ΅Π»ΠΈ ΠΈ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ β ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°-ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½ΡΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ (Tab). Π¦Π΅Π»ΠΈ ΠΈ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ make. ΠΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ make ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ ΡΠ΅Π»Π΅ΠΉ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
ΠΡΠΎΠ±Π΅Π»Ρ Π² make-ΡΠ°ΠΉΠ»Π°Ρ Π·Π½Π°ΡΠΈΠΌΡ. Π‘ΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Tab, Π° Π½Π΅ Ρ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² β ΡΡΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Tab, ΡΠΊΠ°Π·Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΡΡΠΏΠ° Π½Π° ΡΠ΅ΡΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π°.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΡΠ°ΡΡ. Π Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ makefile. Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅Π»ΠΈ. ΠΠ΅ΡΠ²ΡΡ ΡΠ΅Π»Ρ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ all ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π΅ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠ° ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΡΠΎΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΠΈΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π΅ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ² ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π’ΡΠ΅ΡΡΡ ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Π·ΡΠ²Π°ΡΡΡΡ install. Π£ Π½Π΅Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ² ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠΎΠΏΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ make-ΡΠ°ΠΉΠ», Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π³Π΄Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Π·ΡΠ²Π°ΡΡΡΡ clean. ΠΠ°ΠΊ ΠΈ install, ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ². ΠΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π¦Π΅Π»ΠΈ clean ΠΈ install Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ phony targets (ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅Π»ΠΈ), Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ PHONY.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GCC ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° 1.4, make-ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1.14.
ΠΡΠΈΠΌΠ΅Ρ 1.14. make-ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ GCC
# ΠΡΠΎ ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΠ°Π½Π° ΠΏΡΠΈ
# Π²ΡΠ·ΠΎΠ²Π΅ make
.PHONY: all
all: hello
# ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ make, ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΠ°ΡΡ hello ΠΈΠ· hello.cpp
hello: hello.cpp
g++ -o hello hello.cpp
# ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ make ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ hello Π² ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ binaries,
# ΡΠΎΠ·Π΄Π°Π² Π΅Π΅, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
.PHONY: install
install:
mkdir -p binaries
cp -p hello binaries
# ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ make ΡΠ΄Π°Π»ΠΈΡΡ hello ΠΈ hello.ΠΎ
.PHONY: clean
clean:
rm -f hello
Π§ΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° 1.4 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Π‘++, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ make-ΡΠ°ΠΉΠ», ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1.15.
ΠΡΠΈΠΌΠ΅Ρ 1.15. make-ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Π‘++.
#ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
.PHONY: all
all: hello.exe
#ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ hello.exe
hello.exe: hello.cpp
cl -nologo -EHsc -GR -Zc:forScope -Zc:wchar_t \
-Fehello hello.cpp
.PHONY: install
install:
mkdir -ΠΎ binaries
cp -p hello.exe binaries
.PHONY: clean
clean:
rm -f hello.exe
ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠΏΠΈΡΠΊΠΈ ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ² ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠ° make-ΡΠ°ΠΉΠ»Π°, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ \, ΠΊΠ°ΠΊ ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ Π‘++.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ makefile, ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ make. Π§ΡΠΎΠ±Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ binaries, Π²Π²Π΅Π΄ΠΈΡΠ΅ make install. Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ make-ΡΠ°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», Π²Π²Π΅Π΄ΠΈΡΠ΅ make clean.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Ρ Cygwin, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΠ΅ΡΠ΅ΠΏΡΠ΅ 1.1, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ make-ΡΠ°ΠΉΠ» ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° 1.15 Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Windows cmd.exe.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΡ make-ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Cygwin, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π΄Π°Π»Π΅Π΅. Π cmd.exe Π·Π°ΠΏΡΡΡΠΈΡΠ΅ vcvars32.bat, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ Visual Π‘++. ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ cygwin.bat, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Cygwin. ΠΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Cygwin Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² PATH, ΡΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Cygwin ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ· cmd.exe, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄Ρ cygwin. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ make-ΡΠ°ΠΉΠ», ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ make.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ make-ΡΠ°ΠΉΠ» ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ MSYS: Π² cmd.exe Π·Π°ΠΏΡΡΡΠΈΡΠ΅ vcvars32.bat, Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ msys.bat, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ MSYS.
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ, Π·Π°ΠΏΡΡΠΊ make-ΡΠ°ΠΉΠ»Π° ΠΈΠ· Cygwin ΠΈΠ»ΠΈ MSYS Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΎΠΊ, ΡΠ΅ΠΌ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊ ΠΈΠ· cmd.exe. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ make-ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ·-ΠΏΠΎΠ΄ cmd.exe.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅Π Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅ΠΏΡΠ°Ρ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ GNU make ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠΎ ΡΡΠΎ ΠΆΠ΅ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ? ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ make Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ½Π° ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ ΡΠ°ΠΉΠ»Π° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ GNUmakefile, makefile ΠΈΠ»ΠΈ Makefile ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡΡ Π² Π½Π΅ΠΌ ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π»ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (default target). ΠΡΠ»ΠΈ ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΡΡΡΠ°ΡΠ΅Π»Π°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π²ΡΠ΅ Π΅Π΅ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅Π΅ ΡΠ±ΠΎΡΠΊΠΈ, ΡΠΎ ΡΠ°Π±ΠΎΡΠ° make Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· Π΅Π΅ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π΅Π½: Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠ° make ΠΈΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΡΠΎΡ ΠΏΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»ΠΈ, ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. Π’Π°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.