[FreeBSD-users-jp 95875] ports の Makefile で条件コンパイルを指定する方法
User Ribbon
ribbon @ ns.ribbon.or.jp
2016年 7月 15日 (金) 13:56:45 UTC
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 メーリングリストの案内