--- ../../../gentoo/x11-libs/wxGTK/wxGTK-3.0.2.0-r1.ebuild	2015-05-21 18:31:05.407396295 +0300
+++ ./wxGTK-3.0.2.0-r100.ebuild	2015-05-22 18:52:20.102760373 +0300
@@ -4,7 +4,7 @@
 
 EAPI="5"
 
-inherit eutils flag-o-matic
+inherit eutils flag-o-matic multibuild multilib-minimal
 
 DESCRIPTION="GTK+ version of wxWidgets, a cross-platform C++ GUI toolkit"
 HOMEPAGE="http://wxwidgets.org/"
@@ -14,46 +14,48 @@
 SRC_URI="mirror://sourceforge/wxpython/wxPython-src-${PV}.tar.bz2
 	doc? ( mirror://sourceforge/wxpython/wxPython-docs-${PV}.tar.bz2 )"
 
-KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
-IUSE="+X aqua doc debug gstreamer libnotify opengl sdl tiff webkit"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="+X aqua doc debug gstreamer gtk libnotify opengl sdl tiff webkit"
 
 SLOT="3.0"
 
 RDEPEND="
-	dev-libs/expat
-	sdl?    ( media-libs/libsdl )
+	dev-libs/expat[${MULTILIB_USEDEP}]
+	sdl?    ( media-libs/libsdl[${MULTILIB_USEDEP}] )
 	X?  (
-		>=dev-libs/glib-2.22:2
-		media-libs/libpng:0=
-		sys-libs/zlib
-		virtual/jpeg
-		>=x11-libs/gtk+-2.18:2
-		x11-libs/gdk-pixbuf
-		x11-libs/libSM
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
+		>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
+		media-libs/libpng:0=[${MULTILIB_USEDEP}]
+		sys-libs/zlib[${MULTILIB_USEDEP}]
+		virtual/jpeg:=[${MULTILIB_USEDEP}]
+		gtk? ( >=x11-libs/gtk+-2.18:2[${MULTILIB_USEDEP}] )
+		x11-libs/gtk+:3[${MULTILIB_USEDEP}]
+		x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
+		x11-libs/libSM[${MULTILIB_USEDEP}]
+		x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+		x11-libs/pango[X,${MULTILIB_USEDEP}]
 		gstreamer? (
-			media-libs/gstreamer:0.10
-			media-libs/gst-plugins-base:0.10 )
-		libnotify? ( x11-libs/libnotify )
-		opengl? ( virtual/opengl )
-		tiff?   ( media-libs/tiff:0 )
+			media-libs/gstreamer:0.10[${MULTILIB_USEDEP}]
+			media-libs/gst-plugins-base:0.10[${MULTILIB_USEDEP}] )
+		libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
+		opengl? ( virtual/opengl[${MULTILIB_USEDEP}] )
+		tiff?   ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
 		webkit? ( net-libs/webkit-gtk:2 )
 		)
 	aqua? (
-		>=x11-libs/gtk+-2.4[aqua=]
-		virtual/jpeg
-		tiff?   ( media-libs/tiff:0 )
+		gtk? ( >=x11-libs/gtk+-2.4:2[aqua=,${MULTILIB_USEDEP}] )
+		x11-libs/gtk+:3[aqua=,${MULTILIB_USEDEP}]
+		virtual/jpeg:=[${MULTILIB_USEDEP}]
+		tiff?   ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
 		)"
 
 DEPEND="${RDEPEND}
-	virtual/pkgconfig
-	opengl? ( virtual/glu )
+	virtual/glu[${MULTILIB_USEDEP}]
+	virtual/pkgconfig[${MULTILIB_USEDEP}]
 	X?  (
-		x11-proto/xproto
-		x11-proto/xineramaproto
-		x11-proto/xf86vidmodeproto
-		)"
+		x11-proto/xproto[${MULTILIB_USEDEP}]
+		x11-proto/xineramaproto[${MULTILIB_USEDEP}]
+		x11-proto/xf86vidmodeproto[${MULTILIB_USEDEP}]
+	)"
 
 PDEPEND=">=app-eselect/eselect-wxwidgets-20131230"
 
@@ -63,92 +65,126 @@
 
 S="${WORKDIR}/wxPython-src-${PV}"
 
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-3.0.0.0-collision.patch
+wxgtk_setup() {
+	local MULTIBUILD_ID="wxgtk"
+	local MULTIBUILD_VARIANTS=( $(usex gtk gtk2) gtk3 )
 
-	# https://bugs.gentoo.org/421851
-	# https://bugs.gentoo.org/499984
-	# https://bugs.gentoo.org/536004
-	sed \
-		-e "/wx_cv_std_libpath=/s:=.*:=$(get_libdir):" \
-		-e 's:3\.0\.1:3.0.2:g' \
-		-e 's:^wx_release_number=1$:wx_release_number=2:' \
-		-i configure || die
+	"${@}"
+}
 
-	epatch_user
+pkg_setup() {
+	MULTIBUILD_ID="multilib"
 }
 
-src_configure() {
-	local myconf
+src_prepare() {
+	epatch "${FILESDIR}"/${PN}-3.0.0.0-collision.patch
+	epatch_user
+
+	multilib_prepare() {
+		# https://bugs.gentoo.org/421851
+		# https://bugs.gentoo.org/499984
+		# https://bugs.gentoo.org/536004
+		sed \
+			-e "/wx_cv_std_libpath=/s:=.*:=$(get_libdir):" \
+			-e 's:3\.0\.1:3.0.2:g' \
+			-e 's:^wx_release_number=1$:wx_release_number=2:' \
+			-i "${BUILD_DIR}"/configure || die
+	}
+	multilib_copy_sources
+	multilib_foreach_abi multilib_prepare
+}
 
-	# X independent options
-	myconf="
-			--with-zlib=sys
-			--with-expat=sys
-			--enable-compat28
-			$(use_with sdl)"
-
-	# debug in >=2.9
-	# there is no longer separate debug libraries (gtk2ud)
-	# wxDEBUG_LEVEL=1 is the default and we will leave it enabled
-	# wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs.
-	# apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0.
-	# http://docs.wxwidgets.org/3.0/overview_debugging.html
-	# http://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c
-	use debug \
-		&& myconf="${myconf} --enable-debug=max"
-
-	# wxGTK options
-	#   --enable-graphics_ctx - needed for webkit, editra
-	#   --without-gnomevfs - bug #203389
-	use X && \
-		myconf="${myconf}
-			--enable-graphics_ctx
-			--with-gtkprint
-			--enable-gui
-			--with-libpng=sys
-			--with-libxpm=sys
-			--with-libjpeg=sys
-			--without-gnomevfs
-			$(use_enable gstreamer mediactrl)
-			$(use_enable webkit webview)
-			$(use_with libnotify)
-			$(use_with opengl)
-			$(use_with tiff libtiff sys)"
+multilib_src_configure() {
+	multibuild_src_configure() {
+		mkdir -p "${BUILD_DIR}" || die
+		pushd "${BUILD_DIR}" >/dev/null || die
+
+		local myconf
+
+		# X independent options
+		myconf="
+				--with-zlib=sys
+				--with-expat=sys
+				--enable-compat28
+				$(use_with sdl)"
+
+		# debug in >=2.9
+		# there is no longer separate debug libraries (gtk2ud)
+		# wxDEBUG_LEVEL=1 is the default and we will leave it enabled
+		# wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs.
+		# apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0.
+		# http://docs.wxwidgets.org/3.0/overview_debugging.html
+		# http://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c
+		use debug \
+			&& myconf="${myconf} --enable-debug=max"
+
+		# wxGTK options
+		#   --enable-graphics_ctx - needed for webkit, editra
+		#   --without-gnomevfs - bug #203389
+		use X && \
+			myconf="${myconf}
+				--enable-graphics_ctx
+				--with-gtkprint
+				--enable-gui
+				--with-libpng=sys
+				--with-libxpm=sys
+				--with-libjpeg=sys
+				--without-gnomevfs
+				$(use_enable gstreamer mediactrl)
+				$(multilib_native_use_enable webkit webview)
+				$(use_with libnotify)
+				$(use_with opengl)
+				$(use_with tiff libtiff sys)"
+
+		use aqua && \
+			myconf="${myconf}
+				--enable-graphics_ctx
+				--enable-gui
+				--with-libpng=sys
+				--with-libxpm=sys
+				--with-libjpeg=sys
+				--with-mac
+				--with-opengl"
+				# cocoa toolkit seems to be broken
+
+		# wxBase options
+		if use !X && use !aqua ; then
+			myconf="${myconf}
+				--disable-gui"
+		fi
 
-	use aqua && \
 		myconf="${myconf}
-			--enable-graphics_ctx
-			--enable-gui
-			--with-libpng=sys
-			--with-libxpm=sys
-			--with-libjpeg=sys
-			--with-mac
-			--with-opengl"
-			# cocoa toolkit seems to be broken
+			--with-gtk=${MULTIBUILD_VARIANT: -1}"
 
-	# wxBase options
-	if use !X && use !aqua ; then
-		myconf="${myconf}
-			--disable-gui"
-	fi
+		econf ${myconf}
 
-	mkdir "${S}"/wxgtk_build
-	cd "${S}"/wxgtk_build
+		popd >/dev/null || die
+	}
 
-	ECONF_SOURCE="${S}" econf ${myconf}
+	wxgtk_setup multibuild_foreach_variant multibuild_src_configure
 }
 
-src_compile() {
-	cd "${S}"/wxgtk_build
-	emake
+multilib_src_compile() {
+	multibuild_src_compile() {
+		pushd "${BUILD_DIR}" >/dev/null || die
+		emake
+		popd >/dev/null || die
+	}
+
+	wxgtk_setup multibuild_foreach_variant multibuild_src_compile
 }
 
-src_install() {
-	cd "${S}"/wxgtk_build
+multilib_src_install() {
+	multibuild_src_install() {
+		pushd "${BUILD_DIR}" >/dev/null || die
+		emake DESTDIR="${D}" install
+		popd >/dev/null || die
+	}
 
-	emake DESTDIR="${D}" install
+	wxgtk_setup multibuild_foreach_variant multibuild_src_install
+}
 
+multilib_src_install_all() {
 	cd "${S}"/docs
 	dodoc changes.txt readme.txt
 	newdoc base/readme.txt base_readme.txt