2013-01-06 5 views
6

Das Autoconf Handbuch schlagen vor, AS_IF anstelle von if zu verwenden, aber es erwähnt m4_if nicht. Sollte AS_IF auch gegenüber m4_if bevorzugt werden?autoconf: sollte ich immer AS_IF über if und m4_if verwenden?

Der Abschnitt des Handbuchs sagt AS_IF für seine Portabilität zu verwenden, aber die AC_REQUIRE description sagt, es zu verwenden, um erforderliche Makros zu erweitern.

Sollte ich immer AS_IF verwenden? Die Antwort scheint ja zu sein, aber dann sehe ich wieder if und m4_if wird in anderen Makros verwendet. Wann ist es in Ordnung, AS_IF nicht zu verwenden?

Antwort

2

Ich war darüber verwirrt, weil ich nicht den grundlegenden Unterschied zwischen if/AS_IF und m4_if erkannte. Die normalen if und AS_IF Bedingungen werden ausgewertet, wenn der Benutzer das Skript ausführt, d. H. configure. Umgekehrt wird m4_if während der Makroexpansion konditional bewertet, d. H. autoreconf.

if/AS_IF beeinflusst den Fluss des Skripts. m4_if beeinflusst den Inhalt des Skripts.

Das scheint jetzt offensichtlich, aber ich habe es zuerst nicht verstanden. Hoffentlich hilft das jemand anderem.

+0

Sie können Ihre eigene Antwort annehmen, BTW. –

+1

Das sagt nicht wann ich 'if' und wann' AS_IF' benutzen soll. –

+0

Ich denke, der Konsens besteht darin, 'AS_IF' immer' if' zu verwenden, weil Sie besser zitieren, usw. – tprk77

2

Der andere Vorteil von AS_IF besteht darin, dass Makros, die von Makros in den Verzweigungen benötigt werden, vor dem Test erweitert werden, wenn sie erweitert werden.

Siehe the manual.

Verwandte Themen