C ve C ++ dünyasından gelen çoğu yapı sisteminin bir installhedefi vardır, özellikle Makefiles ( örneğin GNU tarafından tavsiye edilir ) veya CMake . Bu hedef, işletim sisteminde çalışma zamanı dosyalarını (yürütülebilir dosyalar, kitaplıklar, ...) kopyalar (örneğin, C:\Program Files\Windows'ta).
Bu gerçekten çılgınca hissediyor, çünkü benim için programları kurmak , aslında işletim sisteminin / paket yöneticisinin sorumluluğu olan derleme sisteminin sorumluluğu değil . Ayrıca, derleme sistemi veya derleme betiği yüklü değişkenlerin ortam değişkenleri, kayıt defteri değişkenleri, sembolik bağlantılar, izinler vb.
En iyi durumda, derleme sistemleri releaseyüklenebilir bir program (örneğin .debveya .msi) çıkaracak bir hedefe sahip olmalı ve işletim sisteminden bu programı yüklemesini rica etmelidir. Ayrıca kullanıcının yazmak zorunda kalmadan kaldırmasına da izin verir make uninstall.
Öyleyse sorum: Yapı sistemi neden genellikle bir installhedefe sahip olmayı öneriyor ?
make installgenellikle "çekirdek işletim sistemi / paket yönetim sistemi" tarafından ele alınmayan dizinler /usr/local(hatta çiftler) altına kurulur /opt. Windows'un benzer bir konvansiyona sahip olup olmadığı hakkında hiçbir fikrim yok.
make installÇapraz derleme hakkında konuştuğumuzda bunun mantıklı olmadığını unutmayın
DESTDIR.