[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:18211] Re: [Q] debhelper v9対応にすべき?



2012年3月2日0:24 Takahide Nojima <nozzy123nozzy@xxxxxxxxx>:
> 野島です。どもども。
>
>> あと、kanatestがさっくりDEB_BUILD_OPTIONS='noopt'の影響を受けないの
> は、
>> > upstream付属のconfigure.ac内部でCFLAGSを全面的に上書きしているから
> だった
>> > りします。debian/patch/* にこのあたりの修正含めてdh_autoreconfigとか
> 検討
>> > しまする。
>>
>> configure.ac 内ではそのようなことをしているように見えません。
>> 野島さんの見解は現在の configure では debian/rules で CFLAGS を指定し
> ても、
>> make 実行時は反映されないということでしょうか。
>>
>
> 大変申し訳ないです。上の指摘を受けてもろもろ確認して自分の記載を全面的に書き直します。
>
>  (1) configureの段階で、CFLAGSは決め打ちに見えます。
>    ------kanatest-0.4.8のconfigure.ac該当部分-----
>      CFLAGS="$BUILD_CFLAGS -Wall $PLATFORM_CFLAGS -D_GNU_SOURCE"
>    CXXFLAGS="$CFLAGS"
>    CPPFLAGS="$gtk_CFLAGS $xml_CFLAGS"
>    LIBS="$gtk_LIBS $xml_LIBS"
>    ------kanatest-0.4.8のconfigure.ac該当部分-----
>
>     みての通り、configure外でCFLAGSにあらかじめ何かを設定してもconfigure内部で値が上書き代入される
>   形となってます。もちろん、BUILD_CFLAGSとか、PLATFORM_CFLAGSとかを別途debian/rulesで
>   いじるように改造すればCFLAGSに反映できるとは思いますが、現行のdebian/rulesでは、
>   そうなっておらず、また、BUILD_CFLAGS/PLATFORM_CFLAGSをデフォルトで直接設定するdebian関係のツール
>   もないと思ってます。もちろん、BUILD_CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)とか
>   debian/rulesに搭載すればいいという話もありますが、CFLAGSをconfigure内部に取り込むにはCFLAGSを使う
>   というのが慣習かと自分は思っており、dpkg-buildflagsもCFLAGS経由でコンパイルオプションを引き渡す事を
>   意図してるように見えるので、configure外部で指定したCFLAGSをconfigure内部に引き継ぐ形にした方が将来に渡って
>   都合が良いかなと思いました。

別にとっちでもいいじゃないでしょうか。
そこまで解析しているならupstreamに合うようにパッケージ化すればいいし、直接CFLAGS に書くことを
upstreamに勧めるならパッチ書いて送ってあげればいいと思います。

あと、BUILD_CFLAGSとか、PLATFORM_CFLAGS うんぬんはconfigure の前に指定すればよいとおもいます。

------
DEBIAN_CFLAGS = `dpkg-buildflags --get CFLAGS`
.....
config.status: $(QUILT_STAMPFN) configure
    dh_testdir
    BUILD_CFLAGS="$(DEBIAN_CFLAGS)" ./configure $(configure_flags)
--prefix=/usr \
------

>
>  (2) debian/rulesで
>     ----- kanatest 0.4.8のdebian/rules抜粋 --------
>       build: build-stamp
>     build-stamp: config.status
>        dh_testdir
>        $(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs -Wl,--as-needed"
>        touch build-stamp
>      ------kanatest 0.4.8のdebian/rules抜粋
>
>    とあるので、CFLAGSをdebian/rulesで変更すれば確かにmakeの時点でCFLAGSは反映されます。が、
>    せっかくconfigureでいろいろテスト/オプションを加味して得たはずのCFLAGSを
>    さっくりまるごと無視して上書する形なので、そもそもupstreamの意図にそった指定方法なのかが心配です。
>    ※まあ、upstreamがそれでOKって言えば問題ないです。ここはまだ未確認。

make に CFLAGS や LDFLASG を指定するのはまずいでしょうね。
configure で生成された変数を利用するように直したほうがいいと思います。
そのための configure ですし。

岩松

-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org}
   GPG ID: 40AD1FA6