xindy の make 可能に

先日から書いている pTeXLive の話だが、今までは xindy の make ができていなかった。今日は休みでもあるので、この問題を解決しておくことにする。

xindy はソースの生成に clisp を使っているので、当然だが clisp 周りはインストールしてから行う。まず pTeXLive を stage2 まで make しておいてから、

/var/tmp/ptexlive2009/texlive-20091011-source/utils/xindy/rte/ordrules/ordrulei.lsp
に patch をあてる。この問題に関しては、Debian GNU/Linux のバグトラックに以下のような情報がある:
Debian Bug report logs - #467585
xindy: FTBFS: ordrulei.c:24: error: 'clisp_dirent_off_t' undeclared (first use in this function)
ので、ここに出ているスクリプトを元にして、以下のように patch を作成した。
--- ordrulei.lsp.orig 2010-11-03 13:55:04.110703835 +0900
+++ ordrulei.lsp 2010-11-03 13:56:18.318250541 +0900
@@ -15,6 +15,30 @@

(c-lines "#include \"ordrules.h\"~%")

+; clisp does not produce these include calls
+(c-lines
+ (concatenate 'string "#include <termios.h>~%"
+ "#include <bits/ipctypes.h>~%"
+ "#include <stddef.h>~%"))
+
+; The following lines are the lines 1845 to 1858 from
+; http://clisp.cvs.sourceforge.net/clisp/clisp/modules/bindings/glibc/linux.lisp?revision=1.25&view=markup
+
+;;; ============================== <dirent.h> ================================
+(c-lines "#include <dirent.h>~%")
+
+;;; ----------------------------- <bits/dirent.h> ---------------------------
+;; d_type is only in dirent64, not in dirent in <linux/dirent.h>,
+;; but it appears to BE required, and does appear in <bits/dirent.h>
+
+(c-lines "#ifndef __USE_FILE_OFFSET64
+typedef __ino_t clisp_dirent_ino_t;
+typedef __off_t clisp_dirent_off_t;
+#else
+typedef __ino64_t clisp_dirent_ino_t;
+typedef __off64_t clisp_dirent_off_t;
+#endif~%")
+
; Common OS definitions:
(def-c-type size_t uint)

これを、たとえば ~/ordrulei.lsp.patch というファイルに保存しておいて、xindy の ordrulei.lsp に patch をあてる。

$ cd /var/tmp/ptexlive2009/texlive-20091011-source/utils/xindy/rte/ordrules
$ patch < ~/ordrulei.lsp.patch
patch をあてた後は make stage3 を実行すればコンパイルが行われる。

2010/11/03(Wed) 14:09:45 | コンピュータ&インターネット

Re:xindy の make 可能に

後記。ここに書かれていることは obsolete です。
もし日本語で TeX / LaTeX を使われたい方は、
http://www.fugenji.org/~thomas/texlive-guide/
を御参照下さい。
Thomas(2011/10/02(Sun) 13:14:57)
Tittle: Name:

Profile

T.T.Ueda
Tamotsu Thomas UEDA

茨城県水戸市生まれ。

横山大観がかつて学んだ小学校から、旧水戸城址にある中学、高校と進学。この頃から音楽を趣味とするようになる。大学は、学部→修士→博士の各課程に在籍し、某省傘下の研究所に就職、その2ヵ月後に学位を授与される(こういう経緯ですが最終学歴は博士課程「修了」です)。職場の隣の小学校で起こった惨劇は未だに心に深く傷を残している。

その後某自動車関連会社の研究法人で国の研究プロジェクトに参画、プロジェクト終了後は数年の彷徨を経て、某所で教育関連業務に従事。

New Entries

Comment

Categories

Archives(890)

Link

Search

Free

e-mail address:
e-mail address