Skip to content

sourcecode

Hiroshi Sendai edited this page Oct 15, 2025 · 7 revisions

DAQ-Middlewareソースコード解説

DAQコンポーネントの作りかたの解説ではなく、 DAQ-Middlewareのソースツリーの解説です。

ターゲットOS

ターゲットとしているOSはRHEL由来の CentOS, Scientific Linuxでした。

CentOSの開発、リリースが終了してからはAlmaLinuxを第1ターゲット としています。

依存ソフトウェア

DAQ-MiddlewareはOpenRTM-aistをベースとして使っていますので OpenRTM-aistのインストールが必要です。 OpenRTM-aistは2.0からcmakeでビルドする方式になりました。 OpenRTM-aistのビルドにはlibuuid開発ファイルと omniORB 4.3が必要です。

Distributions.mk

AlmaLinux以外のLinuxディストリビューションでもコンパイル 可能であるようにするために Distributions.mk を用意してそこに以下の情報を書くようにしています。

  • 使用するpythonのバージョン (Python2かPython3か)
  • pythonモジュールを置くディレクトリ
  • WebUIに使用するpythonモジュール (mod_pythonかmod_wsgiか)
  • WebUIに使用するpythonモジュールのコンパイルに必要なpython-configのファイル名
  • 使用するOpenRTM-aistのバージョン (OpenRTM-aist 1.xか2.0か)
  • WebUIで使用するhttpdの設定ファイルを置くディレクトリ

ディストリビューションの判定には以前はlsb-releaseコマンドを 使っていましたが、最近のディストリビューションには含まれなく なってきたため、/etc/os-releaseを見て判定することにしました。

以下のディストリビューション用の情報がすでに入っています。

  • Scientific Linux (5.0 - 7)
  • CentOS (5 - 9)
  • AlmaLinux (8 - 10)
  • Fedora
  • Debian (12 - 13)
  • Ubuntu
  • Arch Linux

このファイルはいろいろなディレクトリにあるMakefileでincludeしています。

OpenRTM-aistのバージョン

OpenRTM-aistには1.2と2.0のふたつのバージョンがありますが、 DAQ-Middlewareソースコード内では#ifdefを使って両方の バージョンに対応しています。

Makefile

以下のmakefileの断片を作って、includeして使っています。

  • src/lib/lib.mk シェアードライブラリを作るルール
  • src/mk/comp.mk.in DAQコンポーネントをコンパイルするときのルールの雛型。@RTM_CONFIG@などにOpenRTM-aistのバージョンにあわせた値が入りインストールされる。
  • Distributions.mk ディストリビューションの各種情報

Clone this wiki locally