*Knutu先生のbddを使う方法 [#y5ca63f1]
http://www-cs-faculty.stanford.edu/~knuth/programs.html

からBDD15をダウンロード。bdd15.wという不思議な拡張子になっている。

*cweb [#z2645e25]
.wファイルはcwebという、texのソースとcのコードを一緒に書くシステムを利用したファイル。
cwebをコンパイルして、bdd15.wをbdd15.texとbdd15.cに分離しなければならない。

cwebは

http://www-cs-faculty.stanford.edu/~knuth/cweb.html

にある。

**cwebコンパイル [#mb074703]
cweb.tar.gzをダウンロードしたら必ず空のディレクトリに入れてから、
 tar vzxf cweb.tar.gz
で解凍。ディレクトリが作られないタイプのtarallなのでそのまま解凍するとカレントに
ファイルが飛散して大変。

***Makefile改変 [#adcaf573]
texのファイルの置き場などをかえていく。
システムファイルを汚染したくない場合は、適宜home以下のディレクトリに設定を変えておく。
macでの自分の設定。実行ファイルだけ使えれば良いので、make installしなくても良い。
であれば、以下の設定は不要かも。
 # directory for TeX inputs (cwebmac.tex goes here)
 MACROSDIR= /opt/local/share/texmf/tex/generic
 # directory for CWEB inputs in @i files
 CWEBINPUTS= /Users/ryu/usr/lib/cweb
 # extension for manual pages ("l" distinguishes local from system stuff)
 MANEXT= l
 # directory for manual pages (cweb.1 goes here)
 MANDIR= /Users/ryu/usr/share/man/man$(MANEXT)
 # destination directory for executables; must end in /
 DESTDIR= /Users/ryu/usr/bin/
 # directory for GNU EMACS Lisp code (cweb.el goes here)
 EMACSDIR= /Users/ryu/.emacs.d/site-lisp

**make [#jd589b61]
 $ make all
 $ make install #実行ファイルだけ移動して使うなら不要

**ドキュメントの分離 [#u234b225]
作られたコマンドでまずは、bdd15.wからtex関係のファイルを分離する。
 $cweave bdd15.w 
 $tex bdd15.tex
 $dvipdfm bdd15.dvi
これで、bdd15のドキュメントがpdfで手に入る。texのコンパイルがplatexではなくtexである点に注意


**c言語sourceの分離 [#d27ec37e]
 $ctangle bdd15.w
コンパイルするにはStanford GraphBaseのライブラリを静的にリンクしてやる必要がある。

なので、次の目標はStanford GraphBaseのコンパイル

http://www.cs.sunysb.edu/~algorith/implement/graphbase/implement.shtml

上記サイトから手に入る。
例によって、手に入れたsgb.tar.gzはディレクトリを掘ってからそこに解凍。
このライブラリもcwebを使って書かれているのでcwebのインストールは済ませておく。
Makefileを適当に書き換えて、ライブラリなどのインストール先を調整。
 #   Change SGBDIR to the directory where all GraphBase files will go:
 SGBDIR = /Users/ryu/local/sgb
 #   Change DATADIR to the directory where GraphBase data files will go:
 DATADIR = $(SGBDIR)/data
 #   Change INCLUDEDIR to the directory where GraphBase header files will go:
 INCLUDEDIR = $(SGBDIR)/include
 #   Change LIBDIR to the directory where GraphBase library routines will go:
 LIBDIR = /Users/ryu/local/lib
 #   Change BINDIR to the directory where installdemos will put demo programs:
 BINDIR = /Users/ryu/usr/bin
 #   Change CWEBINPUTS to the directory where CWEB include files will go:
 CWEBINPUTS = /Users/ryu/local/lib/cweb
上記はmacの例。$HOME/usrと$HOME/localが混ざっているのはご愛嬌。
設定を変えたら
 $ make tests
 
Congratulations --- the tests have all been passed. と印字されたら。コンパイル成功
 $ make install
 
これで、bdd15のコンパイルに必要なライブラリとヘッダーが手に入った。
あとはそれぞれの場所とリンクすべきライブラリを指定してコンパイルするだけ。

 gcc -o -I/Users/ryu/local/sgb/include -L/Users/ryu/local/lib -lgb bdd15.c

できあがり。
*ubuntu Linuxの場合 [#vc7174d6]
 $ sudo aptitude install cwebx
 $ sudo aptitude install sgb #Stanford GraphBase
 $ ctablex +c bdd15.w
 $ gcc -o bdd15 -l/usr/include -L/usr/lib -lga bdd15.c 
パッケージがあれば簡単。cwebxはcwebの互換プログラム+cオプションでオリジナル互換モード。



Front page   New List of pages Search Recent changes   Help   RSS of recent changes