Next: lib/gettext.h, Previous: Makefile, Up: Adjusting Files [Contents][Index]
メインのMakefile.inで行ったいくつかの修正は、あなたのパッケージソースのMakefile.in(ここではsrc/サブディレクトリーにあると仮定します)でも必要です。以下は、src/Makefile.in内で必要な修正のすべてです:
PACKAGE = @PACKAGE@ VERSION = @VERSION@
top_srcdir
を定義する必要があります。これはcpp
のインクルードファイルのための定義で、以下の行を追加するだけです:
top_srcdir = @top_srcdir@
subdir
を‘src’と定義したいと思うかもしれません。以下は、このゴール‘dist:’のために必要な定義です:
subdir = src
main
関数は通常、bindtextdomain
(Triggeringを参照してください)を呼び出します:
bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE);
プログラムにLOCALEDIRを知らせるために、以下の行をMakefile.inに追加します(Autoconfのバージョン2.60以降の場合):
datadir = @datadir@ datarootdir= @datarootdir@ localedir = @localedir@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
Autoconfのバージョンが2.60より古い場合は、以下の行を追加します:
datadir = @datadir@ localedir = $(datadir)/locale DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
@datadir@
のデフォルトは‘$(prefix)/share’なので、$(localedir)
のデフォルトは、‘$(prefix)/share/locale’になることに注意してください。
@LIBINTL@
または@LTLIBINTL@
が使われることを保証する必要があります。@LIBINTL@
はlibtool
なしで使用され、@LTLIBINTL@
はlibtool
とともに使用されます。これを達成するには、以下のようにこれらをLIBS
で管理します:
LIBS = @LIBINTL@ @LIBS@
GNU
gettext
でインターナショナライズされたパッケージには、ヘルパー関数を含むライブラリーを、ディレクトリーlib/にビルドするものがたくさんあります(少なくともGNU
gettext
ライブラリー自身が必要とするいくつかの関数が必要です)。しかしlib/の中の関数のいくつかは、ユーザーに翻訳が必要なメッセージをあたえる関数です。これに注意してサポートのためのライブラリー
(libsupport.aとしましょう)を、上記の例の@LIBINTL@
と@LIBS@
の前に配置します:
LIBS = ../lib/libsupport.a @LIBINTL@ @LIBS@
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist: Makefile $(DISTFILES) for file in $(DISTFILES); do \ ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir) || exit 1; \ done
GNU
automake
を使用している場合、Makefile.inはMakefile.amから自動的に生成されるので、最初の3つと最後の変更は必要ないことに注意してください。Makefile.amに必要な変更は以下になります:
<module>_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
またはコンパイル単位については以下のようにMakefile.amに記述します。
AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
これはすべてのモジュール、またはコンパイル単位のためのものです。さらにAutoconfのバージョンが2.60より古いものを使用している場合、以下の行を追加して‘localedir’を定義します:
localedir = $(datadir)/locale
@LIBINTL@
または@LTLIBINTL@
を使うことを保証するために、以下をMakefile.amに追加します:
<program>_LDADD = @LIBINTL@
特定のプログラムごとには上記のように記述します。
LDADD = @LIBINTL@
これはすべてのプログラムの場合です。プログラムのリンクにlibtool
を使うときは、プログラム用に@LIBINTL@ではなく、@LTLIBINTL@を使う必要があることを忘れないでください。
gettextize
により作成されたものである場合は、以下のような行をMakefile.amに追加して、すべての状況において、Cプリプロセッサーがインクルード
ファイルをそこから検索することを保証するようにしてください:
AM_CPPFLAGS = -I../intl -I$(top_srcdir)/intl