namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: i18n (Re: gettext)
解決しました。
Ryuji Abe <raeva@xxxxxxxxxxxx> wrote:
>> これからcygwinの方もチェックします。
>
>configureを走らせてみましたが、Makefile及びsrc/Makefileには
>ちゃんと、
>INTLDEPS = $(top_builddir)/intl/libintl.a
>INTLLIBS = $(top_builddir)/intl/libintl.a
>INTLOBJS = $(GETTOBJS)
>が入っています。src/MakefileのLDADD行も
>LDADD = $(top_builddir)/intl/libintl.a
>と置き換わっております。
手元の環境でも /usr/local/lib/libintl.a が存在しない状態では
INTLDEPS = $(top_builddir)/intl/libintl.a
INTLLIBS = $(top_builddir)/intl/libintl.a
INTLOBJS = $(GETTOBJS)
LDADD = $(top_builddir)/intl/libintl.a
を設定してくれます。つまり、 Namazu の configureは
* /usr/local/lib などに既存の libintl.a が存在する
* かつ、 libc に gettext が含まれない
状況 (うちの環境) でのみ問題が起きるようです。しかし、
sh-utils-2.0 の ./configure はこの状況でもきちんと設定してく
れます。
試しに sh-utils-2.0 の aclocal.m4 をコピーして autoreconf &&
rm config.cache && ./configure したところ、
/usr/local/lib/libintl.a が存在するときに src/Makefile にき
ちんと
LIBS = -lm -lintl
を設定してくれました (すばらしい)。というわけで、
sh-utils-2.0 の aclocal.m4 を参考に Namazu の aclocal.m4 を
修正して autoreconf && cvs commit しておきました。これで
* /usr/local/lib などに既存の libintl.a が存在する
* かつ、 libc に gettext が含まれない
ときに起こる問題は解決したはずです。が、もしかしたら他の環境
では逆に問題が起きてしまうかもしれません。動作確認をしてもら
えますか?
参考までに aclocal.m4 の差分をメイル末尾に添付しておきます。
p.s.
安部さんは automake 1.4a (CVSで取ってこれる最新版) を使って
いますね。私もそうしようかな? (autocon/automake ともに最新版
は CVS で取得済みです)
-- Satoru Takabayashi
Index: aclocal.m4
===================================================================
RCS file: /circus/cvsroot/namazu/aclocal.m4,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -c -r1.3.2.4 -r1.3.2.5
*** aclocal.m4 1999/09/19 03:55:10 1.3.2.4
--- aclocal.m4 1999/09/21 01:06:15 1.3.2.5
***************
*** 1,4 ****
! dnl aclocal.m4 generated automatically by aclocal 1.4
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
--- 1,4 ----
! dnl aclocal.m4 generated automatically by aclocal 1.4a
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
***************
*** 22,27 ****
--- 22,29 ----
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
+ dnl We require 2.13 because we rely on SHELL being computed by configure.
+ AC_PREREQ([2.13])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
***************
*** 42,47 ****
--- 44,69 ----
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+ dnl Set install_sh for make dist
+ install_sh="$missing_dir/install-sh"
+ test -f "$install_sh" || install_sh="$missing_dir/install.sh"
+ AC_SUBST(install_sh)
+ dnl We check for tar when the user configures the end package.
+ dnl This is sad, since we only need this for "dist". However,
+ dnl there's no other good way to do it. We prefer GNU tar if
+ dnl we can find it. If we can't find a tar, it doesn't really matter.
+ AC_CHECK_PROGS(AMTAR, gnutar gtar tar)
+ dnl We need awk for the "check" target. The system "awk" is bad on
+ dnl some platforms.
+ AC_REQUIRE([AC_PROG_AWK])
+ AMTARFLAGS=
+ if test -n "$AMTAR"; then
+ if $SHELL -c "$AMTAR --version" > /dev/null 2>&1; then
+ dnl We have GNU tar.
+ AMTARFLAGS=o
+ fi
+ fi
+ AC_SUBST(AMTARFLAGS)
AC_REQUIRE([AC_PROG_MAKE_SET])])
#
***************
*** 151,167 ****
if test "$gt_cv_func_gettext_libc" != "yes"; then
AC_CHECK_LIB(intl, bindtextdomain,
! [AC_CACHE_CHECK([for gettext in libintl],
! gt_cv_func_gettext_libintl,
! [AC_CHECK_LIB(intl, gettext,
! gt_cv_func_gettext_libintl=yes,
! gt_cv_func_gettext_libintl=no)],
! gt_cv_func_gettext_libintl=no)])
fi
if test "$gt_cv_func_gettext_libc" = "yes" \
! || test "$gt_cv_func_gettext_libintl" = "yes"; then
! AC_DEFINE(HAVE_GETTEXT)
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
if test "$MSGFMT" != "no"; then
--- 173,185 ----
if test "$gt_cv_func_gettext_libc" != "yes"; then
AC_CHECK_LIB(intl, bindtextdomain,
! [AC_CHECK_LIB(intl, gettext)])
fi
if test "$gt_cv_func_gettext_libc" = "yes" \
! || test "$ac_cv_lib_intl_gettext" = "yes"; then
! AC_DEFINE(HAVE_GETTEXT, 1,
! [Define to 1 if you have gettext and don't want to use GNU gettext.])
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
if test "$MSGFMT" != "no"; then
***************
*** 261,266 ****
--- 279,288 ----
DATADIRNAME=share
nls_cv_header_intl=intl/libintl.h
nls_cv_header_libgt=intl/libgettext.h
+ fi
+ if test -z "$nls_cv_header_intl"; then
+ # Clean out junk possibly left behind by a previous configuration.
+ rm -f intl/libintl.h
fi
AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
AC_OUTPUT_COMMANDS(