Autotools 格闘中 その3

特定の PATH にインストール

ライブラリとして *.scm を インストールされるようにする。

datadir = @MONAR_LIB_PATH@
data_DATA = library.scm

上記の PATH をC++からも知りたい

-D で g++ に渡す。
本当は config.h で渡したいが方法を見つけられなかった。

-D MONAR_LIB_PATH="\"@MONAR_LIB_PATH@\""

鬼車/Boehm GC をインストールしない

現在はサブディレクトリに onig, gc ディレクトリがあって、それらのディレクトリは配布されているライブラリほぼそのまま。
なので SUBDIRS = onig gc とやっておいてトップレベルで ./configure とか make とか make install するとそれらのライブラリも同じ動きをする。(つまり単独で ./configure -> make -> make installしたのと同じ。)


この動きはうれしくない。
monar をインストールすると勝手に他のライブラリまでもインストールされることになるからだ。
monar はこれらのライブラリを static link しているだけなのでインストールは必要ない。


正しくこれに対処するには

  • gc, onig の configure などを一切使わないでトップレベル自前でビルドとか
  • それぞれの Makefile.am で noinst_ としまくる

なのだろうけど面倒なので gc/Makefile.am と onig/Makefile.am に空の install ターゲットを作って対処した。

続く...