make installробить все, що Makefileхоче автор. Як правило, до цього моменту змінити каталог встановлення занадто пізно, як це часто відомо раніше , під час збирання, тому довідкові файли та файли конфігурації можуть посилатися на правильні імена шляхів.
Багато проектів використовують автоінструменти GNU, щоб спробувати покращити їх портативність серед апаратних та операційних систем. (У різних варіантах Unix використовується дещо різні заголовки для декларацій функцій, що знаходяться трохи поза звичайним шляхом - за винятком того, що більшості програм потрібна та чи інша з заявлених у різних місцях.)
Коли проект використовує Autotools, звичайна мантра його встановлювати:
./configure
make
make install
./configure, Як правило , дозволяє використовувати параметр командного рядка , як --prefix /opt/apacheабо що - щось подібне , щоб вказати інший шлях до файлу. /usr/local/є загальним замовчуванням prefix. Набагато простіше місцевому програмному забезпеченню жити в одному місці, а програмне забезпечення, що надається для дистрибуції, жити в "основних каталогах": /usr/ /bin/тощо. (Пакувальники дуже обережні, щоб ніколи не торкатися файлів /usr/local/- вони знають, що це виключно для системних адміністраторів.)
У будь-якому випадку, ./configure --prefix /path/to/new/prefixзасіб буде встановлювати змінну, Makefileщо є при компілюванні програми, зміна сторінок керівництва таким чином, щоб вони вказували на правильні місця розташування файлів, зміну конфігураційних файлів тощо. Отже, makeбуде створено програмне забезпечення спеціально для потрібного місця установки та make installвстановить його в тому місці.
Більшість програм може запускатися навіть без останнього make installкроку - просто ./program_nameчасто їх запускати. Це, безумовно, річ, що стосується кожного проекту - деякі, як-то postfixі qmailт. Д., Складаються з безлічі різних рухомих творів і покладаються на них, що вони працюють разом. Інші, як-от lsабо suможуть бути достатньо автономними, щоб виконати штрафи із каталогу, в який вони були вбудовані. (Це не часто корисно, але іноді дуже корисно.)
Однак не всі проекти використовують Autotools - вони величезні , складні та жалюгідні в обслуговуванні. Рукописні Makefiles набагато простіші для запису, і я особисто думаю, що просто розповсюджувати просту Makefileз наявними змінними конфігурації набагато простіше для розробників та користувачів. (Хоча ./configure ; make ; make installмантра дійсно проста для користувачів, коли вона працює.)
make installкроками з точки зору програмістів.