Походить із світу C та C ++, більшість систем побудови мають installціль, зокрема Makefiles (де, наприклад, рекомендує GNU ) або CMake . Ця мета копіює файли виконання (виконувані файли, бібліотеки, ...) в операційну систему (наприклад, в C:\Program Files\Windows).
Це відчувається по-справжньому хакі, оскільки для мене це не відповідальність системи збирання за встановлення програм (що фактично є обов'язком оператора / менеджера пакетів). Це також означає, що система збирання або сценарій збірки повинні знати організацію встановлених програм, зі змінними середовища, змінними реєстру, символьними посиланнями, дозволами тощо.
У кращому випадку в системах побудови повинна бути releaseціль, яка виводить встановлену програму (наприклад, .debабо .msi), а потім люб'язно попросіть операційну систему встановити цю програму. Це також дозволить користувачу видалити без необхідності введення make uninstall.
Отже, моє запитання: чому система побудови зазвичай рекомендує мати installціль?
make installзазвичай встановлюється під /usr/local(або навіть /opt), які є каталогами, якими не керує "основна система управління ОС / пакетами". Не маю уявлення, чи має Windows подібне домовленості.
make installнемає сенсу, коли ми говоримо про перехресне складання
DESTDIR.