日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3

Making Emacs-20 on Mklinux/Linuxppc

Emacs-20.2 や、 Emacs-20.3 を MkLinux/Linuxppc で用意する話です。 (通常の OS では、patch を当てることなく組立てられるはずです)。 以前の 20.2 の版を組立てることも下の方に書いてあります。
FTP site: Emacs-20.3/leim-20.3 (一例)
ftp://ftp.iij.ad.jp/pub/GNU
Emacs-20.3 + Canna + Wnn + Sj3
http://www.ki.nu/software/emacs-20/20.3+canna+wnn+sj3.shtml
Emacs-20 + Gnus + Mew の環境を作ろう
http://www.ki.nu/software/emacs-20/
Emacs-20.3 情報
http://www.ki.nu/software/emacs-20/20.3.shtml
ここでは次のものを使っています。
OS: MkLinux DR3 + linux-ppc 2.1.103 (このために、この色で区別される修正が必要ですが、 通常の OS ではその部分は不要です)
gcc: egcs-1.03a
binutils: 2.9.1
make-3.76.1

# 下のように原譜木(source tree)の外側で configure
# するためには GNU make が必要(のはず)
981030 Emacs-20.3 + Canna + Wnn + Sj3
  (ここの画面を小さくまとめるため、あるいは自分の便利の為だけに)次の変数を設定しておく

  setenv FTP /home/ftp/pub/emacs-20.3+c+w+s
  setenv PUB /home/ftp/pub/emacs-20/20.3-patches

  tar zxf /pub/Mule/emacs-20.3.tar.gz
  tar zxf  /pub/Mule/leim-20.3.tar.gz
  tar zxf $FTP/20.3+canna+wnn+sj3-19981022.tar.gz
  cd emacs-20.3
  patch -s -p1 <  ../20.3+canna+wnn+sj3-19981022/20.3+canna+wnn+sj3-19981022.patch
  patch -s -p1 < $PUB/emacs-20.3-gnulinux.patch-mef
  patch -s -p1 < $PUB/emacs-20.2-xaw3d.patch
  patch -s -p1 < $PUB/emacs-20.2-gctags.patch
  patch -s -p1 < $PUB/emacs-20.3-ppc.patch-mef
  patch -s -p1 < $PUB/emacs-20.3-gnulinux-ppc-MEF
  cd ..   # 今回から、原譜木(source tree) の中でなく、隣で作業するようにして見た 
  mkdir emacs-20.3-work
  cd emacs-20.3-work
  ln ../emacs-20.3/src/ppc.ldscript .  # 違う file system なら、cp か ln -s とする 
  ../emacs-20.3/configure \
  --with-wnn4 \
  --with-wnn-includes=/usr/local/include/wnn \
  --with-wnn-libraries=/usr/local/lib  \
  --with-canna \
  --with-canna-includes=/usr/local/canna/include \
  --with-canna-libraries=/usr/lib  \
  --with-sj3 \
  --with-x \
  --with-x-toolkit \
  --with-gcc   

  time make
make[1]: Leaving directory `/usr/src/making/emacs-20.3-work/leim'
734.990u 64.910s 17:20.05 76.9% 0+0k 0+0io 124984pf+0w
makoto@harry  21:11:10/981030(...making/emacs-20.3-work)> 
  src/emacs -q で起動して見る。
その他にも動作確認をする。
980923 Emacs-20.3 + Canna + Wnn
  (ここの画面を小さくまとめるため、あるいは自分の便利の為だけに)次の変数を設定しておく

  setenv FTP /home/ftp/pub/emacs-20.3+c+w
  setenv PUB /home/ftp/pub/emacs-20/20.3-patches

  tar zxf /pub/Mule/emacs-20.3.tar.gz
  tar zxf  /pub/Mule/leim-20.3.tar.gz
  tar zxf $FTP/20.3+canna+wnn-19980922.patch.tar.gz
  cd emacs-20.3
  patch -s -p1 <  ../20.3+canna+wnn-19980922/20.3+canna+wnn-19980922.patch

  patch -s -p1 < $PUB/emacs-20.3-gnulinux.patch-mef
  patch -s -p1 < $PUB/emacs-20.2-xaw3d.patch
  patch -s -p1 < $PUB/emacs-20.2-gctags.patch
  patch -s -p1 < $PUB/emacs-20.3-ppc.patch-mef
  patch -s -p1 < $PUB/emacs-20.3-gnulinux-ppc-MEF
  ln src/ppc.ldscript .
  ./configure \
  --with-wnn4 \
  --with-wnn-includes=/usr/local/include/wnn \
  --with-wnn-libraries=/usr/local/lib  \
  --with-canna \
  --with-canna-includes=/usr/local/canna/include \
  --with-canna-libraries=/usr/lib  \
  --with-x \
  --with-x-toolkit \
  --with-gcc   

  time make

    以前に以下の問題があった
    /usr/local/lib/libwnn.so: undefined reference to `crypt'
    collect2: ld returned 1 exit status
    と出てしまうので、とり敢えず 
    cd src して、gcc の文字を切貼りして、 -lcrypt を加えて cd ..
    make でよけて通る。
    しかし emacs-20.3-gnulinux-ppc-MEF を変更したので、もうこれは出ないと思う 

  make install
  (もし以前に emacs-canna を入れていると、
  /usr/local/share/emacs/site-lisp/canna.el があって、これが先に有
  効になってしまう可能性がある。canna-dl.el canna-dl.elc などと名前を
  変更する必要があると思う)
 
  setenv CANNAHOST localhost
  setenv JSERVER   localhost

Canna:
  M-x load-library RET canna RET  (多分不要)
  M-x canna
  C-o で ローマ字入力になり、Space で変換する。

Wnn:
  M-x load-library RET canna RET  (多分不要)
  M-x egg:toggle-egg-mode-on-off RET
  C-\ で ローマ字入力になり、Space で変換する。

日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3

Emacs-20 + Dynamic loading patch
ftp://ftp.jaist.ac.jp/pub/GNU/elisp/emacs-20-dl/
980914
  emacs-20.3 + dynamic-loading + canna.so を動かして見た。
  (ここの画面を小さくまとめるために、次の変数を設定しておく)  

  setenv PUB /home/ftp/pub/emacs-20/20.3-patches/

  tar zxf /pub/Mule/emacs-20.3.tar.gz
  tar zxf  /pub/Mule/leim-20.3.tar.gz
  cd emacs-20.3
  patch -s -p1 < /pub/Mule/emacs-20.3-dl.diff

  patch -s -p1 < $PUB/emacs-20.3-gnulinux.patch-mef
  patch -s -p1 < $PUB/emacs-20.2-xaw3d.patch
  patch -s -p1 < $PUB/emacs-20.2-gctags.patch
  patch -s -p1 < $PUB/emacs-20.3-ppc.patch-mef
  patch -s -p1 < $PUB/emacs-20.3-gnulinux-ppc-MEF
  patch -s -p1 < $PUB/emacs-20.3-export-dynamic-mef
  ln src/ppc.ldscript .
  ./configure --with-gcc --with-x-toolkit=yes --with-x
  time make
  make install

  ここで、canna-3.5b2 の make install 
  emacs-canna の設置
  をしてから、emacs を起動し、
  M-x load-library RET canna RET  
  M-x canna
  C-o で ローマ字入力になり、Space で変換する。

(*1)  
  # emacs-20.2.spec を見ていたら、次の字がある。
  # ln src/ppc.ldscript lib-src
  # でも次の方が正しい気がする。
  # ln src/ppc.ldscript .
(*2)  
  # configure した後で、config.cache の中を見ると 
  # emacs_cv_x11_version_6=${emacs_cv_x11_version_6='no'}
  # という字があった。これではうまく行かない気がする。
  # src/Makefile:ALL_LDFLAGS = -R/usr/X11R6/lib     -T ppc.ldscript              $(LDFLAGS)
  # が原因 ? src/m/powerpc.h の最後の行を次のようにして見る。
  # #define LD_SWITCH_MACHINE -Xlinker -T -Xlinker ppc.ldscript
日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3
980820
20.3 が出ているので組立てる。980718,980729 の時と全く同じ。
980812
20.2.99 が出ているので組立てる。980718, 980729 と全く同じ。
root@harry  21:09:42/980812(...share/emacs)# mkdir 20.2.99
root@harry  21:10:05/980812(...share/emacs)# cd 20.2.99
root@harry  21:10:10/980812(...emacs/20.2.99)# ln -s ../20.2.97/site-lisp .
しておいて src/emacs と入力すると mew/semi-gnus が問題なく動く。 上の symbolic link は外しておいて make install する。
980729
20.2.98 が出ているので組立てる。980718 の 20.2.97 + patch.1 と同じことをすると、
makoto@harry  23:01:33/980729(...making/emacs-20.2.98)>   patch -s -p1 < $PUB/emacs-20.2-gnulinux.patch-mef
1 out of 5 hunks FAILED -- saving rejects to config.sub.rej
と言われてしまう。が重要そうではないので無視して先に行く。
beos が増えているので、patch が当っていない。
どうも linux-gnu という字を linux に戻している patch のようだ。
更に、
  temacs を作るところで何故か
/usr/X11R6/lib/libXt.so: undefined reference to `SmcSaveYourselfDone'
/usr/X11R6/lib/libXt.so: undefined reference to `IceConnectionNumber'
  のような行がいくつか出ている。-lICE -lSM を手で加えてしまう。
も同じだった。実際には次のように加えている。cd src して、切貼して、
 -lXt -lXext -lX11 -lICE -lSM -lm -lgcc 
のように加えて、その後 cd ../ してから、また make
emu*.el だけは 20.2.97/site-lisp に入っているので、とりあえず link を張って古いものが使えるようにして、make install する前にsrc/emacs で起動して見たら、動く。Mule 4.0 (花宴)と書いてある。
日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3
980718
(MkLinux)DR3 にしてから 20.2.97 + patch.1 を組立てた。 今度は無事動いているようだ。Mew-dist の Mailing List 20.2.97 + patch.1 は Mule-4.0 になっていると言っている 人がいたが、僕のは 3.0 と言っている。
  tar zxf /pub/Mule/emacs-etl-20.2.97.tar.gz
  patch -s -p0 < /pub/Mule/20.2.97.patch.1
  setenv PUB /home/ftp/pub/emacs-20/20.2.93-patches/
  cd emacs-20.2.97/
  patch -s -p1 < $PUB/emacs-20.2-gnulinux.patch-mef
  patch -s -p1 < $PUB/emacs-20.2-xaw3d.patch
  patch -s -p1 < $PUB/emacs-20.2-gctags.patch
  patch -s -p1 < $PUB/emacs-20.2-ppc.patch-mef
  ./configure --with-gcc --with-x-toolkit=yes --with-x
  time make
  temacs を作るところで何故か
/usr/X11R6/lib/libXt.so: undefined reference to `SmcSaveYourselfDone'
/usr/X11R6/lib/libXt.so: undefined reference to `IceConnectionNumber'
  のような行がいくつか出ている。-lICE -lSM を手で加えてしまう。
SunOS4.1.4 で同じものを用意した時には ~/.Xdefaults におまじないが必要だった が、こちら linux-pmac ではこれは必要なかった。
980627
20.2.97 を組立てている。方法は20.2.93 の時と全く同じ。
make[1]: Leaving directory `/usr/src/making/emacs-20.2.97/leim'
680.750u 75.870s 15:50.33 79.6% 0+0k 0+0io 121806pf+0w
src/emacs
Error: Unresolved inheritance operation
980617
Unresolved inheritance operation の文字列が mklinux ML に出て来た ので 余計なことを書いて見るEmacs-20.2.96 やはり同じく Unresolved inheritance operation になる。
980613 Emacs-20.2.95 -- part 2
./configure --with-gcc --with-x-toolkit=no --with-x これで組立てたら、動いた。

日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3

980613
Emacs-20.2.95 (X Window では動かない)
    62  10:06   tar zxf /pub/Mule/emacs-20.2.95.tar.gz
    63  10:08   tar zxf /pub/Mule/leim-20.2.95.tar.gz
    64  10:08   setenv PUB /home/ftp/pub/emacs-20/20.2.93-patches
    65  10:08   cd emacs-20.2.95
    66  10:08   patch -s -p1 < $PUB/emacs-20.2-gnulinux.patch-mef
    67  10:09   patch -s -p1 < $PUB/emacs-20.2-xaw3d.patch
    68  10:09   patch -s -p1 < $PUB/emacs-20.2-gctags.patch
    69  10:09   patch -s -p1 < $PUB/emacs-20.2-ppc.patch-mef
    72  10:12   cd src
    74  10:12   patch -s -p0 < ~/Mail/ml/pretest/41
    75  10:12   cd ..
    70  10:09   ./configure --with-gcc --with-x-toolkit=yes --with-x
    76  10:13   time make
    77  10:34   src/emacs
makoto@harry  10:28:26/980613(...making/emacs-20.2.95)> src/emacs
Error: Unresolved inheritance operation

xmenu.c のうち、次の一つ目は行っていて、二つ目は行っていない。
1711:  menubar_widget = lw_create_widget ("menubar", "menubar", id, first_wv, 
       xmenu_show
1993:  menu = lw_create_widget ("popup", first_wv->name, menu_id, first_wv,
2267:  menu = lw_create_widget (first_wv->name, "dialog", dialog_id, first_wv,
xfns.c のうちの
   XtCreateWidget  は行っていて、
   XtVaGetValues には行っていない。

日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3
980603
Emacs-20.2.94
emacs-20.2.94 を patch を当ててから組立てて見たが、X Window だと Error: Unresolved inheritance operation と言われてしまう。src/emacs -nw なら起動する。
日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3
980525
Emacs-20.2.932
emacs-20.2.932 が Segmentation Fault で動かない。 gdb で追うのに疲れた ddd-2 or ddd-3 を入れよう→ Internal compiler error egcs-1.0.3 を入れよう→どうも binutils-2.9 以降が必要だ という典形的な泥沼にはまっているところ。 そう言えば dump-0.3 も Segmentation Fault で動いていなかった。 これも調べられるかとほのかな望み :-)
日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3
980506
Emacs-20.2.93
Emacs-20.2 の時の patch を当てると動いて しまう。 Mew を使うには 1.93b32以降が必要で、 更に Emacs の方に decode-coding-region に問題があるので、 Mew の方に少し変更を加える必要がある。 RMS に pretest に入れて下さいと書いたメール
日記 | はじめに戻る | 20.2 | 20.3 | 20.3 + dl | 20.3 +Canna +Wnn | 20.3 +Canna +Wnn +Sj3
980228
Emacs-20.2
ftp://ftp.lab.kdd.co.jp/pub/Linux/linuxppc/redhat/RPMS/ppc
に emacs-20.2-4a.ppc.rpm というのがあるので、それを入れようとする が /bin/sh が入っていないとか言って良く分らないので、 ftp://ftp.lab.kdd.co.jp/pub/Linux/linuxppc/redhat/SRPMS/ppc から、 emacs-20.2-4a.src.rpm をもらって来て入れる。 その時の様子
rpm -ihv  emacs-20.2-4a.src.rpm
すると ../../redhat/SOURCE に次のようなものが入る。この中の
spec というのを見て、中に書いてある順に patch を当てる。

11008512 Feb 28 10:04 emacs-20.2.tar.gz
   13125 Feb 25 19:20 emacs-20.2.spec
   19832 Feb 25 19:16 emacs-20.2-ppc.patch
      95 Nov  7 02:03 emacs.wmconfig
  207344 Nov  4 07:16 mbsk-20.2.tar.gz
    8032 Oct 24 05:03 emacs-20.2-gnulinux.patch
     971 Oct 24 04:53 emacs-20.2-xaw3d.patch
    1884 Oct 24 04:41 emacs-20.2-noecoff.patch
    4763 Oct 24 04:39 emacs-20.2-gctags.patch
↓もしその一つずつを入手したいという時はここも見て下さい。
ftp.ki.nu or (for 20.3)
cd emacs-20.2
patch -s -p1 < patch
というように p1 を使う
実際の記録。(時刻は実は合っていません)
   349  10:55   tar zxf /pub/Mule/emacs-20.2.tar.gz
   350  10:56   cd emacs-20.2
   351  10:56   patch -s -p1 < /usr/src/redhat/SOURCES/emacs-20.2-gnulinux.patch
   352  10:56   patch -s -p1 < /usr/src/redhat/SOURCES/emacs-20.2-xaw3d.patch
   353  10:56   patch -s -p1 < /usr/src/redhat/SOURCES/emacs-20.2-gctags.patch
   354  10:56   patch -s -p1 < /usr/src/redhat/SOURCES/emacs-20.2-noecoff.patch
   355  10:57   patch -s -p1 < /usr/src/redhat/SOURCES/emacs-20.2-ppc.patch
   357  10:57   ./configure --with-gcc --with-x-toolkit=yes --with-x
   358  10:58   time make

473.270u 64.530s 9:59.22 89.7% 0+0k 0+0io 109080pf+0w
makoto@harry  11:08:12/980228(...making/emacs-20.2)> make -n install
10 分しかかからない。S-7/300U と同じくらいの速さ。
実は share 以下は他の機械で用意してあって共有出来るので、
make install-arch-dep
とする。

どこに入るかなどは こちら に、 その他種々な設定はこちら に書い てある。 そう言えば、最初に実行形式で rpm を使って入れようした時に、 xaw3d がないというので、それだけは入れていて、なお、 -lXaw3d がないと言うことがあったので、次の一つ目 link は手で張った。
     15 Feb 28 10:35 /usr/X11R6.3/lib/libXaw3d.so -> libXaw3d.so.6.1*
     15 Feb 28 09:24 /usr/X11R6.3/lib/libXaw3d.so.6 -> libXaw3d.so.6.1*
 389631 Jun 17  1997 /usr/X11R6.3/lib/libXaw3d.so.6.1*

Norio Kubotau さんの画面 を見ていたら rpm --rebuild を使えと書 いてある。 一方、emacs-20.2 を用意してくれた Gary Thomas からは次のようにする のが正しいのだと教わってしまった。


(as patched for Linux/PPC)
        # rpm -iv emacs-20.2*src.rpm
        # cd /usr/src/redhat/SPECS
        # rpm -bp emacs*spec          // Creates the patched sources
        # cd ../BUILD/emacs*


Count.cgi(since 1998/09/15)