make installrobi wszystko, co Makefilechce autor. Zazwyczaj w tym momencie jest już za późno na zmianę katalogu instalacyjnego, jak to często wiadomo wcześniej podczas kompilacji, więc do plików pomocy i plików konfiguracyjnych można odwoływać się za pomocą poprawnych nazw ścieżek.
Wiele projektów korzysta z GNU Autotools w celu poprawy ich przenośności między różnicami sprzętowymi i systemowymi. (Różne warianty Uniksa używają nieco innych nagłówków do deklaracji funkcji, które są nieco poza zwykłą ścieżką - z wyjątkiem większości programów, które wymagają jednego lub drugiego z tych zadeklarowanych w różnych lokalizacjach.)
Kiedy projekt korzysta z Autotools, normalną mantrą do instalacji jest:
./configure
make
make install
./configureZazwyczaj pozwala na użycie opcji wiersza polecenia podobnego --prefix /opt/apachelub coś podobnego, aby określić inną ścieżkę. /usr/local/jest częstym domyślnym prefix. Lokalnie zbudowane oprogramowanie jest o wiele łatwiejsze do zamieszkania w jednym miejscu, a oprogramowanie dostarczane przez dystrybucję do życia w „głównych katalogach”: /usr/ /bin/i tak dalej. (Pakowacze są bardzo ostrożni, aby nigdy nie dotykać plików /usr/local/- wiedzą, że jest to wyłącznie dla administratorów systemu).
W każdym razie, ./configure --prefix /path/to/new/prefixustawi zmienną, Makefilektóra jest dostępna podczas kompilacji programu, modyfikując strony podręcznika, aby wskazywały prawidłowe lokalizacje plików, modyfikując pliki konfiguracyjne itp. Więc makezbuduje oprogramowanie specjalnie dla żądanej lokalizacji instalacji i make installzainstaluje go w tej lokalizacji.
Większość programów może działać nawet bez ostatniego make installkroku - po prostu ./program_nameczęsto je uruchamiają. Jest to z pewnością rzecz per-projektu - niektóre, jak postfix, qmailitp, składają się z wielu ruchomych elementów i opierają się na nich wszystkich razem pracować. Inne, takie jak lslub sumogą być wystarczająco samodzielne, aby dobrze wykonać z katalogu, w którym zostały wbudowane. (To nie jest często przydatne - ale czasami bardzo przydatne).
Jednak nie wszystkie projekty używają Autotools - są ogromne , skomplikowane i nieszczęśliwe w utrzymaniu. Odręczne pisanie Makefilejest znacznie prostsze do napisania, a ja osobiście uważam, że dystrybucja prostej Makefilez dostępnymi zmiennymi konfiguracyjnymi jest o wiele łatwiejsza zarówno dla programistów, jak i użytkowników. (Chociaż ./configure ; make ; make installmantra jest naprawdę łatwa dla użytkowników, gdy działa).
make installkrokami z punktu widzenia programisty.