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

内藤 祐一郎 naito.yuichiro @ gmail.com
2016年 7月 15日 (金) 15:55:47 UTC


こんばんは、内藤です。

おそらく ${PORT_OPTIONS:MLANGUAGE_USA} という変数が
定義されることで判別可能と思います。

ただ、 configure にオプションを追加したいだけでしたら、
.ifで判定しなくても

LANGUAGE_USA_CONFIGURE_ON = <configureのオプション>

でいけそうな気がします。

#ports/Mk/bsd.options.mk を眺めてそんな気がしただけですので、
#間違ってたらごめんなさい。

> 2016/07/15 22:50、User Ribbon <ribbon at ns.ribbon.or.jp> のメール:
> 
> taskwarrior というソフトがあります。これは、portsになっています。
> ただ、このソフトはメッセージを標準の英語以外、8つの言語で表示させる
> ことができます。しかし、その方法は、コンパイル時に言語を指定する
> 方式なのですね。最近の、gettextを使ったような方法ではありません。
> 
> そこで、portsのMakefile に手を入れて、言語の設定が出来るようにしてみようと
> 思いました。他のports の例を参考にして、
> 
> OPTIONS_SINGLE= LANGUAGE
> OPTIONS_SINGLE_LANGUAGE= LANGUAGE_USA LANGUAGE_ESP LANGUAGE_FRA LANGUAGE_DEU \
>                         LANGUAGE_ITA LANGUAGE_PRT LANGUAGE_RUS LANGUAGE_POL \
>                         LANGUAGE_JPN
> OPTIONS_DEFAULT= LANGUAGE_USA
> LANGUAGE_DESC= Language select
> LANGUAGE_USA_DESC= English    message support
> (以下略)
> という記述を追加してみました。この状態で、 make config を実行するとメニューが出ます。
> ここまでは良いのですが、この結果をコンパイラに渡す方法が分かりません。
> 
> Makefile中に if文を記述して、CMAKE_ARGS に追加パラメータを渡すようにすれば
> 良いはずなのですが、if文の書き方が分からないのです。
> 
> .if ${OSVERSION} < 1000000
> BUILD_DEPENDS+= ${LOCALBASE}/bin/clang36:${PORTSDIR}/lang/clang36
> CPP=    ${LOCALBASE}/bin/clang-cpp36
> CC=     ${LOCALBASE}/bin/clang36
> CXX=    ${LOCALBASE}/bin/clang++36
> .endif
> 
> と言う部分はあるので、おそらく .if がif文に相当するものだと思います。
> しかし、選択された結果(上記だとLANGUAGE_USA)をif文の引数にどうやって
> 指定したら良いでしょうか?
> 
> ribbon
> _______________________________________________
> freebsd-users-jp at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe at freebsd.org"

-- 
内藤 祐一郎
naito.yuichiro at gmail.com





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