2012-12-12 11 views
6

Jakie są różnice między FOO=bar ./configure i ./configure FOO=bar, gdzie ./configure jest skryptem generowanym przez autoconf z configure.am? Wiem, że pierwsza ustawia zmienną środowiskową FOO na bar przed uruchomieniem skryptu ./configure, a druga przekazuje ciąg FOO=bar do ./configure. Myślę, że ./configure interpretuje to (i pamięta?) Jako ustawienie zmiennej FOO równej bar, ale poza tym, nie wiem. W szczególności czy są jakieś zalety robienia tego w taki czy inny sposób?Przekazywanie zmiennych środowiskowych do `./Configure` autoconf

Odpowiedz

6

Przekazanie przypisania do configure jako argumentu zapewnia, że ​​przypisanie jest dostępne w config.status, więc zostanie ustawione na config.status --recheck. Jest to główna zaleta polegająca na tym, że przypisanie jest argumentem. Zauważ, że obecna dokumentacja dotycząca autokonfów zaleca, aby przejść przez przypisanie przez środowisko. Starsze wersje autoconf nie zezwalały na przypisywanie jako argumenty do skonfigurowania, więc konieczne jest użycie starszego formularza podczas uruchamiania starych skryptów konfiguracyjnych, a nawyki umierają, więc wiele osób nadal korzysta ze środowiska. Jednak dobrym nawykiem jest przekazywanie zadań za pomocą argumentów.

+0

Zobacz także definicję _zbliżonych zmiennych_ w dokumentacji dla 'AC_ARG_VAR'. W ten sposób 'configure' kontroluje, która zmienna środowiskowa powinna być zachowana dla' --recheck', lub której zmiana powinna unieważnić jakąkolwiek konfigurowaną pamięć podręczną. – adl

Powiązane problemy