人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

FreeBSDのportsでアプリケーションをインストールするときに、configureオプションはどこで設定するのでしょうか。
make configureというコマンドを実行しても、オプションの引数(Gnu Screenの場合--enable-colors256など)をつけるとエラーになってしまいます。

●質問者: takets
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:FreeBSD GNU screen make ports アプリケーション
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ton-boo
●50ポイント

一般的にはmake時に環境変数を与えることで設定します。

どんな環境変数が有効なのかは、それぞれのportsのMakefileをみるとおおよそのことがわかります。中には、インクルードされている別ファイルを追わないとわからないものもありますが……

screenについては私自身は使っていないので未確認ですが、

WITH_XTERM_256=yes

で良さそうです。

http://havana.2-d.jp/diary/?date=20051120

どうやって環境変数を指定するかについては、こちらのサイトの「インストールするアプリケーションのカスタマイズ」あたりなどが参考になると思います。

http://www.alib.jp/FreeBSD/install

◎質問者からの返答

ありがとうございます。

ある程度までは設定可能みたいですね。ただ、本当に細かくやるのなら最終的にはソースからのコンパイルになりそうですが……。


2 ● TransFreeBSD
●50ポイント

まず、一般的に「WITH_*/WITHOUT_*」(knobと呼ばれます)で、というのはton-booさんのおっしゃる通りです。これらはconfigureに限らず(portsとしての)依存関係などのチェックに使われる可能性もありますので、それですむのならそれを使った方がたぶん幸せになれます。

これらknobが対応していない場合は「CONFIGURE_ARGS」を使います。

先ほどの「WITH_*/WITHOUT_*」も基本的にはMakefile中でこの「CONFIGURE_ARGS」に引数を追加していく形をとります。そのあたりは各portsのMakefileや、多くのアプリケーションで共通のものは/usr/ports/Mk/bsd.(hoge).mkで行なわれていますので、それらを読むと実際にどんな引数を渡しているかわかると思います。

#portsのMakefileはこういう変数定義の仕事がほとんど、というかそれだけで出来ているのが大半です

こういった変数の値を受けて実際に仕事を(ソースへの発注ですが)しているのが/usr/ports/Mk.ports.mkです。

http://www.freebsd.org/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk?r...

(タブが4なのでwebではちょっと読みにくいですが)

このファイルの冒頭には各変数やターゲットに関する説明がありますので一読をお進めします。

元に戻って、じゃあ、どんなknobがあるのか?という話になる訳ですけど、物によってはmake時に表示されますが、ほとんどはMakefile(またはMk/bsd.*.mk)を読むって事になります。ただ、このknobを調べるスクリプトをだれか作っていたという記憶がありますが、URLを見つけられませんでした。気のせいだったかなぁ。

◎質問者からの返答

それらしい変数があるのは確認していたのですが、そのままconfiugreへのオプション変数が使えるわけではなったんですね。

まさかports全体の共通設定があったとは。勉強になりました。


3 ● otsune
●50ポイント

*

大抵のportsは環境変数を設定することで対処できます。(portsで指定できるオプションはKNOBと呼びます)

sysutils/screenの場合は/usr/ports/sysutils/screen/Makefileを見るとWITH_XTERM_256を見ていますので、

cd /usr/ports/sysutils/screen
make -DWITH_XTERM_256 install

などで指定してインストールします。(portsupgradeを使っている場合は/usr/local/etc/pkgtools.confのMAKE_ARGSに指定すると便利です)

http://havana.2-d.jp/diary/?date=20051120#p01

*

またMakefileにKNOBが用意されていないportsの場合は、Makefile.localというファイルに

CONFIGURE_ARGS+= --enable-colors256

などと書けばカスタム指定できます。

また最近のportsはMakefileでOPTIONSが指定されていることが多いですが。その場合はmake configでKNOBを設定できます。

◎質問者からの返答

Makefieにある変数しかオプションの指定ができないのか、と心配だったのですが、Makefile.localを使えば自由に設定できるとは考えませんでした。

汎用的に使えるやり方でいいですね。早速試してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ