パッケージが用意されていないUNIX系の環境や、クロス開発環境などで、OpenRTM-aist本体のソースを変更したり再ビルドて、OpenRTM-aistを利用したい場合には、ソースからビルド可能です。ここでは、ダウンロードページやリポジトリからソースを取得しLinux上でOpenRTM-aist をビルドする方法を説明します。
OpenRTM-aist(C++版)はautotoolsを利用したビルド環境を提供しているため、さまざまな環境でビルドできます。
OpenRTM-aistは下記のLinuxディストリビューションでビルドできることが確認されています。
これ以外の環境でも、一般的Linux/UNIX環境であれば、ビルドできる可能性があります。
OpenRTM-aist-1.2.xをソースからビルドするには下記の開発用ツールおよびライブラリが必要です。
それぞれのライブラリなどのドキュメントに従いインストールを行ってください。これらが標準のディレクトリ(/usr、/usr/localなど)下にインストールされていると、以降のOpenRTM-aistのコンパイル作業を比較的簡単に行うことができます。
UbuntuやFedoraなどの特定のディストリビューション向けには、一括インストール・スクリプト ''pkg_install_OS名.sh’’という依存ライブラリやOpenRTMのパッケージをインストールするスクリプトが用意されていて、それにより必要なツールをインストールすることができます。下記のリンクに入手方法やコマンドラインオプションなどが説明されています。
このスクリプトを-cオプションを用いて実行することにより、コア(OpenRTM-aist自体の)開発用のツールをインストールすることができます。それを実行するか、別個に必要なツールをインストールしておいてください。
まずソースコードOpenRTM-aist-X.X.X.tar.gzを適当なディレクトリに展開します。
$ wget https://github.com/OpenRTM/OpenRTM-aist/releases/tag/v1.2.1/OpenRTM-aist-1.2.1.tar.gz $ tar xvzf OpenRTM-aist-1.2.1.tar.gz $ cd OpenRTM-aist-1.2.1
OpenRTM-aistはパッケージのビルドにautoconf、automakeを使用しています。上記の方法でダウンロードできるソースコードのパッケージは、あらかじめそれらのツールを使用して構成されているものです。
$ ./configure --prefix=/usr --enable-fluentd=no --enable-observer=yes --enable-ssl=yes [options]
基本的には[options]の指定はいりませんが、特別な設定をしたい場合の[options]で使用可能なオプションは
$ ./configure --help
で参照してください。
configureが正常に終了したことを確認してください。正常に終了したらmake します。
$ make
ビルドが正常に終了したら、ヘッダファイル、ライブラリ、ユーティリティコマンド群をインストールします。
$ sudo make install
以上で、ソースコードからのビルドおよびインストールは終了です。
OpenRTM-aistは開発に利用しているgithubリポジトリを一般に公開しています。リポジトリからクローンしたソースコードを用いてもビルド可能です。
リポジトリからチェックアウトしたソースはconfigureスクリプトやMakefile.inが含まれていません。これらを生成するには、
などのツールが必要ですのであらかじめインストールしておきます。これらの必要なツールやOmniORBなどのライブラリをインストールするのにあたって、Ubuntuなどでは上記で説明した一括インストール・スクリプトを利用可能です。このスクリプトをあらかじめ実行しておくことを推奨します。
Ubuntuでは上記で推奨した一括インストールスクリプトpkg_install_ubuntu.shを以下のように実行することで、OpenRTM-aist本体の開発(ここで行うソースからのビルドも含みます)のためのツール(automakeなどを含む)などをまとめてインストール可能です。
# sudo sh pkg_install_ubuntu.sh -l c++ -c
ソースをリポジトリからクローンします。
$ git clone -b svn/RELENG_1_2 https://github.com/OpenRTM/OpenRTM-aist Cloning into 'OpenRTM-aist'... remote: Enumerating objects: 24, done. remote: Counting objects: 100% (24/24), done. remote: Compressing objects: 100% (24/24), done. remote: Total 42092 (delta 14), reused 2 (delta 0), pack-reused 42068 Receiving objects: 100% (42092/42092), 10.41 MiB | 8.36 MiB/s, done. Resolving deltas: 100% (31578/31578), done.
クローンすると、OpenRTM-aistというディレクトリができているはずですので、そのディレクトリに入ります。
$ ls OpenRTM-aist $ cd OpenRTM-aist $ ls AUTHORS Makefile.am acinclude.m4 examples/ win32/ COPYING.LIB NEWS build/ include/ COPYRIGHT* README configure.ac openrtm.m4 ChangeLog README.jp docs/ src/ INSTALL.jp TUTORIAL.jp etc/ utils/
buildディレクトリの下にautogenというシェルスクリプトがあることを確認し、このスクリプトを実行します。実行には、数分程度の時間がかかることがあります。
$ls build/autogen build/autogen* $ sh build/autogen Setting up environment to generate configure script. ------------------------------------------------------------ Searching Autotools ------------------------------------------------------------ autoconf was found in /usr/local/bin/autoconf. autoheader was found in /usr/local/bin/autoheader. autom4te was found in /usr/local/bin/autom4te. autoreconf was found in /usr/local/bin/autoreconf. autoupdate was found in /usr/local/bin/autoupdates. automake was found in /usr/local/bin/automake-1.9. aclocal was found in /usr/local/bin/aclocal-1.9. libtool was found in /usr/local/bin/libtool. libtoolize was found in /usr/local/bin/libtoolize. ------------------------------------------------------------ Searching libtool.m4 ------------------------------------------------------------ file was found: /usr/local/share/aclocal/libtool.m4 Copying libtool.m4 from /usr/local/share/aclocal/libtool.m4 ------------------------------------------------------------ Doing autoreconf ------------------------------------------------------------ autoreconf-2.62: Entering directory `.' autoreconf-2.62: configure.ac: not using Gettext autoreconf-2.62: running: /usr/local/bin/aclocal-1.9 --force autoreconf-2.62: configure.ac: tracing autoreconf-2.62: configure.ac: adding subdirectory src/lib/coil to autoreconf autoreconf-2.62: Entering directory `src/lib/coil' autoreconf-2.62: running: /usr/local/bin/libtoolize --copy --force You should update your `aclocal.m4' by running aclocal. autoreconf-2.62: running: /usr/local/bin/autoconf --force autoreconf-2.62: running: /usr/local/bin/autoheader --force autoreconf-2.62: running: /usr/local/bin/automake-1.9 --add-missing --copy --force-missing configure.ac: installing `./install-sh' configure.ac: installing `./missing' ace/coil/Makefile.am: installing `./depcomp' Makefile.am: installing `./INSTALL' autoreconf-2.62: Leaving directory `src/lib/coil' You should update your `aclocal.m4' by running aclocal. configure.ac: installing `./install-sh' configure.ac: installing `./missing' examples/AutoTest/Makefile.am: installing `./depcomp' Makefile.am: installing `./INSTALL' autoreconf-2.62: Leaving directory `.' done $
autogenの実行により、configureがOpenRTM-aistディレクトリ内にできているはずですので、以降は通常のソースからのビルドと同様に、configure & makeでビルドします。
$ ls -l configure -rwxr-xr-x 1 n-ando n-ando 812893 Jul 6 05:56 configure* $ ./configure --prefix=/usr --enable-fluentd=no --enable-observer=yes --enable-ssl=yes $ make
make distを行うことでopenrtm.orgで配布しているようなソースのパッケージの作成も可能です。 また、make dist では Windows上でビルド可能なソースコードのパッケージも同時に作成します。 ただし、make distを行うには、doxygenやlatex、qkcなど、追加のコマンドが必要です。
$ make dist 数分程度かかります。 $ ls -l OpenRTM-aist* -rw-r--r-- 1 n-ando n-ando 9266837 Apr 7 09:53 OpenRTM-aist-1.2.1-win32.zip -rw-r--r-- 1 n-ando n-ando 4831099 Apr 7 09:53 OpenRTM-aist-1.2.1.tar.bz2 -rw-r--r-- 1 n-ando n-ando 7258796 Apr 7 09:53 OpenRTM-aist-1.2.1.tar.gz $
生成されるソースパッケージはそれぞれ以下の通りです。