autotools + config.nice
autotools のメモ2
configure.in に ./configure [引数] コマンドを記録する処理を加えた。
以下のコードを configure.in に追加
configure.in
#---------------------------------------------------------------- # Create config.nice #---------------------------------------------------------------- conf_file="config.nice" rm -f $conf_file cat >$conf_file<<EOF #! /bin/sh # # Created by configure EOF if test -n "$CC"; then echo "CC=\"$CC\"; export CC" >> $conf_file fi if test -n "$CFLAGS"; then echo "CFLAGS=\"$CFLAGS\"; export CFLAGS" >> $conf_file fi if test -n "$CPPFLAGS"; then echo "CPPFLAGS=\"$CPPFLAGS\"; export CPPFLAGS" >> $conf_file fi if test -n "$LDFLAGS"; then echo "LDFLAGS=\"$LDFLAGS\"; export LDFLAGS" >> $conf_file fi if test -n "$LTFLAGS"; then echo "LTFLAGS=\"$LTFLAGS\"; export LTFLAGS" >> $conf_file fi if test -n "$LIBS"; then echo "LIBS=\"$LIBS\"; export LIBS" >> $conf_file fi if test -n "$INCLUDES"; then echo "INCLUDES=\"$INCLUDES\"; export INCLUDES" >> $conf_file fi if test -n "$NOTEST_CFLAGS"; then echo "NOTEST_CFLAGS=\"$NOTEST_CFLAGS\"; export NOTEST_CFLAGS" >> $conf_file fi if test -n "$NOTEST_CPPFLAGS"; then echo "NOTEST_CPPFLAGS=\"$NOTEST_CPPFLAGS\"; export NOTEST_CPPFLAGS" >> $conf_file fi if test -n "$NOTEST_LDFLAGS"; then echo "NOTEST_LDFLAGS=\"$NOTEST_LDFLAGS\"; export NOTEST_LDFLAGS" >> $conf_file fi if test -n "$NOTEST_LIBS"; then echo "NOTEST_LIBS=\"$NOTEST_LIBS\"; export NOTEST_LIBS" >> $conf_file fi # Retrieve command-line arguments. eval "set x $[0] $ac_configure_args" shift for arg do var=`eval "echo ${arg}"` echo "\"$var\" \\" >> $conf_file done echo '"[$]@"' >> $conf_file chmod +x $conf_file
参考:APR
CC, CFLAGS 等に文字列が入っていたら、export するよう書き込み
$ac_configure_args に ./configure の引数が入ってるので、for で回して書き込み
var=eval "echo $var"
で ‘ を取り除いて書き込み
最後に “$@” を書き込んで終了。
なぜ最後に “$@” をつけるのか、はっきりとは分からず。。。
“$@"じゃなく”“だと、build_alias= など余計なものも入るので、意味はある模様。
”“ じゃなく空白なら大丈夫だった。
$@は、引数を表すものだから、./config.nice の場合、何も引数がないので、
空白すなわち \0 的な役割になるのかな?
変更したら autoreconf で configure 作り直し
$ autoreconf -i
autoreconf が使えなかったら
$ aclocal $ autoconf
configure する
$ ./configure --prefix=/usr/local/hello
config.nice が出来ているか確認
目視。or $ ls | grep nice
次からの configure は、これだけでOK。
$ ./config.nice
実にらくちん、手間いらず!(笑
–with とかいっぱいつけてると次に ./configure するときよくオプション忘れてるんですよね。
なので、結構重要な機能だと個人的には思ってます。
ということで config.nice 導入メモでした。