ebuild読み 05 x11-libs/gtkglarea
今日は x11-libs/gtkglarea-2.0.1 を読みます。
# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/x11-libs/gtkglarea/gtkglarea-2.0.1.ebuild,v 1.10 2011/03/27 12:56:30 nirbheek Exp $ EAPI="2" GCONF_DEBUG="no" inherit gnome2
まあ、いつも通りに inheritしてますね。 GCONF_DEBUG="no" だとそのパッケージにはデバッグ機能がない、と言っていることなります。
DESCRIPTION="GL extensions for gtk+" HOMEPAGE="http://www.gnome.org/" LICENSE="GPL-2 LGPL-2.1" SLOT="2" KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux" IUSE="examples" RDEPEND=">=x11-libs/gtk+-2.0.3:2 virtual/opengl" DEPEND="${RDEPEND} dev-util/pkgconfig" DOCS="AUTHORS ChangeLog NEWS README* docs/*.txt"
この DOCS は gnome2_src_install()で処理されてここで指定されているものをインストールしてくれます。
pkg_setup() { G2CONF="${G2CONF} --disable-static" }
G2CONFはgnome2_src_configure()で使われます。 econf ${G2CONF}という形でよびだされるので、ようするにconfigureに追加したいオプションを指定しているわけですね。
src_prepare() { # Do not build examples sed "s:\(SUBDIRS.*\)examples:\1:" -i Makefile.am Makefile.in || die "sed failed" }
sed -i を使って指定したファイルをその場所で(in-placeで)文字列置換しています。ここでは examples のディレクトリを削除することで examples をビルドしないようにしているわけですね。 sedに失敗した時にパッケージの失敗になるように die を使っておきましょう。
src_install() { gnome2_src_install if use examples; then cd "${S}"/examples insinto /usr/share/doc/${PF}/examples doins *.c *.h *.lwo README || die "doins failed" fi }
インストールです。 デフォルト動作として eclassの中で定義されている gnome2_src_install() を呼んだ後に、このパッケージ専用の動作として USE=examplesの時に examplesの中身をインストールする処理をしていますね。