[Emacs][Ubuntu] Ubuntu での gnuserv-3.12.7 のコンパイル
gnuserv-3.12.7をUbuntuでコンパイルしようとしてはまる。よく見たら、configure の関数の存在確認でことごとく失敗している。strerror がないとか言ってる。んなわけない。
で、いろいろ見てたら aclocal.m4 にこんな記述が
if test "$have_x" = yes; then o_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I$x_includes -L$x_libraries" fi
多分、ほとんどのLinuxはX11関係のヘッダを/usr/X11R6/include あたりにインストールしていると思うのだけれども、Ubuntu の場合 /usr/include にインストールされて標準のインクルードパスに含まれているため、$x_includesが空になる。で、最終的にチェック用のコンパイルコマンドが
gcc -c -g -O2 -I conftest.c
とかになって、ソースファイルが指定されていない状態になっているという罠。
CPPFLAGS に -L オプションを指定しているあたり aclocal.m4 自体がかなり腐っている気がするが、とりあえず以下のようなパッチと autoconf 再実行でお茶を濁す。
--- aclocal.m4.orig 2006-05-07 22:31:52.500000000 -0400 +++ aclocal.m4 2006-05-05 00:09:52.000000000 -0400 @@ -80,7 +80,13 @@ if test "$require_xauth" != "no" ; then if test "$have_x" = yes; then o_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$x_includes -L$x_libraries" + if test "$x_includes" != "" ; then + CPPFLAGS="$CPPFLAGS -I$x_includes" + fi + + if test "$x_libraries" != "" ; then + LDFLAGS="-L$x_libraries" + fi fi AC_CHECK_HEADER(X11/Xauth.h,[use_xauth=yes],[use_xauth=no]) @@ -94,8 +100,12 @@ AC_DEFINE(HAVE_XAUTH) LIBXAUTH="-lXau" if test "$have_x" = yes ; then - LIBXAUTH="-L$x_libraries $LIBXAUTH" - CPPFLAGS="$CPPFLAGS -I$x_includes" + if test "$x_libraries" != ""; then + LIBXAUTH="-L$x_libraries $LIBXAUTH" + fi + if test "$x_includes" != ""; then + CPPFLAGS="$CPPFLAGS -I$x_includes" + fi fi elif test "$require_xauth" = "yes" ; then AC_MSG_ERROR([Cannot find headers or libraries for XAUTH support.])
気が向いたらメールで報告するかな。ってこんなエントリ書いてる時間でメール書けよって話ではあるが。