[Momonga-devel.ja:00418] Re: kernel-2.4.18-116m での変更(コマンドラインから設定変更)
- From: KOMATSU Shinichiro <koma2@xxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 1 Sep 2002 17:04:52 +0900
小松です。
From: Ken Deeter <ktdeeter@xxxxxxxxxxxxxxxxxxxx>
Subject: [Momonga-devel.ja:00375] Re: kernel-2.4.18-116m での変更(コマンドラインから設定変更)
Date: Sun, Aug 25, 2002 at 03:58:22AM JST
> specファイルには、他のファイルをincludeするマクロはないでしょうか。つま
> り、コマンドラインでしていするより、%defineの内容をkernel.specから別のフ
> ァイルに移して保存しておき、kernel.specが処理される時に、その別のファイ
> ルも同時に読み込まれ、内容がkernel.specに在るものをoverrideする仕組みに
> はできないでしょうか。
%include はあります。
> つまいたとえばkernel.specには
>
> %define optionA 0
> %define optionB 1
> %define optionC 1
>
> %include kernel.specopts # <-- こういうのがもし在ればのはなしですが
>
> んでもってkernel.specoptsには
>
> %define optionA 1
> %define optionC 0
>
> など、カスタムな設定を入れておく。kernel.specにあって、specoptsにないも
> のは、kernel.specの方のデフォルトがしようされる形になればいいんじゃない
> でしょうか。
これ、結構いい案だと思います。
ついでだから、include すべきファイルの名前も、置き場所も
決め打ちしてしまって、rpm の macro を定義してやるとよさそう。
ということで、次のような定義を /usr/lib/rpm/macros などに
書いてやるのはどうでしょう?
%specopts_dir /etc/rpm/specopts
%include_specopts \
%define specopts_file %specopts_dir/%name.specopts \
%{expand: %(if [ -f %specopts_file ]; then echo %%include %specopts_file; fi)}
例えば kernel.spec 中で %include_specopts と書けば、
もし /etc/rpm/specopts/kernel.specopts が存在するなら
それを読み込む、というようになります。
# 本当は %include_specopts なんて書かないでも
# 勝手に include されるように macro を書ければいいのですが、
# できるかどうか調べてません。
--
---------------------------------------
東京大学大学院総合文化研究科
広域科学専攻相関基礎科学系
佐々研究室 博士3年
小松 晋一朗
mailto:koma2@xxxxxxxxxxxxxxxxxxxx
koma2@xxxxxxxxxxxxxxxxx
http://kamuy.c.u-tokyo.ac.jp/~koma2/
---------------------------------------