aboutsummaryrefslogtreecommitdiffstats
path: root/Mk
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-04-04 14:44:22 +0800
committermarcus <marcus@FreeBSD.org>2003-04-04 14:44:22 +0800
commit3097f92a95651047da9fb94e8b298ecf3cf6205f (patch)
tree102ff68d1af416d2046cc5591c5bc2341a2e1072 /Mk
parent49a05ded8c3271c45080b576e778f6e56a9dc8f4 (diff)
downloadfreebsd-ports-gnome-3097f92a95651047da9fb94e8b298ecf3cf6205f.tar.gz
freebsd-ports-gnome-3097f92a95651047da9fb94e8b298ecf3cf6205f.tar.zst
freebsd-ports-gnome-3097f92a95651047da9fb94e8b298ecf3cf6205f.zip
Merge in phase two of the new GNOME porting infrastructure. This update does
away with the USE_GNOMNG macro (though I will keep this macro around for a bit just in case). It also adds GNOME 2 component support. A new macro has also been introduced called GNOME_DESKTOP_VERSION. Users can set this in /etc/make.conf or define it when building ports. Current allowed values are 1 or 2. Depending on the value of this macro, certain ports may be marked BROKEN if they would conflict with the desired GNOME desktop version. Also note, the old USE_GTK, USE_GNOME=yes, USE_IMLIB, USE_ESOUND, and USE_GLIB are now obsolete. Backwards compatability has been provided, but those macros should no longer be used. Special thanks to all the users on freebsd-gnome@ that help test these patches, and provided feedback. Documentation updates to the FreeBSD GNOME project site will be forthcoming.
Diffstat (limited to 'Mk')
-rw-r--r--Mk/bsd.gnome.mk765
1 files changed, 468 insertions, 297 deletions
diff --git a/Mk/bsd.gnome.mk b/Mk/bsd.gnome.mk
index 497934c1e960..840b67c9592c 100644
--- a/Mk/bsd.gnome.mk
+++ b/Mk/bsd.gnome.mk
@@ -6,354 +6,525 @@
#
# Please view me with 4 column tabs!
-.if !defined(USE_GNOMENG)
.if !defined(_POSTMKINCLUDED)
-# Please make sure all changes to this file are passed through the maintainer.
+# Please make sure all changes to this file are passed through the maintainer.
# Do not commit them yourself (unless of course you're the Port's Wraith ;).
Gnome_Include_MAINTAINER= gnome@FreeBSD.org
+# This section defines possible names of GNOME components and all information
+# necessary for ports to use those components.
+
+# Ports can use this as follows:
+#
+# USE_GNOME= gnomeprint bonobo
+#
+# .include <bsd.port.mk>
+#
+# As a result proper LIB_DEPENDS/RUN_DEPENDS will be added and CONFIGURE_ENV
+# and MAKE_ENV defined.
+
+_USE_GNOME_ALL= gnomehack gnomeprefix gnomehier gnomeaudio esound libghttp \
+ glib12 gtk12 libxml gdkpixbuf imlib orbit gnomelibs \
+ gnomecanvas oaf gnomemimedata gconf gnomevfs libcapplet \
+ gnomeprint bonobo libgda gnomedb libglade gal glibwww gtkhtml \
+ libpanel
+_USE_GNOME_ALL+=glib20 atk pango gtk20 linc libidl orbit2 libglade2 libxml2 \
+ libxslt bonoboactivation libbonobo gconf2 gnomevfs2 gail \
+ libgnomecanvas libartlgpl2 libgnomeprint libgnomeprintui \
+ libgnome libbonoboui libgnomeui atspi libgailgnome \
+ libgtkhtml gnomedesktop libwnck vte libzvt librsvg2 eel2 \
+ gnomepanel nautilus2 metacity gal2
+
+SCROLLKEEPER_DIR= /var/db/scrollkeeper
+gnomehack_PRE_PATCH= ${FIND} ${WRKSRC} -name "Makefile.in*" | ${XARGS} ${REINPLACE_CMD} -e \
+ 's|[(]GNOME_datadir[)]/gnome/|(datadir)/|g ; \
+ s|[(]GNOME_datadir[)]/locale|(prefix)/share/locale|g ; \
+ s|[(]datadir[)]/locale|(prefix)/share/locale|g ; \
+ s|[(]libdir[)]/locale|(prefix)/share/locale|g ; \
+ s|[(]gnomedatadir[)]/gnome|(gnomedatadir)|g ; \
+ s|[(]datadir[)]/aclocal|(prefix)/share/aclocal|g ; \
+ s|[(]datadir[)]/gnome/|(datadir)/|g ; \
+ s|[(]libdir[)]/pkgconfig|(prefix)/libdata/pkgconfig|g ; \
+ s|[$$][(]localstatedir[)]/scrollkeeper|${SCROLLKEEPER_DIR}|g ; \
+ s|[(]libdir[)]/bonobo/servers|(prefix)/libdata/bonobo/servers|g'
+
+gnomehier_RUN_DEPENDS= ${X11BASE}/share/gnome/.keep_me:${PORTSDIR}/misc/gnomehier
+gnomehier_DETECT= ${X11BASE}/share/gnome/.keep_me
+
+GNOME_HTML_DIR?= ${PREFIX}/share/doc
+gnomeprefix_CONFIGURE_ENV=GTKDOC="false"
+gnomeprefix_CONFIGURE_ARGS=--localstatedir=${PREFIX}/share/gnome \
+ --datadir=${PREFIX}/share/gnome \
+ --with-html-dir=${GNOME_HTML_DIR} \
+ --disable-gtk-doc \
+ --with-gconf-source=xml::${PREFIX}/etc/gconf/gconf.xml.defaults
+gnomeprefix_USE_GNOME_IMPL=gnomehier
+
+gnomeaudio_RUN_DEPENDS= ${X11BASE}/share/gnome/sounds/login.wav:${PORTSDIR}/audio/gnomeaudio
+gnomeaudio_DETECT= ${X11BASE}/share/gnome/sounds/login.wav
+
+ESD_CONFIG?= ${LOCALBASE}/bin/esd-config
+esound_LIB_DEPENDS= esd.2:${PORTSDIR}/audio/esound
+esound_CONFIGURE_ENV= ESD_CONFIG="${ESD_CONFIG}"
+esound_MAKE_ENV= ESD_CONFIG="${ESD_CONFIG}"
+esound_DETECT= ${ESD_CONFIG}
+
+libghttp_LIB_DEPENDS= ghttp.1:${PORTSDIR}/www/libghttp
+libghttp_DETECT= ${LOCALBASE}/etc/ghttpConf.sh
+
+GLIB_CONFIG?= ${LOCALBASE}/bin/glib12-config
+glib12_LIB_DEPENDS= glib12.3:${PORTSDIR}/devel/glib12
+glib12_CONFIGURE_ENV= GLIB_CONFIG="${GLIB_CONFIG}"
+glib12_MAKE_ENV= GLIB_CONFIG="${GLIB_CONFIG}"
+glib12_DETECT= ${GLIB_CONFIG}
+
+GTK_CONFIG?= ${X11BASE}/bin/gtk12-config
+gtk12_LIB_DEPENDS= gtk12.2:${PORTSDIR}/x11-toolkits/gtk12
+gtk12_CONFIGURE_ENV= GTK_CONFIG="${GTK_CONFIG}"
+gtk12_MAKE_ENV= GTK_CONFIG="${GTK_CONFIG}"
+gtk12_DETECT= ${GTK_CONFIG}
+gtk12_USE_GNOME_IMPL= glib12
+
+XML_CONFIG?= ${LOCALBASE}/bin/xml-config
+libxml_LIB_DEPENDS= xml.5:${PORTSDIR}/textproc/libxml
+libxml_CONFIGURE_ENV= XML_CONFIG="${XML_CONFIG}"
+libxml_MAKE_ENV= XML_CONFIG="${XML_CONFIG}"
+libxml_DETECT= ${XML_CONFIG}
+libxml_USE_GNOME_IMPL= glib12
+
+ORBIT_CONFIG?= ${LOCALBASE}/bin/orbit-config
+orbit_LIB_DEPENDS= ORBit.2:${PORTSDIR}/devel/ORBit
+orbit_CONFIGURE_ENV= ORBIT_CONFIG="${ORBIT_CONFIG}"
+orbit_MAKE_ENV= ORBIT_CONFIG="${ORBIT_CONFIG}"
+orbit_DETECT= ${ORBIT_CONFIG}
+orbit_USE_GNOME_IMPL= glib12
+
+GDK_PIXBUF_CONFIG?= ${X11BASE}/bin/gdk-pixbuf-config
+gdkpixbuf_LIB_DEPENDS= gdk_pixbuf.2:${PORTSDIR}/graphics/gdk-pixbuf
+gdkpixbuf_CONFIGURE_ENV=GDK_PIXBUF_CONFIG="${GDK_PIXBUF_CONFIG}"
+gdkpixbuf_MAKE_ENV= GDK_PIXBUF_CONFIG="${GDK_PIXBUF_CONFIG}"
+gdkpixbuf_DETECT= ${GDK_PIXBUF_CONFIG}
+gdkpixbuf_USE_GNOME_IMPL=gtk12
+
+IMLIB_CONFIG?= ${X11BASE}/bin/imlib-config
+imlib_LIB_DEPENDS= Imlib.5:${PORTSDIR}/graphics/imlib
+imlib_CONFIGURE_ENV= IMLIB_CONFIG="${IMLIB_CONFIG}"
+imlib_MAKE_ENV= IMLIB_CONFIG="${IMLIB_CONFIG}"
+imlib_DETECT= ${IMLIB_CONFIG}
+imlib_USE_GNOME_IMPL= gtk12
+
+GNOME_CONFIG?= ${X11BASE}/bin/gnome-config
+gnomelibs_LIB_DEPENDS= gnome.5:${PORTSDIR}/x11/gnomelibs
+gnomelibs_CONFIGURE_ENV=GNOME_CONFIG="${GNOME_CONFIG}"
+gnomelibs_MAKE_ENV= GNOME_CONFIG="${GNOME_CONFIG}"
+gnomelibs_DETECT= ${GNOME_CONFIG}
+gnomelibs_USE_GNOME_IMPL=esound gtk12 imlib libxml orbit
+
+gnomecanvas_LIB_DEPENDS=gnomecanvaspixbuf.1:${PORTSDIR}/graphics/gnomecanvas
+gnomecanvas_DETECT= ${X11BASE}/etc/gnomecanvaspixbufConf.sh
+gnomecanvas_USE_GNOME_IMPL=gnomelibs gdkpixbuf
+
+OAF_CONFIG?= ${X11BASE}/bin/oaf-config
+oaf_LIB_DEPENDS= oaf.0:${PORTSDIR}/devel/oaf
+oaf_CONFIGURE_ENV= OAF_CONFIG="${OAF_CONFIG}"
+oaf_MAKE_ENV= OAF_CONFIG="${OAF_CONFIG}"
+oaf_DETECT= ${OAF_CONFIG}
+oaf_USE_GNOME_IMPL= glib12 orbit libxml
+
+gnomemimedata_BUILD_DEPENDS=${X11BASE}/libdata/pkgconfig/gnome-mime-data-2.0.pc:${PORTSDIR}/misc/gnomemimedata
+gnomemimedata_RUN_DEPENDS=${X11BASE}/libdata/pkgconfig/gnome-mime-data-2.0.pc:${PORTSDIR}/misc/gnomemimedata
+gnomemimedata_DETECT= ${X11BASE}/libdata/pkgconfig/gnome-mime-data-2.0.pc
+gnomemimedata_USE_GNOME_IMPL=gnomehier
+
+GCONF_CONFIG?= ${X11BASE}/bin/gconf-config
+gconf_LIB_DEPENDS= gconf-1.1:${PORTSDIR}/devel/gconf
+gconf_CONFIGURE_ENV= GCONF_CONFIG="${GCONF_CONFIG}"
+gconf_MAKE_ENV= GCONF_CONFIG="${GCONF_CONFIG}"
+gconf_DETECT= ${GCONF_CONFIG}
+gconf_USE_GNOME_IMPL= oaf
+
+GNOME_VFS_CONFIG?= ${X11BASE}/bin/gnome-vfs-config
+gnomevfs_LIB_DEPENDS= gnomevfs.0:${PORTSDIR}/devel/gnomevfs
+gnomevfs_CONFIGURE_ENV= GNOME_VFS_CONFIG="${GNOME_VFS_CONFIG}"
+gnomevfs_MAKE_ENV= GNOME_VFS_CONFIG="${GNOME_VFS_CONFIG}"
+gnomevfs_DETECT= ${GNOME_VFS_CONFIG}
+gnomevfs_USE_GNOME_IMPL=gnomemimedata gconf gnomelibs
+
+libcapplet_LIB_DEPENDS= capplet.5:${PORTSDIR}/x11/libcapplet
+libcapplet_DETECT= ${X11BASE}/etc/cappletConf.sh
+libcapplet_USE_GNOME_IMPL=gnomelibs
+
+gnomeprint_LIB_DEPENDS= gnomeprint.16:${PORTSDIR}/print/gnomeprint
+gnomeprint_DETECT= ${X11BASE}/etc/printConf.sh
+gnomeprint_USE_GNOME_IMPL=gnomelibs gnomecanvas
+
+bonobo_LIB_DEPENDS= bonobo.2:${PORTSDIR}/devel/bonobo
+bonobo_DETECT= ${X11BASE}/etc/bonoboConf.sh
+bonobo_USE_GNOME_IMPL= oaf gnomeprint
+
+GDA_CONFIG?= ${X11BASE}/bin/gda-config
+libgda_LIB_DEPENDS= gda-client.0:${PORTSDIR}/databases/libgda
+libgda_CONFIGURE_ENV= GDA_CONFIG="${GDA_CONFIG}"
+libgda_MAKE_ENV= GDA_CONFIG="${GDA_CONFIG}"
+libgda_DETECT= ${GDA_CONFIG}
+libgda_USE_GNOME_IMPL= gconf bonobo
+
+GNOMEDB_CONFIG?= ${X11BASE}/bin/gnomedb-config
+gnomedb_LIB_DEPENDS= gnomedb.0:${PORTSDIR}/databases/gnomedb
+gnomedb_CONFIGURE_ENV= GNOMEDB_CONFIG="${GNOMEDB_CONFIG}"
+gnomedb_MAKE_ENV= GNOMEDB_CONFIG="${GNOMEDB_CONFIG}"
+gnomedb_DETECT= ${GNOMEDB_CONFIG}
+gnomedb_USE_GNOME_IMPL= libgda
+
+LIBGLADE_CONFIG?= ${X11BASE}/bin/libglade-config
+libglade_LIB_DEPENDS= glade.4:${PORTSDIR}/devel/libglade
+libglade_CONFIGURE_ENV= LIBGLADE_CONFIG="${LIBGLADE_CONFIG}"
+libglade_MAKE_ENV= LIBGLADE_CONFIG="${LIBGLADE_CONFIG}"
+libglade_DETECT= ${LIBGLADE_CONFIG}
+libglade_USE_GNOME_IMPL=gnomedb
+
+gal_LIB_DEPENDS= gal.23:${PORTSDIR}/x11-toolkits/gal
+gal_DETECT= ${X11BASE}/etc/galConf.sh
+gal_USE_GNOME_IMPL= libglade
+
+glibwww_LIB_DEPENDS= glibwww.1:${PORTSDIR}/www/glibwww
+glibwww_DETECT= ${X11BASE}/etc/glibwwwConf.sh
+glibwww_USE_GNOME_IMPL= gnomelibs
+
+gtkhtml_LIB_DEPENDS= gtkhtml-1.1.3:${PORTSDIR}/www/gtkhtml
+gtkhtml_DETECT= ${X11BASE}/etc/gtkhtmlConf.sh
+gtkhtml_USE_GNOME_IMPL= glibwww gal libghttp libcapplet
+
+libpanel_LIB_DEPENDS= panel_applet.5:${PORTSDIR}/x11/libpanel
+libpanel_DETECT= ${X11BASE}/etc/appletsConf.sh
+libpanel_USE_GNOME_IMPL=gnomelibs
+libpanel_GNOME_DESKTOP_VERSION=1
+
+glib20_LIB_DEPENDS= glib-2.0.0:${PORTSDIR}/devel/glib20
+glib20_DETECT= ${LOCALBASE}/libdata/pkgconfig/glib-2.0.pc
+
+atk_LIB_DEPENDS= atk-1.0.0:${PORTSDIR}/devel/atk
+atk_DETECT= ${LOCALBASE}/libdata/pkgconfig/atk.pc
+atk_USE_GNOME_IMPL= glib20
+
+pango_LIB_DEPENDS= pango-1.0.0:${PORTSDIR}/x11-toolkits/pango
+pango_DETECT= ${X11BASE}/libdata/pkgconfig/pango.pc
+pango_USE_GNOME_IMPL= glib20
+
+gtk20_LIB_DEPENDS= gtk-x11-2.0.0:${PORTSDIR}/x11-toolkits/gtk20
+gtk20_DETECT= ${X11BASE}/libdata/pkgconfig/gtk+-x11-2.0.pc
+gtk20_USE_GNOME_IMPL= atk pango
+
+linc_LIB_DEPENDS= linc.1:${PORTSDIR}/net/linc
+linc_DETECT= ${LOCALBASE}/libdata/pkgconfig/linc.pc
+linc_USE_GNOME_IMPL= glib20
+
+libidl_LIB_DEPENDS= IDL-2.0:${PORTSDIR}/devel/libIDL
+libidl_DETECT= ${LOCALBASE}/libdata/pkgconfig/libIDL-2.0.pc
+libidl_USE_GNOME_IMPL= glib20
+
+orbit2_LIB_DEPENDS= ORBit-2.0:${PORTSDIR}/devel/ORBit2
+orbit2_DETECT= ${LOCALBASE}/libdata/pkgconfig/ORBit-2.0.pc
+orbit2_USE_GNOME_IMPL= libidl linc
+
+libglade2_LIB_DEPENDS= glade-2.0.0:${PORTSDIR}/devel/libglade2
+libglade2_DETECT= ${X11BASE}/libdata/pkgconfig/libglade-2.0.pc
+libglade2_USE_GNOME_IMPL=libxml2 gtk20
+
+libxml2_LIB_DEPENDS= xml2.5:${PORTSDIR}/textproc/libxml2
+libxml2_DETECT= ${LOCALBASE}/libdata/pkgconfig/libxml-2.0.pc
+
+libxslt_LIB_DEPENDS= xslt.1:${PORTSDIR}/textproc/libxslt
+libxslt_DETECT= ${LOCALBASE}/libdata/pkgconfig/libxslt.pc
+libxslt_USE_GNOME_IMPL= libxml2
+
+bonoboactivation_LIB_DEPENDS= bonobo-activation.4:${PORTSDIR}/devel/bonobo-activation
+bonoboactivation_DETECT= ${LOCALBASE}/libdata/pkgconfig/bonobo-activation-2.0.pc
+bonoboactivation_USE_GNOME_IMPL=libxml2 orbit2
+
+libbonobo_LIB_DEPENDS= bonobo-2.0:${PORTSDIR}/devel/libbonobo
+libbonobo_DETECT= ${LOCALBASE}/libdata/pkgconfig/libbonobo-2.0.pc
+libbonobo_USE_GNOME_IMPL=bonoboactivation
+
+gconf2_LIB_DEPENDS= gconf-2.5:${PORTSDIR}/devel/gconf2
+gconf2_DETECT= ${X11BASE}/libdata/pkgconfig/gconf-2.0.pc
+gconf2_USE_GNOME_IMPL= orbit2 libxml2 gtk20
+
+gnomevfs2_LIB_DEPENDS= gnomevfs-2.0:${PORTSDIR}/devel/gnomevfs2
+gnomevfs2_DETECT= ${X11BASE}/libdata/pkgconfig/gnome-vfs-2.0.pc
+gnomevfs2_USE_GNOME_IMPL=gconf2 libbonobo gnomemimedata
+
+gail_LIB_DEPENDS= gailutil.17:${PORTSDIR}/x11-toolkits/gail
+gail_DETECT= ${X11BASE}/libdata/pkgconfig/gail.pc
+gail_USE_GNOME_IMPL= libgnomecanvas
+
+libgnomecanvas_LIB_DEPENDS= gnomecanvas-2.200:${PORTSDIR}/graphics/libgnomecanvas
+libgnomecanvas_DETECT= ${X11BASE}/libdata/pkgconfig/libgnomecanvas-2.0.pc
+libgnomecanvas_USE_GNOME_IMPL= libglade2 libartlgpl2
+
+libartlgpl2_LIB_DEPENDS= art_lgpl_2.5:${PORTSDIR}/graphics/libart_lgpl2
+libartlgpl2_DETECT= ${LOCALBASE}/libdata/pkgconfig/libart-2.0.pc
+
+libgnomeprint_LIB_DEPENDS= gnomeprint-2-2.0:${PORTSDIR}/print/libgnomeprint
+libgnomeprint_DETECT= ${X11BASE}/libdata/pkgconfig/libgnomeprint-2.0.pc
+libgnomeprint_USE_GNOME_IMPL= libbonobo libartlgpl2 gtk20
+
+libgnomeprintui_LIB_DEPENDS= gnomeprintui-2-2.0:${PORTSDIR}/x11-toolkits/libgnomeprintui
+libgnomeprintui_DETECT= ${X11BASE}/libdata/pkgconfig/libgnomeprintui-2.0.pc
+libgnomeprintui_USE_GNOME_IMPL= libgnomeprint libgnomecanvas
+
+libgnome_LIB_DEPENDS= gnome-2.200:${PORTSDIR}/x11/libgnome
+libgnome_DETECT= ${X11BASE}/libdata/pkgconfig/libgnome-2.0.pc
+libgnome_USE_GNOME_IMPL=libxslt gnomevfs2 esound
+
+libbonoboui_LIB_DEPENDS= bonoboui-2.0:${PORTSDIR}/x11-toolkits/libbonoboui
+libbonoboui_DETECT= ${X11BASE}/libdata/pkgconfig/libbonoboui-2.0.pc
+libbonoboui_USE_GNOME_IMPL= libgnomecanvas libgnome
+
+libgnomeui_LIB_DEPENDS= gnomeui-2.200:${PORTSDIR}/x11-toolkits/libgnomeui
+libgnomeui_DETECT= ${X11BASE}/libdata/pkgconfig/libgnomeui-2.0.pc
+libgnomeui_USE_GNOME_IMPL= libbonoboui
+
+atspi_LIB_DEPENDS= spi.1:${PORTSDIR}/x11-toolkits/at-spi
+atspi_DETECT= ${X11BASE}/libdata/pkgconfig/cspi-1.0.pc
+atspi_USE_GNOME_IMPL= gail libbonobo
+
+libgailgnome_RUN_DEPENDS= ${X11BASE}/lib/gtk-2.0/modules/libgail-gnome.so
+libgailgnome_DETECT= ${X11BASE}/libdata/pkgconfig/libgail-gnome.pc
+libgailgnome_USE_GNOME_IMPL= libgnomeui atspi
+
+libgtkhtml_LIB_DEPENDS= gtkhtml-2.0:${PORTSDIR}/www/libgtkhtml
+libgtkhtml_DETECT= ${X11BASE}/libdata/pkgconfig/libgtkhtml-2.0.pc
+libgtkhtml_USE_GNOME_IMPL=libxslt gnomevfs2 gail
+
+gnomedesktop_LIB_DEPENDS= gnome-desktop-2.3:${PORTSDIR}/x11/gnomedesktop
+gnomedesktop_DETECT= ${X11BASE}/libdata/pkgconfig/gnome-desktop-2.0.pc
+gnomedesktop_USE_GNOME_IMPL= libgnomeui
+gnomedesktop_GNOME_DESKTOP_VERSION=2
+
+libwnck_LIB_DEPENDS= wnck-1.9:${PORTSDIR}/x11-toolkits/libwnck
+libwnck_DETECT= ${X11BASE}/libdata/pkgconfig/libwnck-1.0.pc
+libwnck_USE_GNOME_IMPL= gtk20
+
+vte_LIB_DEPENDS= vte.4:${PORTSDIR}/x11-toolkits/vte
+vte_DETECT= ${X11BASE}/libdata/pkgconfig/vte.pc
+vte_USE_GNOME_IMPL= gtk20
+
+libzvt_LIB_DEPENDS= zvt-2.0.0:${PORTSDIR}/x11-toolkits/libzvt
+libzvt_DETECT= ${X11BASE}/libdata/pkgconfig/libzvt-2.0.pc
+libzvt_USE_GNOME_IMPL= gtk20
+
+librsvg2_LIB_DEPENDS= rsvg-2.4:${PORTSDIR}/graphics/librsvg2
+librsvg2_DETECT= ${X11BASE}/libdata/pkgconfig/librsvg-2.0.pc
+librsvg2_USE_GNOME_IMPL=libartlgpl2 libxml2 gtk20
+
+eel2_LIB_DEPENDS= eel-2.4:${PORTSDIR}/x11-toolkits/eel2
+eel2_DETECT= ${X11BASE}/libdata/pkgconfig/eel-2.0.pc
+eel2_USE_GNOME_IMPL= gnomevfs2 libgnomeui gail
+
+gnomepanel_LIB_DEPENDS= panel-applet-2.0:${PORTSDIR}/x11/gnomepanel
+gnomepanel_DETECT= ${X11BASE}/libdata/pkgconfig/libpanelapplet-2.0.pc
+gnomepanel_USE_GNOME_IMPL=libwnck gnomedesktop
+gnomepanel_GNOME_DESKTOP_VERSION=2
+
+nautilus2_LIB_DEPENDS= nautilus.2:${PORTSDIR}/x11-fm/nautilus2
+nautilus2_DETECT= ${X11BASE}/libdata/pkgconfig/libnautilus.pc
+nautilus2_USE_GNOME_IMPL=librsvg2 eel2 gnomedesktop
+nautilus2_GNOME_DESKTOP_VERSION=2
+
+metacity_LIB_DEPENDS= metacity-private.0:${PORTSDIR}/x11-wm/metacity
+metacity_DETECT= ${X11BASE}/libdata/pkgconfig/libmetacity-private.pc
+metacity_USE_GNOME_IMPL=gconf2 glade2
+
+gal2_LIB_DEPENDS= gal-2.0.1:${PORTSDIR}/x11-toolkits/gal2
+gal2_DETECT= ${X11BASE}/libdata/pkgconfig/gal-2.0.pc
+gal2_USE_GNOME_IMPL=gnomeui libgnomeprintui
+
+# End component definition section
+
# This section defines tests for optional software. These work off four
-# types of variables: WANT_, WITH_, HAVE_ and USE_. The logic of
-# this is that a port can WANT support for a package; a user specifies
-# if they want ports compiled WITH certain features; this section tests
-# if we HAVE these features; and the port is then free to USE them.
+# types of variables: WANT_GNOME, WITH_GNOME, HAVE_GNOME and USE_GNOME.
+# The logic of this is that a port can WANT support for a package; a user
+# specifies if they want ports compiled WITH certain features; this section
+# tests if we HAVE these features; and the port is then free to USE them.
# The logic of this section is like this:
#
-# .if defined(WANT_FOO)
-# .if defined(WITH_FOO)
-# HAVE_FOO=yes
-# .elif defined(WITHOUT_FOO)
-# .undef HAVE_FOO
-# .elif (if FOO installed)
-# HAVE_FOO=yes
-# .else
-# Print option message
-# .endif
+# .if defined(WANT_GNOME) && !defined(WITHOUT_GNOME)
+# .for foo in ALL_GNOME_COMPONENTS
+# .if defined(WITH_GNOME)
+# HAVE_GNOME += foo
+# .elif (foo installed)
+# HAVE_GNOME += foo
+# .else
+# Print option message
+# .endif
+# .endfor
# .endif
#
# Although it apears a little more convoluted in the tests.
# Ports can make use of this like so:
#
-# WANT_FOO= yes
+# WANT_GNOME= yes
#
# .include <bsd.port.pre.mk>
#
-# .if defined(HAVE_FOO)
+# .if ${HAVE_GNOME:Mfoo}!=""
# ... Do some things ...
-# USE_FOO= yes
+# USE_GNOME= foo
# .else
# ... Do some other things ...
# .endif
-
-# The following defines are for the various levels of libraries in the
-# GLib/GTK+/GNOME group of software. There are the following options:
-#
-# WITH_GLIB, WITH_GTK, WITH_ESOUND, WITH_IMLIB, WITH_GNOME:
-# - Only set by the user, indicates that they always want
-# this setting.
-# WITHOUT_GLIB, WITHOUT_GTK, WITHOUT_ESOUND, WITHOUT_IMLIB, WITHOUT_GNOME:
-# - Only set by the user, indicates that they never want
-# this setting.
-#
-# The following variables might be set:
-#
-# HAVE_GLIB, HAVE_GTK:
-# yes - found GLib/GTK+ 1.2.x or WITH_GLIB/WITH_GTK set to yes.
-# HAVE_ESOUND:
-# yes - either found ESound or WITH_ESOUND set to yes.
-# HAVE_IMLIB:
-# yes - either found Imlib or WITH_IMLIB set to yes.
-# HAVE_GNOME:
-# yes - either found GNOME or WITH_GNOME set to yes.
-
-.if defined(WANT_ESOUND) && !defined(WITHOUT_ESOUND) && !defined(WITHOUT_ALL)
-.if defined(HAVE_ESOUND)
-.undef HAVE_ESOUND
-.endif
-.if defined(WITH_ESOUND) || defined(WITH_ALL)
-HAVE_ESOUND= yes
-.else
-ESD_CONFIG?= ${LOCALBASE}/bin/esd-config
-.if exists(${ESD_CONFIG})
-HAVE_ESOUND= yes
-.else
-pre-everything::
- @${ECHO_MSG}
- @${ECHO_MSG} "If you want to compile with ESound support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_ESOUND=yes\""
- @${ECHO_MSG}
-.endif
-.endif
-.endif
-.if defined(WANT_GLIB) && !defined(WITHOUT_GLIB) && !defined(WITHOUT_ALL)
-.if defined(HAVE_GLIB)
-.undef HAVE_GLIB
-.endif
-.if defined(WITH_GLIB) || defined(WITH_ALL)
-HAVE_GLIB= yes
-.else
-GLIB_CONFIG?= ${LOCALBASE}/bin/glib12-config
-.if exists(${GLIB_CONFIG})
-HAVE_GLIB= yes
-.else
-pre-everything::
- @${ECHO_MSG}
- @${ECHO_MSG} "If you want to compile with GLib support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_GLIB=yes\""
- @${ECHO_MSG}
-.endif
-.endif
+# If the user has not defined GNOME_DESKTOP_VERSION, let's try to prevent
+# them from shooting themself in the foot. We will try to make an
+# intelligent choice on the user's behalf.
+.if exists(${gnomepanel_DETECT})
+GNOME_DESKTOP_VERSION?= 2
+.elif exists(${libpanel_DETECT})
+GNOME_DESKTOP_VERSION?= 1
.endif
-.if defined(WANT_GTK) && !defined(WITHOUT_GTK) && !defined(WITHOUT_ALL)
-.if defined(HAVE_GTK)
-.undef HAVE_GTK
-.endif
-.if defined(WITH_GTK) || defined(WITH_ALL)
-HAVE_GTK= yes
-.else
-GTK_CONFIG?= ${X11BASE}/bin/gtk12-config
-.if exists(${GTK_CONFIG})
-HAVE_GTK= yes
-.else
-pre-everything::
- @${ECHO_MSG}
- @${ECHO_MSG} "If you want to compile with GTK+ support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_GTK=yes\""
- @${ECHO_MSG}
-.endif
-.endif
-.endif
+# We also check each component to see if it has a desktop requirement. If
+# it does, and its requirement disagrees with the user's chosen desktop,
+# do not add the component to the HAVE_GNOME list.
-.if defined(WANT_IMLIB) && !defined(WITHOUT_IMLIB) && !defined(WITHOUT_ALL)
-.if defined(HAVE_IMLIB)
-.undef HAVE_IMLIB
-.endif
-.if defined(WITH_IMLIB) || defined(WITH_ALL)
-HAVE_IMLIB= yes
-.else
-IMLIB_CONFIG?= ${X11BASE}/bin/imlib-config
-.if exists(${IMLIB_CONFIG})
-HAVE_IMLIB= yes
-.else
-pre-everything::
- @${ECHO_MSG}
- @${ECHO_MSG} "If you want to compile with Imlib support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_IMLIB=yes\""
- @${ECHO_MSG}
-.endif
-.endif
-.endif
-
-.if defined(WANT_GNOME) && !defined(WITHOUT_GNOME) && !defined(WITHOUT_ALL)
-.if defined(HAVE_GNOME)
-.undef HAVE_GNOME
-.endif
-.if defined(WITH_GNOME) || defined (WITH_ALL)
-HAVE_GNOME= yes
-.else
-GNOME_CONFIG?= ${X11BASE}/bin/gnome-config
-.if exists(${GNOME_CONFIG})
-HAVE_GNOME= yes
-.else
-pre-everything::
- @${ECHO_MSG}
- @${ECHO_MSG} "If you want to compile with GNOME support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_GNOME=yes\""
- @${ECHO_MSG}
-.endif
-.endif
+_USE_GNOME_SAVED:=${USE_GNOME}
+_USE_GNOME_DESKTOP=yes
+HAVE_GNOME?=
+.if (defined(WANT_GNOME) && !defined(WITHOUT_GNOME))
+. for component in ${_USE_GNOME_ALL}
+. if defined(GNOME_DESKTOP_VERSION) && \
+ defined(${component}_GNOME_DESKTOP_VERSION)
+. if ${GNOME_DESKTOP_VERSION}==${${component}_GNOME_DESKTOP_VERSION}
+HAVE_GNOME+= ${component}
+. else
+_USE_GNOME_DESKTOP=no
+. endif
+. else
+. if exists(${${component}_DETECT})
+HAVE_GNOME+= ${component}
+. elif defined(WITH_GNOME)
+. if ${WITH_GNOME}=="yes" || ${WITH_GNOME:M${component}}!="" \
+ || ${WITH_GNOME}=="1"
+HAVE_GNOME+= ${component}
+. endif
+. endif
+. endif
+. endfor
+.elif defined(WITHOUT_GNOME)
+. if ${WITHOUT_GNOME}!="yes" && ${WITHOUT_GNOME}!="1"
+. for component in ${_USE_GNOME_ALL}
+. if ${WITHOUT_GNOME:M${component}}==""
+. if exists(${${component}_DETECT})
+HAVE_GNOME+= ${component}
+. endif
+. endif
+. endfor
+. endif
.endif
.endif
# End of optional part.
.if defined(_POSTMKINCLUDED)
-# This section contains the USE_ definitions. These also pass any HAVE_
-# options through to the build process so that ports can use them for
-# conditional building of components. Also, if optional support has been
-# requested, add a packagename suffix, to indicate the change in the port's
-# behaviour.
-
-# USE_ESOUND - Says that the port uses ESound.
-# USE_GLIB - Says that the port uses the GLib package.
-# USE_GTK - Says that the port uses the GTK+ toolkit.
-# USE_IMLIB - Says that the port uses the Imlib library.
-# USE_GNOMELIBS - Says that the port uses the GNOME libraries.
-# USE_GNOMECTRL - Says that the port uses the GNOME control center.
-# USE_GNOME - Says that the port uses the GNOME desktop environment.
-
-# These are the only "entry points" into the GNOME distribution that will
-# be supported. If you need to use a port that is (say) part of
-# the controlcenter metaport, then simply request USE_GNOMECTRL=YES.
-#
-# Any explicit depends on any of the ports that make up the x11/gnome
-# metaport will be periodically eradicated by marking the port BROKEN.
-# Please use the guidelines above to help everybody maintain a cohesive
-# FreeBSD/GNOME environment.
-#
-# Unless you're experienced with the GNOME system, we highly recommend
-# simply using USE_GNOME=yes if you have GNOME related ports you wish
-# to commit. This will certainly be a *guaranteed* interface that won't
-# be broken without significant warning. Practically all of your target
-# audience will already have the x11/gnome metaport installed, so there
-# will be minimal inconvenience in terms of excessive downloads.
-#
-# Ports using GNOME should also have USE_X_PREFIX defined.
-# (Perhaps we should add it?? XXX: aDe)
-
+
+# Hack USE_GNOME to the modular nfrastructure for port mataintainers that
+# didn't do so themselves. This will allow us to get rid of the old
+# GNOME porting infrastructure more quickly.
.if defined(USE_GNOME)
-USE_GNOMECTRL= yes
-.endif
-.if defined(USE_GNOMECTRL)
-USE_GNOMELIBS= yes
-.endif
-.if defined(USE_GNOMELIBS)
-USE_IMLIB= yes
-USE_ESOUND= yes
-.endif
-.if defined(USE_IMLIB)
-USE_GTK= yes
-.endif
+. if ${USE_GNOME}=="yes"
+USE_GNOME=gnomeprefix gnomehack gtkhtml libpanel
+. endif
.if defined(USE_GTK)
-USE_GLIB= yes
+USE_GNOME= gtk12
.endif
-
.if defined(USE_ESOUND)
-LIB_DEPENDS+= esd.2:${PORTSDIR}/audio/esound
-ESD_CONFIG?= ${LOCALBASE}/bin/esd-config
-CONFIGURE_ENV+= ESD_CONFIG="${ESD_CONFIG}"
-MAKE_ENV+= ESD_CONFIG="${ESD_CONFIG}"
-.if defined(HAVE_ESOUND)
-.if defined(PKGNAMESUFFIX)
-PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-esound
-.else
-PKGNAMESUFFIX= -esound
-.endif
-CONFIGURE_ENV+= HAVE_ESOUND=${HAVE_ESOUND}
-MAKE_ENV+= HAVE_ESOUND=${HAVE_ESOUND}
+USE_GNOME= esound
.endif
+.if defined(USE_IMLIB)
+USE_GNOME= imlib
.endif
-
.if defined(USE_GLIB)
-LIB_DEPENDS+= glib12.3:${PORTSDIR}/devel/glib12
-GLIB_CONFIG?= ${LOCALBASE}/bin/glib12-config
-CONFIGURE_ENV+= GLIB_CONFIG="${GLIB_CONFIG}"
-MAKE_ENV+= GLIB_CONFIG="${GLIB_CONFIG}"
-.if defined(HAVE_GLIB)
-.if defined(PKGNAMESUFFIX)
-PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-glib
-.else
-PKGNAMESUFFIX= -glib
-.endif
-CONFIGURE_ENV+= HAVE_GLIB=${HAVE_GLIB}
-MAKE_ENV+= HAVE_GLIB=${HAVE_GLIB}
+USE_GNOME= glib12
.endif
+.if defined(USE_GNOMECTRL)
+USE_GNOME= gnomeprefix gnomehack libcapplet
.endif
-.if defined(USE_GTK)
-LIB_DEPENDS+= gtk12.2:${PORTSDIR}/x11-toolkits/gtk12
-GTK_CONFIG?= ${X11BASE}/bin/gtk12-config
-CONFIGURE_ENV+= GTK_CONFIG="${GTK_CONFIG}"
-MAKE_ENV+= GTK_CONFIG="${GTK_CONFIG}"
-.if defined(HAVE_GTK)
-.if defined(PKGNAMESUFFIX)
-PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-gtk
-.else
-PKGNAMESUFFIX= -gtk
-.endif
-CONFIGURE_ENV+= HAVE_GTK=${HAVE_GTK}
-MAKE_ENV+= HAVE_GTK=${HAVE_GTK}
-.endif
-.endif
+# Set a reasonable (overrideable) configure target for GNOME apps.
+CONFIGURE_TARGET?= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
-.if defined(USE_IMLIB)
-LIB_DEPENDS+= Imlib.5:${PORTSDIR}/graphics/imlib
-IMLIB_CONFIG?= ${X11BASE}/bin/imlib-config
-CONFIGURE_ENV+= IMLIB_CONFIG="${IMLIB_CONFIG}"
-MAKE_ENV+= IMLIB_CONFIG="${IMLIB_CONFIG}"
-.if defined(HAVE_IMLIB)
-.if defined(PKGNAMESUFFIX)
-PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-imlib
-.else
-PKGNAMESUFFIX= -imlib
-.endif
-CONFIGURE_ENV+= HAVE_IMLIB=${HAVE_IMLIB}
-MAKE_ENV+= HAVE_IMLIB=${HAVE_IMLIB}
-.endif
-.endif
+# First of all expand all USE_GNOME_IMPL recursively
+. for component in ${_USE_GNOME_ALL}
+. for subcomponent in ${${component}_USE_GNOME_IMPL}
+${component}_USE_GNOME_IMPL+=${${subcomponent}_USE_GNOME_IMPL}
+. endfor
+. endfor
+
+# Then use already expanded USE_GNOME_IMPL to expand USE_GNOME.
+# Also, check to see if each component has a desktop requirement. If it does,
+# and if the user's chosen desktop is not of the same version, mark the
+# port as broken.
+. for component in ${USE_GNOME}
+. if defined(GNOME_DESKTOP_VERSION) && \
+ defined(${component}_GNOME_DESKTOP_VERSION)
+. if ${GNOME_DESKTOP_VERSION}!=${${component}_GNOME_DESKTOP_VERSION}
+BROKEN= ${PORTNAME} wants to use the GNOME
+BROKEN+=${${component}_GNOME_DESKTOP_VERSION} desktop, but you wish to use
+BROKEN+=the GNOME ${GNOME_DESKTOP_VERSION} desktop.
+. endif
+. endif
+. if ${_USE_GNOME_ALL:M${component}}==""
+BROKEN= "Unknown component ${component}"
+. endif
+_USE_GNOME+= ${${component}_USE_GNOME_IMPL} ${component}
+. endfor
-# Ports which optionally depend on GNOME can add '--datadir=${PREFIX}/share'
-# to CONFIGURE_ARGS before including <bsd.port.post.mk> if they do not wish
-# to install their data files in /usr/X11R6/share/gnome. Please be aware
-# that you will need to make non-standard patches to get the rest of the
-# files into the correct places. Specifically, the help files and pixmaps
-# must still go into /usr/X11R6/share/gnome/help and
-# /usr/X11R6/share/gnome/pixmaps respectively. %%DATADIR%% will still be
-# defined for you to use.
-
-.if defined(USE_GNOMELIBS)
-CONFIGURE_ARGS+=--with-gnome=${PREFIX}
-.if ${CONFIGURE_ARGS:S/--localstatedir=//} == ${CONFIGURE_ARGS:S/ / /g}
-CONFIGURE_ARGS+=--localstatedir=${PREFIX}/share/gnome
+# Then traverse through all components, check which of them
+# exist in ${_USE_GNOME} and set variables accordingly
+. for component in ${_USE_GNOME_ALL}
+. if ${_USE_GNOME:M${component}}==${component}
+BUILD_DEPENDS+= ${${component}_BUILD_DEPENDS}
+LIB_DEPENDS+= ${${component}_LIB_DEPENDS}
+RUN_DEPENDS+= ${${component}_RUN_DEPENDS}
+
+CONFIGURE_ARGS+=${${component}_CONFIGURE_ARGS}
+CONFIGURE_ENV+= ${${component}_CONFIGURE_ENV}
+MAKE_ENV+= ${${component}_MAKE_ENV}
+
+. if defined(${component}_PRE_PATCH)
+GNOME_PRE_PATCH+= ${${component}_PRE_PATCH}
+. endif
+
+. endif
+. endfor
.endif
-.if ${CONFIGURE_ARGS:S/--datadir=//} == ${CONFIGURE_ARGS:S/ / /g}
-CONFIGURE_ARGS+=--datadir=${PREFIX}/share/gnome
+
+.if defined(GNOME_PRE_PATCH) && !target(pre-patch)
+USE_REINPLACE= yes
+
+pre-patch:
+ @${GNOME_PRE_PATCH}
.endif
-LIB_DEPENDS+= gnome.5:${PORTSDIR}/x11/gnomelibs
-GNOME_CONFIG?= ${X11BASE}/bin/gnome-config
-CONFIGURE_ENV+= GNOME_CONFIG="${GNOME_CONFIG}"
-MAKE_ENV+= GNOME_CONFIG="${GNOME_CONFIG}"
-.if defined(HAVE_GNOME)
-.if defined(PKGNAMESUFFIX)
-PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-gnome
+
+.if defined(WANT_GNOME)
+USE_GNOME?=
+.if ${_USE_GNOME_SAVED}==${USE_GNOME}
+PLIST_SUB+= GNOME:="@comment " NOGNOME:=""
.else
-PKGNAMESUFFIX= -gnome
-.endif
-CONFIGURE_ENV+= HAVE_GNOME=${HAVE_GNOME}
-MAKE_ENV+= HAVE_GNOME=${HAVE_GNOME}
-PLIST_SUB+= GNOME:="" NOGNOME:="@comment " DATADIR="share/gnome"
-.endif
-.endif
-.if defined(USE_GNOMECTRL)
-BUILD_DEPENDS+= ${X11BASE}/bin/gnomecc:${PORTSDIR}/sysutils/gnomecontrolcenter
-RUN_DEPENDS+= ${X11BASE}/bin/gnomecc:${PORTSDIR}/sysutils/gnomecontrolcenter
+PLIST_SUB+= GNOME:="" NOGNOME:="@comment "
+.if defined(GNOME_DESKTOP_VERSION)
+.if ${_USE_GNOME_DESKTOP}=="yes"
+PLIST_SUB+= GNOMEDESKTOP:="" NOGNOMEDESKTOP:="@comment "
+.else
+PLIST_SUB+= GNOMEDESKTOP:="@comment " NOGNOMEDESKTOP:=""
.endif
-.if defined(USE_GNOME)
-LIB_DEPENDS+= panel_status.5:${PORTSDIR}/x11/gnomecore \
- gtkhtml-1.1.3:${PORTSDIR}/www/gtkhtml
.endif
-.if defined(WANT_GNOME) && !defined(HAVE_GNOME)
-PLIST_SUB+= GNOME:="@comment " NOGNOME:="" DATADIR="share"
.endif
-
-# Start of GNOME_VALIDATE_DEPS_CHAIN part.
-.if defined(USE_GNOMELIBS) && defined(GNOME_VALIDATE_DEPS_CHAIN)
-BUILD_DEPENDS+= python:${PORTSDIR}/lang/python
-CHKDPCHN_CMD?= ${PORTSDIR}/Tools/scripts/chkdepschain.py
-CHKDPCHN_CACHE= .chkdpchn.cache.${PKGNAME}
-
-.if !target(pre-extract)
-pre-extract::
- @${ECHO_MSG} "===> Validating build-time dependency chain for ${PKGNAME}"
- @${MKDIR} ${WRKDIR}
- @${CHKDPCHN_CMD} -b -s ${WRKDIR}/${CHKDPCHN_CACHE}
.endif
-.if !target(pre-install)
-pre-install::
- @${ECHO_MSG} "===> Validating run-time dependency chain for ${PKGNAME}"
- @${CHKDPCHN_CMD} -r -L ${WRKDIR}/${CHKDPCHN_CACHE}
-.endif
-.endif
-# End of GNOME_VALIDATE_DEPS_CHAIN part.
-
.endif
# End of use part.
-.else
-.include "${PORTSDIR}/Mk/bsd.gnomeng.mk"
-.endif