[FreeBSD-users-jp 95898] Re: ports の Makefile で条件コンパイルを指定する方法

ribbon opensuse @ ns.ribbon.or.jp
2016年 7月 20日 (水) 21:29:45 UTC


On Thu, Jul 21, 2016 at 12:42:14AM +0900, Tomoaki AOKI wrote:

> > > > LANGUAGE_USA_CMAKE_ON= -DLANGUAGE=1
> > > > LANGUAGE_ESP_CMAKE_ON= -DLANGUAGE=2
> > > > LANGUAGE_DEU_CMAKE_ON= -DLANGUAGE=3
> > > > 〜以下略〜
> > > > 
> > > > という記述を追加すれば、LANGUAGE_USA が選ばれた時は -DLANGUAGE=1 が、
> > > > LANGUAGE_ESP が選ばれた時は -DLANGUAGE=2 が CMAKE_ARGS に追加されます。
> > > > 
> > > > 詳細は Porter's Handbook の以下の辺りを参照して下さい。
> > > > 
> > > > https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-options.html#options-cmake_on
> > > 
> > > この方法でうまく出来ました。ありがとうございました。
> > > 
> > > portのメンテナに修正をお願いしようと思います。
> > 
> > で、修正をお願いしたのですが、もっとほかにいい方法あるんじゃないの、
> > と返されてしまいました。
> > 
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211182
> > 
> > OPTIONS_MULTIを使うと複数選択可能になっているので使えない、
> > すべての言語に対するオプションを指定すると、Makefileを
> > 手で直さなければならなくなるので無理ではないかと思います。
> 
> OPTIONS_RADIOだと複数の候補から1つだけ選択する形だったかと
> 思いますが、こういうのをお望みでしょうか?
> 例えばx11/xtermで使われていますが、OPTIONS_SINGLEとの違いは
> 「何も選ばない」という選択も可能なことですので、候補にする
> オプションどれも選ばれなかった場合のフォールバック処理が楽かも
> しれません。

何も選ばないと、自動的にEnglishになるので(プログラムがそうなっている)、
選択なしを選べる OPTIONS_SINGLEにしてみました。
> 
>  ※その他のパターンは/usr/ports/Mk/bsd.options.mkをご参照下さい。
>   場合によってはPorters Handbookを探るより手っ取り早いかも。
> > 
> >  slave port with SUFFIX
> >  -languages? Or slave ports for each -lang
> > 
> > という記述があるのですが、ここが意味分かりません。
> > Makefileの書き方に、slave port という書き方があるのでしょうか。
> 
> japanese/libreoffice(masterがeditors/libreoffice)や
> x11/nvidia-driver-340(masterがx11/nvidia-driver)のような
> ものがslave portです。

portsが入れ子になる感じですね。だとすると、今回の話は違うかな。
というか、なんでslave という言葉出してきたんだろう?言語ごとに
ports 分けたら、と言うことなのかなあ。

ribbon


freebsd-users-jp メーリングリストの案内