付 SPRNG,rsprngのインストール

Rにてsprngを動かすためのパッケージ rsprng (サイトはここ)のインストールが必要。その前段階として、Linuxでsprngが動くことが必要。そのパッケージがsprng2.0(サイトはここ)。
マルチプラットフォーム対応でLinuxにも対応しているはずだが、コンパイラエラー(など)にて、sprng2.0のインストールで難航中

追記 11/30/2005
SPRNGのコンパイルにあたっては、make.CHOICESファイルにて、コンパイルオプションのセットを使用する。用意されているオプションは CONVEX DEC HP INTEL OK2 SGI SP2 SUN T3E GENERIC があり、それぞれのオプションに対応して、make.NNNファイルが準備されており、細かいオプションが規定されている。
以下を了解したら、make.GENERICファイルをカスタマイズしてやってみよう、とのこと・・・
オプション指定は

  • make.CHOICESの方で以下の4つを選ぶ
    • プラットフォーム
    • 使用の是非
    • gmp.aの有無 libgmpはGNUの数学ライブラリのひとつ、サイトはこちら
    • bspring.aの置かれるディレクト
  • プラットフォーム別make.NNNファイルにて以下の項目を選ぶ
    • AR = ar #アーカイブコマンド
    • ARFLAGS = cr #アーカイバの目印(フラグ)(ライブラリを作成するかすでにアーカイブされたファイルを置き換える)
    • RANLIB = ranlib #ライブラリの内容を載せるテーブルを作るために用いる。ranlibが使えない環境の場合には"echo"を指定
    • CC = cc #Cコンパイラ
    • CLD = $(CC) #Cローダ
    • F77 = f77 #FORTRAN77コンパイラ
    • F77LD = $(F77) #FORTRAN77ローダ
    • FFXN = -DAdd_ #CとFORTRAN wrappersを読み込むがFORTRAN wrappersはCで書かれているので、両者の関数がバッティングする(しうる)。それを避けるためにsufixをつけるための設定
    • MPIDEF = -DSPRNG_MPI #MPIの関数を呼び出すための引数、MPIを使うときはこの設定にする
    • MPIDIR = -L/usr/lib64 #MPIライブラリへのパス
    • MPILIB = -lmpi #MPIライブラリの名前
    • CFLAGS = -O2 -D$(PLAT) $(MPIDEF) -D_LONG_LONG -align64 -64 #Cコンパイラの目印(フラグ)
    • CLDFLAGS = -align64 -64 #Cローダの目印(フラグ) 64 bit compilation
    • FFLAGS = -O2 -align64 $(MPIDEF) -DPOINTER_SIZE=8 -D_LONG_LONG -64 #64 bit compilation #FORTRAN77コンパイラの目印(フラグ)
    • F77LDFLAGS = -align64 -64 # FORTRAN77ローダの目印(フラグ)64 bit compilation
    • CPP = gcc -E -P $(MPIDEF) -DPOINTER_SIZE=8 -D_LONG_LONG # 64 bit compilation #Cプリプロセッサを呼び出せないFORTRANコンパイラのための設定
    • INLINEOPT = -INLINE:must=get_rn_int,get_rn_dbl,get_rn_flt,get_rn_int_simple,get_rn_flt_simple,get_rn_dbl_simple #効率改善オプションのひとつ
  • 実行ログ
    • 非MPIバージョンのインストール(成功らしい)
      • make.CHOICESの設定
PLAT  = GENERIC
#MPIDEF = -DSPRNG_MPI
#PMLCGDEF = -DUSE_PMLCG
#GMPLIB = -lgmp
LIB_REL_DIR = lib
AR = ar
ARFLAGS = cr
#If your system does not have ranlib, then replace next statement with 
#RANLIB = echo
RANLIB = ranlib
CC = gcc
CLD = $(CC)
# Set f77 to echo if you do not have a FORTRAN compiler
F77 = g77
#F77 = echo
F77LD = $(F77)
FFXN = -DAdd__
FSUFFIX = F

MPIF77 = $(F77) 
MPICC = $(CC)

# To use MPI, set the MPIDIR to location of mpi library, and MPILIB 
# to name of mpi library. Remove # signs from beginning of next 3 lines.
# Also, if the previous compilation was without MPI, type: make realclean
# before compiling for mpi.
#
#MPIDEF = -DSPRNG_MPI
#MPIDIR = 
#MPILIB = 

# Please include mpi header file path, if needed

CFLAGS = -O3 -DLittleEndian $(MPIDEF) -D$(PLAT) # -I/usr/local/mpi/include
CLDFLAGS =  -O3 
FFLAGS = -O3 $(MPIDEF) -D$(PLAT) # -I/usr/local/mpi/include
F77LDFLAGS =  -O3 

CPP = cpp -P
    • 非MPIバージョンのインストール(未解決)
      • make.CHOICESの設定
PLAT  = GENERIC
MPIDEF = -DSPRNG_MPI
#PMLCGDEF = -DUSE_PMLCG
#GMPLIB = -lgmp
LIB_REL_DIR = lib
      • make.GENERICの設定
        • MPIライブラリのパスとライブラリ名がうまく渡っていない模様