きしもとと申します 手元の FreeBSD 環境 (Heimdal (Kerberos 5 の実装のひとつ) がインストール されています) で、ports の sylpheed-3.1.1 をビルドすると、以下のように コンパイルが失敗します(途中、長い行を継続にしています)。
if cc -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"Sylpheed\" -D_THREAD_SAFE -D_REENTRANT -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/gpgme -I/usr/local/include -I/usr/local/include -I../libsylph -DLOCALEDIR=\""/usr/local/share/locale"\" -DMANUALDIR=\""/usr/local/share/doc/sylpheed/manual"\" -DFAQDIR=\""/usr/local/share/doc/sylpheed/faq"\" -DPLUGINDIR=\""/usr/local/lib/sylpheed/plugins"\" -DTARGET_ALIAS=\""amd64-portbld-freebsd8.2"\" -DSYSCONFDIR=\""/usr/local/etc"\" -I/usr/local/include -O2 -pipe -fno-strict-aliasing -I/usr/local/include \ -D_THREAD_SAFE -D_REENTRANT -I/usr/local/include/gtkspell-2.0 -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -D_REENTRANT -I/usr/local/include/dbus-1.0 -I/usr/local/include/dbus-1.0/include -I/usr/local/include/glib-2.0 -D_REENTRANT -I/usr/local/include/glib-2.0 -MT ldif.o -MD -MP -MF ".deps/ldif.Tpo" \ -c -o ldif.o `test -f 'ldif.c' || echo './'`ldif.c; \ then mv -f ".deps/ldif.Tpo" ".deps/ldif.Po"; \ else rm -f ".deps/ldif.Tpo"; exit 1; \ fi ldif.c: In function 'ldif_conv_base64': ldif.c:638: error: too many arguments to function 'base64_decode' gmake[4]: *** [ldif.o] Error 1 gmake[4]: Leaving directory `/export/ports/mail/sylpheed3/work/sylpheed-3.1.1/src' gmake[3]: *** [all-recursive] Error 1 gmake[3]: Leaving directory `/export/ports/mail/sylpheed3/work/sylpheed-3.1.1/src' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/export/ports/mail/sylpheed3/work/sylpheed-3.1.1/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/export/ports/mail/sylpheed3/work/sylpheed-3.1.1' gmake: *** [all] Error 2 *** Error code 1 Stop in /export/ports/mail/sylpheed3. *** Error code 1 Stop in /export/ports/mail/sylpheed3. 原因は、Heimdal をインストールすると作られる /usr/local/include/base64.h が存在するために、意図しない形でそちらが インクルードされてしまっているためです。 一時的に /usr/local/include/base64.h をリネームするなどするか、以下の パッチでインクルードファイルの探索順を変えて、回避して無事ビルド できました。しかし(続く) $ cat files/patch-src-Makefile.in --- src/Makefile.in.ORG 2011-08-17 13:13:09.000000000 +0900 +++ src/Makefile.in 2011-08-17 13:13:29.000000000 +0900 @@ -345,11 +345,11 @@ INCLUDES = \ -DG_LOG_DOMAIN=\"Sylpheed\" \ + -I$(top_srcdir)/libsylph \ $(GTK_CFLAGS) \ $(GDK_PIXBUF_CFLAGS) \ $(GPGME_CFLAGS) \ - -I$(includedir) \ - -I$(top_srcdir)/libsylph + -I$(includedir) @NATIVE_WIN32_FALSE@SYLPHEED_RES = (続き)しかし、この Makefile の修正による回避が適切なものか、私には判断 できません。また、調べてみたところ Fedora のパッケージでは、基本的に /usr/local ではなく /usr 直下にインストールするためか、 /usr/include/ライブラリ名/なんとか.h という形でヘッダファイルは インストールするようになっており、このような事故は起きにくいように なっていました。そのように、ヘッダファイルのインストール側で解決する ほうがいいのかもしれません。 ともあれ、全く別のプログラムで他にも1例、全く同じパターンでビルドに 失敗する例を確認しており(未報告)、知識の共有のため、ということで ポストします。