/* Copyright 1994 NEC Corporation, Tokyo, Japan. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without * fee, provided that the above copyright notice appear in all copies * and that both that copyright notice and this permission notice * appear in supporting documentation, and that the name of NEC * Corporation not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior * permission. NEC Corporation makes no representations about the * suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ /* * このファイルでは、各ファイルをインストールするディレクトリなどを * 決定するためのマクロを設定します。 * * ※コンパイルを行う前に必ず Canna.conf の設定を行ってください。 * * 以下に示すマクロを設定して下さい。 * * cannaBinDir; * コマンドをインストールするディレクトリです。 * このディレクトリにコマンドサーチパスを張るように * してください。 * cannaSrvDir; * cannaserver および cannakill をインストールするディレクトリ * です。 * libCannaDir; * libcanna 等ライブラリ等をインストールするディレクトリです。 * cannaLibDir; * 『かんな』の種々のファイルをインストールするディレクトリです。 * cannaManDir; * 『かんな』関連オンラインマニュアルのインストールディレクトリ * です。 * cannaIncDir; * ヘッダファイルをインストールするディレクトリです。 * ErrDir; * ログファイルをインストールするディレクトリです。 * ログファイルは、かな漢字変換サーバがエラーメッセージを * 出力するファイルです。 * * wcharDefinition; * -DCANNA_WCHAR を定義すると、OS の wchar_t の代わりに * 『かんな』の wchar_t を使うことを表します。wchar_t は * 定義されていても日本語 locale 環境が定義されていない * 場合もこの定義をして下さい。 * * Wlib * wchar_t 関連の関数が入っているライブラリを指定します。 * libc に入っている場合にはブランクのままにしておきます。 * System V では通常 -lw です。 * * JapaneseLocale; * Locale を使うときに日本語の環境を表す LANG の値を入れます。 * * cannaOwner: * 辞書とかな漢字変換サーバのオーナを指定します。 * * cannaGroup: * 辞書とかな漢字変換サーバのグループを指定します。 * * pointerIntegerDef: * ポインタのサイズが long のサイズよりも大きい場合で、 * long long 型が存在する場合はここに -DBIGPOINTER を定義 * してください(例えば NEC SX3 の SUPER-UX の場合)。 * * sharedLibExtension: * shared library の拡張子を指定します。通常は so.1 など * が使われます。 HP-UX では sl です。 * * cannaDsoRev: * shared library のリビジョンを指定します。so.1 なら 1 * です。so.1.1 のような場合は、 1.1 と指定します。 * * pubdicDir: * Pubdic+ では最新の辞書が準備されています。そちらを利用 * する場合にはここでそのディレクトリを指定します。Canna * の make をする前に、指定されたディレクトリに iroha.t * が作られている状態になっているようにしてください。 * * engineSwitch: * jserver と cannaserver の両方を使いたい場合には * engineSwitch を #define します。これを #define した場 * 合には以下の2つも設定が必要です。 * * cannaLight: * 『かんな』を少しでも軽くしたい人は以下を 1 にして下さ * い。古いプロトコルを組み込まなくなります。デフォルトは * 1 です。 * * USE_OBSOLETE_STYLE_FILENAME: * 漢字辞書名、ローマ字テーブル名を Version 3.4 以前の名 * 前のままにする場合には、このマクロを #define してくだ * さい。ちなみに、Version 3.5 から、ローマ字か名変換テー * ブルの拡張子が .kp から .cbp へ、テキスト辞書ファイル、 * バイナリ辞書ファイル、辞書学習ファイルの拡張子がそれぞ * れ、.t, .d, .fq から .cbd, .ctd, .cld に変更になりまし * た。 * * kinput2SrcDir: (engineSwitch をする時のみ必要) * kinput2 のソースが存在するディレクトリを指定します。 * wnn4SrcDir: (engineSwitch をする時のみ必要) * Wnn4 のソースが存在するディレクトリを指定します。 * sj3SrcDir: (engineSwitch をする時のみ必要) * Sj3 のソースが存在するディレクトリを指定します。 * * 《以下の2つは修正不要とは思いますが説明をしておきます》 * * DicDir; * 辞書をインストールするディレクトリです。 * * JAPANESEMAN; * マニュアルとして日本語マニュアルをインストールする時に * はこのマクロを #define します。英語マニュアルは十分に * そろっていないので #define しておいてください。 */ /* * $Id: Canna.conf,v 3.13 1996/11/28 10:27:01 kon Exp $ */ cannaBinDir = /usr/local/canna/bin cannaSrvDir = /usr/local/canna/bin cannaLibDir = /usr/local/canna/lib cannaManDir = /usr/local/canna/man cannaIncDir = /usr/local/canna/include/canna libCannaDir = /usr/local/lib ErrDir = /var/spool/canna wcharDefinition = -DCANNA_WCHAR Wlib = JapaneseLocale = ja cannaOwner = canna cannaGroup = canna cannaOwnerGroup = -o $(cannaOwner) -g $(cannaGroup) pointerIntegerDef = cannaDsoRev = 1 /* SunOS 4.x をお使いの方で shared object を利用する場合には cannaDsoRev = 1.1 と指定してください。また、FreeBSD を利用する場合は、 cannaDsoRev = 1.0 と指定してください。 */ sharedLibExtension = so.$(cannaDsoRev) /* iroha.t の場所を指定。pubdic+ があればそちらを指定します。 */ pubdicDir = $(CANNAROOT)/dic/ideo/pubdic /* 以下の3つは root にならないでインストールするのであれば echo に 変えてください。 */ CHOWN = chown CHGRP = chgrp CHMOD = chmod /* 日本語マニュアルを使わないのであればコメントアウト */ #define JAPANESEMAN /* locale ディレクトリを持っている場合は以下を記述する */ /* #define LOCALE_DIR /usr/lib/locale */ /* エンジンスイッチ機能を使うのであればコメントをはずす */ /* ※注 Canna version 3.5 ではコメントをはずさないでください */ /* #define engineSwitch */ /* 以下エンジンスイッチがらみ */ #ifdef engineSwitch kinput2SrcDir = /work/X11R5/contrib/im/kinput2 wnn4SrcDir = /work/X11R5/contrib/im/Xsi/Wnn sj3SrcDir = /work/X11R5/contrib/im/Ximp/sony/sj3 DLLIB = -ldl cannaDsoRevDef = -DCANNA_DSOREV=\"$(cannaDsoRev)\" #endif /* 『かんな』を少しでも軽くしたい人は以下を 1 にして下さい。 cannaserver、libcanna に EUC プロトコル処理部を組み込みません */ cannaLight = 1 /* 漢字辞書名、ローマ字テーブル名を以前の名前のままにする場合には、 USE_OBSOLETE_STYLE_FILENAME を定義する */ /* #define USE_OBSOLETE_STYLE_FILENAME */ /* rename() が存在しない場合には 1 にして下さい */ dontHaveRename = 0 /* * インストール済みの共有ライブラリを用いて Canna の * コマンド類をリンクする時は、次を YES にしてくだい。 */ /* #define UseInstalledLibCanna YES */ #define UseInstalledLibCanna NO DicDir = $(cannaLibDir)/dic #ifdef NeXT #define NO_X_ENV #endif /* ここから下は変更不要です */ /* * これらについては も見てくだい。 */ /* #define DoSharedLib NO SUN でうまくないのでちょっと NO にしておく */ #ifndef DoSharedLib #define DoSharedLib HasSharedLibraries #endif #define DoNormalLib YES #define DoDebugLib NO #define DoProfileLib NO #ifndef UseInstalledLibCanna #define UseInstalledLibCanna NO #endif /* UseInstalledLibCanna */ #if UseInstalledLibCanna # if DoSharedLib DEPCANNALIB = $(libCannaDir)/libcanna.$(sharedLibExtension) # else #ifdef __EMX__ DEPCANNALIB = $(libCannaDir)/canna.a #else DEPCANNALIB = $(libCannaDir)/libcanna.a #endif # endif CANNALIB = -L$(libCannaDir) -lcanna $(DLLIB) #else /* ! UseInstalledLibCanna */ # if DoSharedLib DEPCANNALIB = $(CANNASRC)/libcanna.$(sharedLibExtension) # else #ifdef __EMX__ DEPCANNALIB = $(CANNASRC)/canna.a #else DEPCANNALIB = $(CANNASRC)/libcanna.a #endif # endif CANNALIB = -L$(CANNASRC) -lcanna $(DLLIB) #endif /* UseInstalledLibCanna */ #if UseInstalledLibCanna # if DoSharedLib DEPCANNALIB16 = $(libCannaDir)/libcanna16.$(sharedLibExtension) # else DEPCANNALIB16 = $(libCannaDir)/libcanna16.a # endif CANNALIB16 = -L$(libCannaDir) -lcanna16 $(DLLIB) #else /* ! UseInstalledLibCanna */ # if DoSharedLib DEPCANNALIB16 = $(CANNASRC)/libcanna16.$(sharedLibExtension) # else DEPCANNALIB16 = $(CANNASRC)/libcanna16.a # endif CANNALIB16 = -L$(CANNASRC) -lcanna16 $(DLLIB) #endif /* UseInstalledLibCanna */ /* * ここから下は変更しないようにしてください。 */ CANNASERVER_DEFINES = $(wcharDefinition) RK_DEFINES = $(pointerIntegerDef) RKC_DEFINES = $(wcharDefinition) UILIB_DEFINES = $(wcharDefinition) $(pointerIntegerDef) \ $(cannaDsoRevDef) XN_DEFINES = $(wcharDefinition) $(pointerIntegerDef) SAMPLE_DEFINES = $(wcharDefinition) $(pointerIntegerDef) SCRIPTS_DEFINES = /* The following is based on the macro definition in mit/config/Imake.rules */ #ifdef JAPANESEMAN MANSRCSUFF = jmn #else MANSRCSUFF = man #endif /* USE_OBSOLETE_STYLE_FILENAME を定義するための定義 */ #ifdef USE_OBSOLETE_STYLE_FILENAME useObsoleteFilename = -DUSE_OBSOLETE_STYLE_FILENAME #endif #ifndef __EMX__ MANUALSED = $(CANNAROOT)/misc/manual.sed #define ConvertPathName(dst,src) @@\ dst:: src $(MANUALSED) @@\ sed -f $(MANUALSED) src > dst @@\ $(MANUALSED):: $(CANNAROOT)/Canna.conf @@\ (echo "s%@(cannaBinDir)%$(cannaBinDir)%g"; \ @@\ echo "s%@(cannaLibDir)%$(cannaLibDir)%g"; \ @@\ echo "s%@(cannaIncDir)%$(cannaIncDir)%g"; \ @@\ echo "s%@(ErrDir)%$(ErrDir)%g") > $(MANUALSED) @@\ clean:: @@\ $(RM) $(MANUALSED) #else MANUALSED = manual.sed #define ConvertPathName(dst,src) @@\ dst:: src $(MANUALSED) @@\ sed -f $(MANUALSED) src > dst @@\ $(MANUALSED):: $(CANNAROOT)/Canna.conf @@\ echo "s%@(cannaBinDir)%$(cannaBinDir)%g" > $(MANUALSED) @@\ echo "s%@(cannaLibDir)%$(cannaLibDir)%g" >> $(MANUALSED) @@\ echo "s%@(cannaIncDir)%$(cannaIncDir)%g" >> $(MANUALSED) @@\ echo "s%@(ErrDir)%$(ErrDir)%g" >> $(MANUALSED) @@\ clean:: @@\ $(RM) $(MANUALSED) #endif #ifdef InstallManPageLong #undef InstallManPageLong #endif #define InstallManPageLong(file,destdir,dest) @@\ ConvertPathName(file.tmp,file.$(MANSRCSUFF)) @@\ install.man:: file.tmp @@\ MakeDir($(DESTDIR)destdir/man$(MANSUFFIX)) @@\ $(INSTALL) -c $(INSTMANFLAGS) file.tmp $(DESTDIR)destdir/man$(MANSUFFIX)/dest.$(MANSUFFIX) @@\ $(RM) file.tmp @@\ clean:: @@\ $(RM) file.tmp #ifdef InstallManPage #undef InstallManPage #endif #define InstallManPage(file,destdir) @@\ InstallManPageLong(file,destdir,file) #ifdef InstallLibManPageLong #undef InstallLibManPageLong #endif #define InstallLibManPageLong(file,destdir,dest) @@\ ConvertPathName(file.tmp,file.$(MANSRCSUFF)) @@\ install.man:: file.tmp @@\ MakeDir($(DESTDIR)destdir/man$(LIBMANSUFFIX)) @@\ $(INSTALL) -c $(INSTMANFLAGS) file.tmp $(DESTDIR)destdir/man$(LIBMANSUFFIX)/dest.$(LIBMANSUFFIX) @@\ $(RM) file.tmp @@\ clean:: @@\ $(RM) file.tmp #ifdef InstallLibManPage #undef InstallLibManPage #endif #define InstallLibManPage(file,destdir) @@\ InstallLibManPageLong(file,destdir,file) #ifdef InstallLibManPageAliases #undef InstallLibManPageAliases #endif #define InstallLibManPageAliases(file,destdir,aliases) @@\ install.man:: @@\ @(TMP=/tmp/tmp.$$$$; \ @@\ $(RM) $${TMP}; \ @@\ echo .so `basename destdir/man$(LIBMANSUFFIX)`/file.$(LIBMANSUFFIX) > $${TMP}; \ @@\ for i in aliases; do (set -x; \ @@\ $(INSTALL) -c $(INSTMANFLAGS) $${TMP} $(DESTDIR)destdir/man$(LIBMANSUFFIX)/$$i.$(LIBMANSUFFIX)); \ @@\ done; \ @@\ $(RM) $${TMP}) #ifndef MakeDirectoriesLong #define MakeDirectoriesLong(step,dirs,owner,group) @@\ step:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ DirFailPrefix@for i in dirs; do if [ -d $(DESTDIR)$$i ]; then \ @@\ set +x; else (set -x; $(MKDIRHIER) $(DESTDIR)$$i;$(CHOWN) owner $(DESTDIR)$$i;$(CHGRP) group $(DESTDIR)$$i); fi \ @@\ done #endif /* MakeDirectories */ /* 以下は IBM 基礎研の古畑さん(furuhata@trl.ibm.co.jp)により書かれました */ #if defined(RsArchitecture) && DoSharedLib #ifdef SharedLibraryTarget #undef SharedLibraryTarget #endif /* SharedLibraryTarget */ #define SharedLibraryTarget(libname,rev,solist,down,up) @@\ AllTarget(Concat(lib,libname.a)) @@\ @@\ Concat(lib,libname.a): solist $(UNSHAREDOBJS) @@\ $(RM) $@~ shr.o @@\ (cd down; $(AR) up/$@~ solist) @@\ dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' > $@.syms @@\ $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:$@.syms $(REQUIREDLIBS) -lc -lm -L$(libCannaDir) @@\ $(RM) $@~ @@\ $(AR) $@~ shr.o $(UNSHAREDOBJS) @@\ $(RM) $@ shr.o @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) Concat(lib,libname.a) LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -L$(libCannaDir) #endif /* RsArchitecture */ /* R6 の LinkBuildLibrary の上書き */ #ifdef LinkBuildLibrary #undef LinkBuildLibrary #endif #define LinkBuildLibrary(lib) $(_NULLCMD_) /* 以下は config.h を作るルール */ #ifdef __EMX__ #define MakeCannaConfigH(dst) @@\ dst:: Canna.conf @@\ echo "/* for cannaserver */" > junk @@\ echo "#define DICHOME '$(DicDir)'" >> junk @@\ echo "#define ERRDIR '$(ErrDir)'" >> junk @@\ echo "#define USE_INET_SOCKET" >> junk @@\ echo "/* for lib/RKC */" >> junk @@\ echo "#define JAPANESE_LOCALE '$(JapaneseLocale)'" >> junk @@\ echo "#define CANNAHOSTFILE '$(cannaLibDir)/cannahost'" >> junk @@\ echo "/* for lib/canna */" >> junk @@\ echo "#define CANNALIBDIR '$(cannaLibDir)'" >> junk @@\ echo "/* for scripts */" >> junk @@\ echo "#define CANNABINDIR $(cannaBinDir)" >> junk @@\ echo "/* others */" >> junk @@\ echo "#define CANNA_LIGHT $(cannaLight)" >> junk @@\ echo "#define DONT_HAVE_RENAME $(dontHaveRename)" >> junk @@\ echo "#ifdef nec" >> junk @@\ echo "#undef nec" >> junk @@\ echo "#endif" >> junk @@\ sed -e "s/'/\\\"/" -e "s/'/\\\"/" < junk > $@ @@\ $(RM) junk #else #define MakeCannaConfigH(dst) @@\ dst:: Canna.conf @@\ (echo "/* for cannaserver */";\ @@\ echo "#define DICHOME \"$(DicDir)\""; \ @@\ echo "#define ERRDIR \"$(ErrDir)\""; \ @@\ echo "#define USE_UNIX_SOCKET"; \ @@\ echo "#define USE_INET_SOCKET"; \ @@\ echo "/* for lib/RKC */";\ @@\ echo "#define JAPANESE_LOCALE \"$(JapaneseLocale)\"";\ @@\ echo "#define CANNAHOSTFILE \"$(cannaLibDir)/cannahost\"";\ @@\ echo "/* for lib/canna */";\ @@\ echo "#define CANNALIBDIR \"$(cannaLibDir)\""; \ @@\ echo "/* for scripts */";\ @@\ echo "#define CANNABINDIR $(cannaBinDir)"; \ @@\ echo "/* others */";\ @@\ echo "#define CANNA_LIGHT $(cannaLight)"; \ @@\ echo "#define DONT_HAVE_RENAME $(dontHaveRename)"; \ @@\ echo "#ifdef nec"; \ @@\ echo "#undef nec"; \ @@\ echo "#endif") > $@ #endif