system-c をインストールする。

まずは、OSCI(The Open SystemC Initiative)から systemc-2.2.0.tgz をダウンロード(http://www.systemc.org/downloads/standards/) 。configure があるので、基本的には configure と make 一発で通るはず、、、、

FreeBSD の場合は簡単だ。/usr/ports/cad/systemc で make install で一発で入った。ところが ubuntu に入れようとするとconfigure はとおるものの make すると sc_utils_ids.cpp でエラー。getenv と strcmp が無いといわれる。libc の関数だし、無理やり自分でパッチを入れてもいいが、、、FreeBSD はコンパイルできるから不思議。どうやらコンパイラの違いらしい。ubuntu の方は g++ 4.3.3 で/usr/include/c++/3.4/bits/stl_algobase.hには cstddef しかインクルードされていない。一方 FreeBSD のは 3.4 で同じ stl_algobase.h には cstdlib と cstring が入っている。理由がわかったので自分でパッチを当てる。単純に sc_utils_ids.cpp に #include と #include を入れただけ。

*** systemc-2.2.0.orig/src/sysc/utils/sc_utils_ids.cpp  2006-12-16 05:31:39.000000000 +0900
--- systemc-2.2.0/src/sysc/utils/sc_utils_ids.cpp       2009-09-24 22:53:41.000000000 +0900
***************
*** 59,64 ****
--- 59,66 ----
  //

  #include "sysc/utils/sc_report.h"
+ #include <cstring>
+ #include <cstdlib>


  namespace sc_core {

めでたくコンパイルできました。しかし今度は make install で失敗。fft の example でうまくいっていない。うわー今度は configure がうまくいっていない。(うーまさに日記だ) configure --prefix=/usr/local として再度 configure を実行。make するもやはり example でエラー。このさい example はインストールできなくても良いので、、、う〜ん FreeBSD ではコンパイル、インストールできているが、、、、FreeBSD のまねをして objdir をつくってみる。できた sudo make install もうまくいった。。なんだよ。でもって /usr/local/example のしたはディレクトリだけ出来て何もなし。なんだこりゃ。