Homeに戻る  一覧に戻る 

How to build PARI/GP 2.1.2


PARI/GP 2.1.2をbuildする[2002.02.14]


pari/gpの新version 2.1.2がreleaseされた。CHANGEファイルによると、2.1.1から36個のBUGがfixされたようだ。

ここでは、NetBSD-1.5.1/i386上でbuildする手順について、説明する。
ソースコードは、FreeBSD(ELF)には対応しているようだが、NetBSD-1.5.1/i386上でbuildするには、少しの作業が必要になる。
作業の記録を取ることにより、次の作業時(他のマシンへのinstallなど)に役立てることができる。
  1. ソースを展開する。
    $ tar zxf pari-2.1.2.tgz
    $ cd ./pari-2.1.2
          
  2. NetBSD-1.5.1に対応させ、GNU readline 4.2ライブラリ(/usr/gnu/lib/libreadline.a)を組み込むために、./Configureファイルを変更する。
    freebsdに対応している部分に、netbsdを追加する。
    compiler OPTFLAGSを"-m486 -O2"に変更する。
    readlineライブラリの情報を追加する。
    289c289
    <   rep='os2 freebsd netbsd cygwin linux hpux aix osf1 solaris sunos nextstep concentrix irix';
    ---
    >   rep='os2 freebsd cygwin linux hpux aix osf1 solaris sunos nextstep concentrix irix';
    325c325
    <   nextstep|cygwin*|linux|freebsd|netbsd|os2)
    ---
    >   nextstep|cygwin*|linux|freebsd|os2)
    397d396
    < #H.Nakao
    399,400d397
    < readline=/usr/gnu/lib
    < readline_enablep="t"
    545d541
    <       /usr/gnu/include/readline\
    834c830
    <   OPTFLAGS="-m486 -O2"
    ---
    >   OPTFLAGS=-O3
    869c865
    <     cygwin*|linux-i?86|freebsd-i?86|netbsd-i?86)
    ---
    >     cygwin*|linux-i?86|freebsd-i?86)
    941c937
    <   freebsd|netbsd)
    ---
    >   freebsd)
    1008c1004
    <     *-alpha|solaris-*|linux-*|freebsd-*|netbsd-*)
    ---
    >     *-alpha|solaris-*|linux-*|freebsd-*)
    1043c1039
    <       freebsd-*|netbsd-*)  DLLDFLAGS="-Bshareable -x" ;;
    ---
    >       freebsd-*)  DLLDFLAGS="-Bshareable -x" ;;
    1108c1104
    < stored in IEEE754 format [ sign, exponent, mantissa high, mantissa ]; 'double
    ---
    > stored in IEEE754 format [ sign, exponent, mantissa high, mantissa ]; `double
          
  3. Configureを実行する。
    $ CFLAGS="-m486 -O2" ./Configure --host=i386-netbsd
         
  4. ./src/kernel/ix86/l0asm.cのFreeBSDに対応した部分をNetBSDに対応させる。
    39c39
    < #if defined(__EMX__) || defined(__DJGCC__) || defined(__GO32__) || (defined(linux) && !defined(__ELF__)) || defined(__386BSD__) || (defined(__NetBSD__) && !defined(__ELF__)) || (defined(__FreeBSD__) && !defined(__ELF__)) || defined(NeXT) || defined(__CYGWIN32__) || defined(__MINGW32__)
    ---
    > #if defined(__EMX__) || defined(__DJGCC__) || defined(__GO32__) || (defined(linux) && !defined(__ELF__)) || defined(__386BSD__) || defined(__NetBSD__) || (defined(__FreeBSD__) && !defined(__ELF__)) || defined(NeXT) || defined(__CYGWIN32__) || defined(__MINGW32__)
         
  5. ./src/gp/gp.cの関数add_historyのprototype宣言を変更する。
    48d47
    < /* H.Nakao
    50,51d48
    < */
    <   extern int add_history(const char*);
         
  6. ./src/gp/gp_rl.cの関数filename_completion_function,username_completion_functionのprototype宣言を変更する。
    46d45
    < /* H.Nakao
    49,51d47
    <  */
    < extern char *filename_completion_function(const char *text,int state);
    < extern char *username_completion_function(const char *text,int state);
         
  7. ./Onetbsd-i386/Makefleにtermcapライブラリを追加する(readlineライブラリから参照する)。
    72c72
    < RLLIBS    = -L/usr/gnu/lib -lreadline -ltermcap
    ---
    > RLLIBS    = -L/usr/gnu/lib -lreadline
         
  8. makeする。
    $ make all
         
  9. installする。
    $ su
    # make install
         
開発中の次期version 2.2.xからは、ライセンスがGPLになるようだ。

参考文献



Last Update: 2005.06.12
H.Nakao

Homeに戻る[Homeに戻る]  一覧に戻る[一覧2002に戻る]