0

したがって、このautoconfマクロを私の.m4ファイルで次のように使用する必要があります。

if SomeCondition; then

    ...do_something...

    if OtherCondition; then
        AC_MSG_ERROR([This is the error message])
    fi
fi

確かに正当な理由で、そのエラー メッセージは少し長いです。

そして今日、メッセージにさらに追加情報を追加したいと思いました。でも列を長くしたくない!だから私はそれを別の行に分割したかった. 私が最初に試したことは次のとおりです。

if SomeCondition; then
    if OtherCondition; then
        AC_MSG_ERROR([
            Blah blah blah blah blah blah blah blah.
            Or you can also do blah blah blah
            (but take in account that it will disable blah blah)
        ])
    fi
fi

もちろん、この解決策は理想的ではありません。メッセージが表示されるときに、不必要にインデントされるからです。これを修正する唯一の実際の解決策は、この醜いアプローチを使用することです。

if SomeCondition; then
    if OtherCondition; then
        AC_MSG_ERROR([
Blah blah blah blah blah blah blah blah.
Or you can also do blah blah blah
(but take in account that it will disable blah blah)
        ])
    fi
fi

しかし、私が言ったように、それは醜いです。そして、将来の開発者は、実際にそれを壊していることを知らずに、「インデントを修正する」ように変更するに違いありません。

これを行う方法はありますか、それとも最後までautotoolsを嫌いますか?

4

2 に答える 2

0

単に:

m4_define([my_m4_error],[
Blah blah blah blah blah blah blah blah.
Or you can also do blah blah blah
(but take in account that it will disable blah blah)
])

AS_IF([SomeCondition],[AS_IF([OtherCondition],[AC_MSG_ERROR([my_m4_error])])])

またはインデントされているため:

m4_define([my_m4_error],[m4_joinall([m4_newline([])],[],
          [Blah blah blah blah blah blah blah blah.],
          [Or you can also do blah blah blah],
          [but take in account that it will disable blah blah])])
于 2014-01-23T15:51:26.910 に答える