FreeBSD 13.0-RELEASEでclispをソースから構築
clispを使いたいなら、あまり難しいことを考えずに pkgとかportsを利用すればいいと思います。
ここでは、手動でclispを構築する方法について説明します。
以前にも同じ内容clispをFreeBSDにインストールする - nptclのブログを投稿しましたが、
13.0-RELEASEではうまく行かなかったので改良版です。
以前の投稿との違いは下記の通り。
gcc構築の前準備
説明の都合上、シェルをshにします。
% cd % /bin/sh $
下記の変数はインストール場所です。
$ work="${HOME}/work" $ gcc="${HOME}/work/gcc" $ clisp="${HOME}/work/clisp"
作業場所の作成
$ mkdir ${work} $ mkdir ${work}/install
ダウンロード
$ cd ${work}/install $ fetch http://ftp.jaist.ac.jp/pub/GNU/gmp/gmp-6.1.2.tar.xz $ fetch http://ftp.jaist.ac.jp/pub/GNU/mpfr/mpfr-4.1.0.tar.xz $ fetch http://ftp.jaist.ac.jp/pub/GNU/mpc/mpc-1.2.1.tar.gz $ fetch http://isl.gforge.inria.fr/isl-0.24.tar.xz $ fetch http://ftp.jaist.ac.jp/pub/GNU/make/make-4.3.tar.gz $ fetch http://ftp.jaist.ac.jp/pub/GNU/binutils/binutils-2.36.tar.xz $ fetch http://ftp.jaist.ac.jp/pub/GNU/gcc/gcc-11.1.0/gcc-11.1.0.tar.xz
ミラーサイトjaistさんを利用させていただきました。
ありがとうございます。
gmpの導入
$ cd ${work}/install $ tar Jxf gmp-6.1.2.tar.xz $ cd gmp-6.1.2 $ ./configure --prefix=${gcc} $ make $ make install $ make clean
mpfrの導入
$ cd ${work}/install $ tar Jxf mpfr-4.1.0.tar.xz $ cd mpfr-4.1.0 $ ./configure --prefix=${gcc} --with-gmp=${gcc} $ make $ make install $ make clean
mpcの導入
$ cd ${work}/install $ tar zxf mpc-1.2.1.tar.gz $ cd mpc-1.2.1 $ ./configure --prefix=${gcc} --with-gmp=${gcc} --with-mpfr=${gcc} $ make $ make install $ make clean
islの導入
$ cd ${work}/install $ tar Jxf isl-0.24.tar.xz $ cd isl-0.24 $ ./configure --prefix=${gcc} --with-gmp-prefix=${gcc} $ make $ make install $ make clean
GNU makeの導入
$ cd ${work}/install $ tar zxf make-4.3.tar.gz $ cd make-4.3 $ ./configure --prefix=${gcc} $ make $ make install $ make clean
binutilsの導入
$ cd ${work}/install $ tar Jxf binutils-2.36.tar.xz $ cd binutils-2.36 $ export LD_LIBRARY_PATH=${gcc}/lib $ ./configure \ --enable-languages=c \ --prefix=${gcc} \ --with-gmp=${gcc} \ --with-mpfr=${gcc} \ --with-mpc=${gcc} \ --with-isl=${gcc} \ --disable-multilib \ --disable-bootstrap $ ${gcc}/bin/make $ ${gcc}/bin/make install $ ${gcc}/bin/make clean
gccの導入
$ cd ${work}/install $ tar Jxf gcc-11.1.0.tar.xz $ mkdir gcc-work $ cd gcc-work $ export LD_LIBRARY_PATH=${gcc}/lib $ ../gcc-11.1.0/configure \ --enable-languages=c \ --prefix=${gcc} \ --with-gmp=${gcc} \ --with-mpfr=${gcc} \ --with-mpc=${gcc} \ --with-isl=${gcc} \ --disable-multilib \ --disable-bootstrap $ ${gcc}/bin/make all-gcc $ ${gcc}/bin/make install-gcc $ ${gcc}/bin/make clean
gccの確認
$ ${gcc}/bin/gcc --version gcc (GCC) 11.1.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
clisp構築の前準備
説明の都合上、シェルをshにします。
% cd % /bin/sh $
下記の変数はインストール場所です。
$ work="${HOME}/work" $ gcc="${HOME}/work/gcc" $ clisp="${HOME}/work/clisp"
$ export CC=${gcc}/bin/gcc $ export LD_LIBRARY_PATH=${gcc}/lib:$LD_LIBRARY_PATH $ export LIBRARY_PATH=${gcc}/lib $ export C_INCLUDE_PATH=${gcc}/include $ export CPLUS_INCLUDE_PATH=${gcc}/include
ダウンロード
$ cd ${work}/install $ fetch http://ftp.jaist.ac.jp/pub/GNU/libsigsegv/libsigsegv-2.13.tar.gz $ fetch http://www.haible.de/bruno/gnu/ffcall-1.10.tar.gz $ fetch http://ftp.jaist.ac.jp/pub/GNU/readline/readline-8.1.tar.gz $ fetch https://gitlab.com/gnu-clisp/clisp/-/archive/master/clisp-master.tar.bz2
libsigsegvの導入
$ cd ${work}/install $ tar zxf libsigsegv-2.13.tar.gz $ cd libsigsegv-2.13 $ ./configure --prefix=${clisp} $ make $ make install $ make clean
ffcallの導入
★注意:-j
による並列実行はしないこと
$ cd ${work}/install $ tar zxf ffcall-1.10.tar.gz $ cd ffcall-1.10 $ ./configure --prefix=${clisp} $ make $ make install $ make clean
readlineの導入
$ cd ${work}/install $ tar zxf readline-8.1.tar.gz $ cd readline-8.1 $ ./configure --prefix=${clisp} $ make $ make install $ make clean
clispの導入
★注意:-j
による並列実行はしないこと
$ cd ${work}/install $ tar jxf clisp-master.tar.bz2 $ cd clisp-master $ ./configure --prefix=${clisp} \ --with-libsigsegv-prefix=${clisp} \ --with-libffcall-prefix=${clisp} \ --with-readline-prefix=${clisp} \ --disable-mmap $ cd src $ ${gcc}/bin/make $ ${gcc}/bin/make install
もしclhs.elに関するエラーが出た場合
・・・ mkdir -p /home/user/work/clisp/share/emacs/site-lisp /usr/bin/install -c -m 644 ../emacs/clhs.el /home/user/work/clisp/share/emacs/site-lisp/clhs.el install: ../emacs/clhs.el: No such file or directory *** Error code 71 Stop. $
次のような手順で回避する。
$ vi Makefile
2550行目付近の
$(INSTALL_DATA) ../emacs/clhs.el $(DESTDIR)$(elispdir)/clhs.el
を
# $(INSTALL_DATA) ../emacs/clhs.el $(DESTDIR)$(elispdir)/clhs.el
のようにしてコメント。
$ ${gcc}/bin/make install $ ${gcc}/bin/make clean
clispの起動確認
$ cd $ ${clisp}/bin/clisp i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.93+ (2018-02-18) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992-1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2018 Type :h and hit Enter for context help. [1]> (quit) Bye. $