Autotools

こんなのがあった。
Dear GNU Autohell...could you please die? : programming

やっぱAutotoolsってめんどくさいって思われてんのか!って思った。
俺もこのスレ見てめんどくさいしもう使わないでいいやと思った
でもm4の存在を知れたのは良かったと思う。本当に存在だけだけど。
って思ったけどそういや一番初めに知ったのはこのページのおかげか。


あんまり使ってないので言うのもなんだけど、Autotoolsの何がめんどくさいかって、Makefileを吐き出すことが目的なのに、./configureを生成するだけでもかなりの行程を踏まなきゃならないことと、それを生成するために必要なツール群とツールごとに違う文法を覚えなきゃならないこと。
覚えてるだけでもautomake, aclocal, autoconf, autoreconf, autoheader, autoscanだとか。
しかもこれらの中で本当に必要なのは半分ぐらいで、残りは行程のほんの一部分を省略するためだけのユーティリティコマンドなこと。
あと./configureを生成するのにも、ポータブルなシェルスクリプトを吐き出すために並々ならぬ努力*1を(autotools側が)してる。
正直あそこまで「泥臭い努力」をするなら絶対他に何かいい方法があったはず。
当時はそれしか見つけられなかったけど、今ならもっとうまいやり方がきっとある。


まぁでも現在でもそれは見つけられてないよねっていうのはまぁずっとautotoolsを使ってきたし、正直そこまでしてポータブルにする意味あるの?とか。
どうせポータブルとかいうならWindowsサポートしてよとか。
いやめちゃくちゃな事言ってるのは分かるけど、Linux*2Unix*3の区別が曖昧な平成生まれゆとり世代LinuxerとしてはLinuxでポータブルって何?という感じ。
技量的な意味でもレイヤー的な意味でもそういうレベルの人が増えてきたことも影響あるのかな。




・・・あーなんか頭が痛い。



追記:
ふと下にページをスクロールしたら思いっきり./configureの恩恵に預かってるこの記事を見つけて吹いた。
確かに./configure時にオプションを取れるってのはCとかC++の言語にとって結構重要だよね。


追記2:
書こうと思って忘れてたけどGo言語もAutotools使ってなかったよね。
でもやたらめんどくさかった気が。
なんかいい方法ないだろうか。

*1:例えば[コマンドよりもtestコマンドを使うだとか、ifの!は実装されてるとは限らないので「if test !...」とかしなきゃならない。他にも色々あるけど「知りたければ」この本参照

*2:えーと。。。DebianってLinuxだっけ?

*3:BSD...とか?