2013-01-06 22 views
6

Instrukcja autokonfowania sugeruje użycie AS_IF zamiast if, ale nie wspomina o m4_if. Czy powinno być również preferowane AS_IF ponad m4_if?autoconf: czy zawsze powinienem używać AS_IF ponad if i m4_if?

Sekcja tego podręcznika zawiera informacje o używaniu AS_IF do przenoszenia, ale AC_REQUIRE description mówi, że używa jej do rozszerzenia wymaganych makr.

Czy powinienem zawsze używać AS_IF? Odpowiedź wydaje się być twierdząca, ale znowu widzę, że if i m4_if są używane w innych makrach. Kiedy można nie używać AS_IF?

Odpowiedz

2

Byłem zdezorientowany, ponieważ nie zdawałem sobie sprawy z zasadniczej różnicy między if/AS_IF i m4_if. Normalne if i AS_IF mają swoje wartości warunkowe, gdy użytkownik uruchamia skrypt, tj. configure. Odwrotnie, m4_if ma swoją ocenę warunkową podczas rozszerzania makr, tj. autoreconf.

if/AS_IF wpływa na przepływ skryptu. m4_if wpływa na zawartość skryptu.

Wydaje się to teraz oczywiste, ale początkowo go nie dostałem. Mam nadzieję, że to pomoże komuś innemu.

+0

Możesz zaakceptować własną odpowiedź, BTW. –

+1

To nie mówi, kiedy używać 'if' i kiedy' AS_IF'. –

+0

Myślę, że zgoda jest taka, aby zawsze używać 'AS_IF' zamiast' if', ponieważ masz lepsze cytowanie, itp. – tprk77

2

Inną zaletą AS_IF jest to, że po rozwinięciu wszelkie makra wymagane przez makra w gałęziach są przed testem rozszerzane.

Zobacz the manual.