Index: head/Mk/Uses/gnome.mk =================================================================== --- head/Mk/Uses/gnome.mk (revision 413767) +++ head/Mk/Uses/gnome.mk (revision 413768) @@ -1,732 +1,732 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # $FreeBSD$ # $NetBSD: $ # # Please view me with 4 column tabs! # ======================= USERS ================================= # # There are no significant user-definable settings in here. # This file is a framework to make it easier to create GNOME ports. # # ======================= /USERS ================================ # 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 ;). # 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= glib20 introspection:build # # .include # # As a result proper LIB_DEPENDS/RUN_DEPENDS will be added and CONFIGURE_ENV # and MAKE_ENV defined. # # # GCONF_SCHEMAS - Set the following to list of all the gconf schema files # that your port installs. These schema files and # %gconf.xml files will be automatically added to # the ${PLIST}. For example, if your port has # "etc/gconf/schemas/(foo.schemas and bar.schemas)", # add the following to your Makefile: # "GCONF_SCHEMAS=foo.schemas bar.schemas". # # GLIB_SCHEMAS - Set the following to list of all gsettings schema files # (*.gschema.xml) that your ports installs. The # schema files will be automatically added to # the ${PLIST}. For example, if your port has # "share/glib-2.0/schemas/(foo.gschema.xml and bar.gschema.xml)", # add the following to your Makefile: # "GLIB_SCHEMAS=foo.gschema.xml bar.gschema.xml". # # INSTALLS_OMF - If set, bsd.gnome.mk will automatically scan pkg-plist # file and add apropriate @exec/@unexec directives for # each .omf file found to track OMF registration database. # # INSTALLS_ICONS - If a GTK+ port installs Freedesktop-style icons to # ${LOCALBASE}/share/icons, then you should use this # macro. Using this macro ensures that icons are cached # and will display correctly. This macro isn't needed # for QT based applications, which use a different method. # # MAINTAINER: gnome@FreeBSD.org .if !defined(_INCLUDE_USES_GNOME_MK) _INCLUDE_USES_GNOME_MK= yes _USES_POST+= gnome .if !empty(gnome_ARGS) IGNORE= USES=gnome takes no arguments .endif # non-version specific components _USE_GNOME_ALL= esound intlhack intltool introspection \ referencehack gnomemimedata \ gnomeprefix # GNOME 1 components _USE_GNOME_ALL+= gdkpixbuf glib12 gtk12 # GNOME 2 components _USE_GNOME_ALL+= atk atspi cairo gal2 \ gdkpixbuf2 gconf2 glib20 \ gnomedocutils gnomesharp20 \ gnomespeech gnomevfs2 gtk-update-icon-cache gtk20 gtkhtml3 gtksharp10 \ gtksharp20 gtksourceview gtksourceview2 gvfs libartlgpl2 libbonobo \ libbonoboui libgda4 libglade2 libgnome \ libgnomecanvas libgnomekbd libgnomeprint libgnomeprintui \ libgnomeui libgsf libgtkhtml libidl librsvg2 libwnck \ libxml2 libxslt \ orbit2 pango pangox-compat pygnome2 pygobject pygtk2 \ pygtksourceview vte # GNOME 3 components _USE_GNOME_ALL+=dconf evolutiondataserver3 gnomecontrolcenter3 gnomedesktop3 \ gnomemenus3 gsound gtk30 gtkhtml4 gtksourceview3 libgda5 \ libgda5-ui libwnck3 metacity nautilus3 py3gobject3 \ pygobject3 vte3 # C++ bindings _USE_GNOME_ALL+=atkmm cairomm gconfmm26 glibmm gtkmm20 gtkmm24 \ gtkmm30 gtksourceviewmm3 libgdamm libgdamm5 \ libgtksourceviewmm libxml++26 libsigc++12 libsigc++20 \ pangomm GNOME_MAKEFILEIN?= Makefile.in SCROLLKEEPER_DIR= /var/db/rarian referencehack_PRE_PATCH= ${FIND} ${WRKSRC} -name "Makefile.in" -type f | ${XARGS} ${REINPLACE_CMD} -e \ "s|test \"\$$\$$installfiles\" = '\$$(srcdir)/html/\*'|:|" GNOME_HTML_DIR?= ${PREFIX}/share/doc GCONF_CONFIG_OPTIONS?= merged GCONF_CONFIG_DIRECTORY?=etc/gconf/gconf.xml.defaults GCONF_CONFIG_SOURCE?=xml:${GCONF_CONFIG_OPTIONS}:${PREFIX}/${GCONF_CONFIG_DIRECTORY} GNOME_LOCALSTATEDIR?= ${PREFIX}/share gnomeprefix_CONFIGURE_ENV=GTKDOC="false" gnomeprefix_CONFIGURE_ARGS=--localstatedir=${GNOME_LOCALSTATEDIR} \ --with-html-dir=${GNOME_HTML_DIR} \ --disable-gtk-doc \ --with-gconf-source=${GCONF_CONFIG_SOURCE} atkmm_DETECT= ${LOCALBASE}/libdata/pkgconfig/atkmm-1.6.pc atkmm_LIB_DEPENDS= libatkmm-1.6.so:accessibility/atkmm atkmm_USE_GNOME_IMPL= glibmm atk libxml++26_DETECT= ${LOCALBASE}/libdata/pkgconfig/libxml++-2.6.pc libxml++26_LIB_DEPENDS= libxml++-2.6.so:textproc/libxml++26 libxml++26_USE_GNOME_IMPL= glibmm libxml2 cairo_DETECT= ${LOCALBASE}/libdata/pkgconfig/cairo.pc cairo_LIB_DEPENDS= libcairo.so:graphics/cairo cairomm_DETECT= ${LOCALBASE}/libdata/pkgconfig/cairomm-1.0.pc cairomm_LIB_DEPENDS= libcairomm-1.0.so:graphics/cairomm cairomm_USE_GNOME_IMPL= cairo libxml++26 gconfmm26_DETECT= ${LOCALBASE}/libdata/pkgconfig/gconfmm-2.6.pc gconfmm26_LIB_DEPENDS= libgconfmm-2.6.so:devel/gconfmm26 gconfmm26_USE_GNOME_IMPL= glibmm gconf2 glibmm_DETECT= ${LOCALBASE}/libdata/pkgconfig/glibmm-2.4.pc glibmm_LIB_DEPENDS= libglibmm-2.4.so:devel/glibmm glibmm_USE_GNOME_IMPL= libsigc++20 glib20 gsound_DETECT= ${LOCALBASE}/libdata/pkgconfig/gsound.pc gsound_BUILD_DEPENDS= gsound-play:audio/gsound gsound_LIB_DEPENDS= libgsound.so:audio/gsound gsound_RUN_DEPENDS= gsound-play:audio/gsound gsound_USE_GNOME_IMPL= glib20 gtkmm20_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtkmm-2.0.pc gtkmm20_LIB_DEPENDS= libgtkmm-2.0.so:x11-toolkits/gtkmm20 gtkmm20_USE_GNOME_IMPL= libsigc++12 gtk20 gtkmm24_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtkmm-2.4.pc gtkmm24_LIB_DEPENDS= libgtkmm-2.4.so:x11-toolkits/gtkmm24 gtkmm24_USE_GNOME_IMPL= glibmm cairomm atkmm pangomm gtk20 gtkmm30_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtkmm-3.0.pc gtkmm30_LIB_DEPENDS= libgtkmm-3.0.so:x11-toolkits/gtkmm30 gtkmm30_USE_GNOME_IMPL= glibmm cairomm atkmm pangomm gtk30 gtksourceviewmm3_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtksourceviewmm-3.0.pc gtksourceviewmm3_LIB_DEPENDS= libgtksourceviewmm-3.0.so:x11-toolkits/gtksourceviewmm3 gtksourceviewmm3_USE_GNOME_IMPL= gtkmm30 gtksourceview3 libgdamm_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgdamm-4.0.pc libgdamm_LIB_DEPENDS= libgdamm-4.0.so:databases/libgdamm libgdamm_USE_GNOME_IMPL=libgda4 glibmm libgdamm5_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgdamm-5.0.pc libgdamm5_LIB_DEPENDS= libgdamm-5.0.so:databases/libgdamm5 libgdamm5_USE_GNOME_IMPL= libgda5 glibmm libgtksourceviewmm_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtksourceviewmm-2.0.pc libgtksourceviewmm_LIB_DEPENDS= libgtksourceviewmm-2.0.so:x11-toolkits/libgtksourceviewmm libgtksourceviewmm_USE_GNOME_IMPL= gtksourceview2 gtkmm24 libsigc++12_DETECT= ${LOCALBASE}/libdata/pkgconfig/sigc++-1.2.pc libsigc++12_LIB_DEPENDS= libsigc-1.2.so:devel/libsigc++12 libsigc++20_DETECT= ${LOCALBASE}/libdata/pkgconfig/sigc++-2.0.pc libsigc++20_LIB_DEPENDS= libsigc-2.0.so:devel/libsigc++20 pangomm_DETECT= ${LOCALBASE}/libdata/pkgconfig/pangomm-1.4.pc pangomm_LIB_DEPENDS= libpangomm-1.4.so:x11-toolkits/pangomm pangomm_USE_GNOME_IMPL= pango glibmm cairomm ESD_CONFIG?= ${LOCALBASE}/bin/esd-config esound_LIB_DEPENDS= libesd.so:audio/esound esound_CONFIGURE_ENV= ESD_CONFIG="${ESD_CONFIG}" esound_MAKE_ENV= ESD_CONFIG="${ESD_CONFIG}" esound_DETECT= ${ESD_CONFIG} GLIB_CONFIG?= ${LOCALBASE}/bin/glib-config glib12_LIB_DEPENDS= libglib.so:devel/glib12 glib12_CONFIGURE_ENV= GLIB_CONFIG="${GLIB_CONFIG}" glib12_MAKE_ENV= GLIB_CONFIG="${GLIB_CONFIG}" glib12_DETECT= ${GLIB_CONFIG} GTK_CONFIG?= ${LOCALBASE}/bin/gtk-config gtk12_LIB_DEPENDS= libgtk.so: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 GDK_PIXBUF_CONFIG?= ${LOCALBASE}/bin/gdk-pixbuf-config gdkpixbuf_LIB_DEPENDS= libgdk_pixbuf.so: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 gnomemimedata_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-mime-data-2.0.pc gnomemimedata_BUILD_DEPENDS=${gnomemimedata_DETECT}:misc/gnome-mime-data gnomemimedata_RUN_DEPENDS=${gnomemimedata_DETECT}:misc/gnome-mime-data glib20_LIB_DEPENDS= libglib-2.0.so:devel/glib20 glib20_DETECT= ${LOCALBASE}/libdata/pkgconfig/glib-2.0.pc atk_LIB_DEPENDS= libatk-1.0.so:accessibility/atk atk_DETECT= ${LOCALBASE}/libdata/pkgconfig/atk.pc atk_USE_GNOME_IMPL= glib20 dconf_BUILD_DEPENDS= dconf:devel/dconf dconf_LIB_DEPENDS= libdconf.so:devel/dconf dconf_RUN_DEPENDS= dconf:devel/dconf dconf_DETECT= ${LOCALBASE}/libdata/pkgconfig/dconf.pc dconf_USE_GNOME_IMPL= glib20 pango_LIB_DEPENDS= libpango-1.0.so:x11-toolkits/pango pango_DETECT= ${LOCALBASE}/libdata/pkgconfig/pango.pc pango_USE_GNOME_IMPL= glib20 pangox-compat_LIB_DEPENDS= libpangox-1.0.so:x11-toolkits/pangox-compat pangox-compat_DETECT= ${LOCALBASE}/libdata/pkgconfig/pangox.pc pangox-compat_USE_GNOME_IMPL= glib20 pango gdkpixbuf2_LIB_DEPENDS= libgdk_pixbuf-2.0.so:graphics/gdk-pixbuf2 gdkpixbuf2_DETECT= ${LOCALBASE}/libdata/pkgconfig/gdk-pixbuf-2.0.pc gdkpixbuf2_USE_GNOME_IMPL=glib20 gtk-update-icon-cache_BUILD_DEPENDS= gtk-update-icon-cache:graphics/gtk-update-icon-cache gtk-update-icon-cache_RUN_DEPENDS= gtk-update-icon-cache:graphics/gtk-update-icon-cache gtk-update-icon-cache_DETECT= ${LOCALBASE}/bin/gtk-update-icon-cache gtk-update-icon-cache_USE_GNOME_IMPL= atk pango gdkpixbuf2 gtk20_LIB_DEPENDS= libgtk-x11-2.0.so:x11-toolkits/gtk20 gtk20_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtk+-x11-2.0.pc gtk20_USE_GNOME_IMPL= atk pango GTK2_VERSION= 2.10.0 gtk30_LIB_DEPENDS= libgtk-3.so:x11-toolkits/gtk30 gtk30_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtk+-3.0.pc gtk30_USE_GNOME_IMPL= atk pango GTK3_VERSION= 3.0.0 libidl_LIB_DEPENDS= libIDL-2.so:devel/libIDL libidl_DETECT= ${LOCALBASE}/libdata/pkgconfig/libIDL-2.0.pc libidl_USE_GNOME_IMPL= glib20 orbit2_LIB_DEPENDS= libORBit-2.so:devel/ORBit2 orbit2_DETECT= ${LOCALBASE}/libdata/pkgconfig/ORBit-2.0.pc orbit2_USE_GNOME_IMPL= libidl libglade2_LIB_DEPENDS= libglade-2.0.so:devel/libglade2 libglade2_DETECT= ${LOCALBASE}/libdata/pkgconfig/libglade-2.0.pc libglade2_USE_GNOME_IMPL=libxml2 gtk20 libxml2_BUILD_DEPENDS= xml2-config:textproc/libxml2 libxml2_LIB_DEPENDS= libxml2.so:textproc/libxml2 libxml2_RUN_DEPENDS= xml2-config:textproc/libxml2 libxml2_DETECT= ${LOCALBASE}/libdata/pkgconfig/libxml-2.0.pc libxslt_BUILD_DEPENDS= xsltproc:textproc/libxslt libxslt_LIB_DEPENDS= libxslt.so:textproc/libxslt libxslt_RUN_DEPENDS= ${libxslt_BUILD_DEPENDS} libxslt_DETECT= ${LOCALBASE}/libdata/pkgconfig/libxslt.pc libxslt_USE_GNOME_IMPL= libxml2 libbonobo_LIB_DEPENDS= libbonobo-2.so:devel/libbonobo libbonobo_DETECT= ${LOCALBASE}/libdata/pkgconfig/libbonobo-2.0.pc libbonobo_USE_GNOME_IMPL=libxml2 orbit2 introspection_DETECT= ${LOCALBASE}/libdata/pkgconfig/gobject-introspection-1.0.pc introspection_BUILD_DEPENDS= g-ir-scanner:devel/gobject-introspection introspection_LIB_DEPENDS= libgirepository-1.0.so:devel/gobject-introspection introspection_RUN_DEPENDS= g-ir-scanner:devel/gobject-introspection introspection_USE_GNOME_IMPL= glib20 introspection_MAKE_ENV= GI_SCANNER_DISABLE_CACHE=1 XDG_CACHE_HOME=${WRKDIR} gconf2_LIB_DEPENDS= libgconf-2.so:devel/gconf2 gconf2_DETECT= ${LOCALBASE}/libdata/pkgconfig/gconf-2.0.pc gconf2_USE_GNOME_IMPL= orbit2 libxml2 gtk20 gnomevfs2_LIB_DEPENDS= libgnomevfs-2.so:devel/gnome-vfs gnomevfs2_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-vfs-2.0.pc gnomevfs2_USE_GNOME_IMPL=gconf2 gnomemimedata libgnomecanvas_LIB_DEPENDS= libgnomecanvas-2.so:graphics/libgnomecanvas libgnomecanvas_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnomecanvas-2.0.pc libgnomecanvas_USE_GNOME_IMPL= libglade2 libartlgpl2 libartlgpl2_LIB_DEPENDS= libart_lgpl_2.so:graphics/libart_lgpl libartlgpl2_DETECT= ${LOCALBASE}/libdata/pkgconfig/libart-2.0.pc libgnomeprint_LIB_DEPENDS= libgnomeprint-2-2.so:print/libgnomeprint libgnomeprint_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnomeprint-2.2.pc libgnomeprint_USE_GNOME_IMPL= libbonobo libartlgpl2 gtk20 libgnomeprintui_LIB_DEPENDS= libgnomeprintui-2-2.so:x11-toolkits/libgnomeprintui libgnomeprintui_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnomeprintui-2.2.pc libgnomeprintui_USE_GNOME_IMPL= libgnomeprint libgnomecanvas libgnome_LIB_DEPENDS= libgnome-2.so:x11/libgnome libgnome_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnome-2.0.pc libgnome_USE_GNOME_IMPL=gnomevfs2 esound libbonobo libbonoboui_LIB_DEPENDS= libbonoboui-2.so:x11-toolkits/libbonoboui libbonoboui_DETECT= ${LOCALBASE}/libdata/pkgconfig/libbonoboui-2.0.pc libbonoboui_USE_GNOME_IMPL= libgnomecanvas libgnome libgnomeui_LIB_DEPENDS= libgnomeui-2.so:x11-toolkits/libgnomeui libgnomeui_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnomeui-2.0.pc libgnomeui_USE_GNOME_IMPL= libbonoboui atspi_LIB_DEPENDS= libspi.so:accessibility/at-spi atspi_DETECT= ${LOCALBASE}/libdata/pkgconfig/cspi-1.0.pc atspi_USE_GNOME_IMPL= gtk20 libbonobo libgtkhtml_LIB_DEPENDS= libgtkhtml-2.so:www/libgtkhtml libgtkhtml_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgtkhtml-2.0.pc libgtkhtml_USE_GNOME_IMPL=libxslt gnomevfs2 gnomedesktop3_LIB_DEPENDS= libgnome-desktop-3.so:x11/gnome-desktop gnomedesktop3_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-desktop-3.0.pc gnomedesktop3_USE_GNOME_IMPL= gtk30 libwnck_LIB_DEPENDS= libwnck-1.so:x11-toolkits/libwnck libwnck_DETECT= ${LOCALBASE}/libdata/pkgconfig/libwnck-1.0.pc libwnck_USE_GNOME_IMPL= gtk20 libwnck3_LIB_DEPENDS= libwnck-3.so:x11-toolkits/libwnck3 libwnck3_DETECT= ${LOCALBASE}/libdata/pkgconfig/libwnck-3.0.pc libwnck3_USE_GNOME_IMPL=gtk30 vte_LIB_DEPENDS= libvte.so:x11-toolkits/vte vte_DETECT= ${LOCALBASE}/libdata/pkgconfig/vte.pc vte_USE_GNOME_IMPL= gtk20 vte3_LIB_DEPENDS= libvte-2.91.so:x11-toolkits/vte3 vte3_DETECT= ${LOCALBASE}/libdata/pkgconfig/vte-2.91.pc vte3_USE_GNOME_IMPL= gtk30 librsvg2_LIB_DEPENDS= librsvg-2.so:graphics/librsvg2 librsvg2_DETECT= ${LOCALBASE}/libdata/pkgconfig/librsvg-2.0.pc librsvg2_USE_GNOME_IMPL=libgsf gdkpixbuf2 pango nautilus3_LIB_DEPENDS= libnautilus-extension.so:x11-fm/nautilus nautilus3_DETECT= ${LOCALBASE}/share/gir-1.0/Nautilus-3.0.gir nautilus3_USE_GNOME_IMPL=gnomedesktop3 gvfs libxml2 metacity_LIB_DEPENDS= libmetacity-private.so:x11-wm/metacity metacity_DETECT= ${LOCALBASE}/libdata/pkgconfig/libmetacity-private.pc gal2_LIB_DEPENDS= libgal-2.4.so:x11-toolkits/gal2 gal2_DETECT= ${LOCALBASE}/libdata/pkgconfig/gal-2.4.pc gal2_USE_GNOME_IMPL=gnomeui libgnomeprintui gnomecontrolcenter3_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-keybindings.pc gnomecontrolcenter3_BUILD_DEPENDS= ${gnomecontrolcenter3_DETECT}:sysutils/gnome-control-center gnomecontrolcenter3_RUN_DEPENDS= ${gnomecontrolcenter3_DETECT}:sysutils/gnome-control-center gnomecontrolcenter3_USE_GNOME_IMPL= gnomedesktop3 libgda4_LIB_DEPENDS= libgda-4.0.so:databases/libgda4 libgda4_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgda-4.0.pc libgda4_USE_GNOME_IMPL= glib20 libxslt libgda5_LIB_DEPENDS= libgda-5.0.so:databases/libgda5 libgda5_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgda-5.0.pc libgda5_USE_GNOME_IMPL= glib20 libxslt libgda5-ui_LIB_DEPENDS= libgda-ui-5.0.so:databases/libgda5-ui libgda5-ui_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgda-ui-5.0.pc libgda5-ui_USE_GNOME_IMPL=glib20 libxslt libgda5 gtksourceview_LIB_DEPENDS= libgtksourceview-1.0.so:x11-toolkits/gtksourceview gtksourceview_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtksourceview-1.0.pc gtksourceview_USE_GNOME_IMPL=libgnome libgnomeprintui gtksourceview2_LIB_DEPENDS= libgtksourceview-2.0.so:x11-toolkits/gtksourceview2 gtksourceview2_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtksourceview-2.0.pc gtksourceview2_USE_GNOME_IMPL=gtk20 libxml2 gtksourceview3_LIB_DEPENDS= libgtksourceview-3.0.so:x11-toolkits/gtksourceview3 gtksourceview3_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtksoureview-3.0.pc gtksourceview3_USE_GNOME_IMPL=gtk30 libxml2 libgsf_LIB_DEPENDS= libgsf-1.so:devel/libgsf libgsf_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgsf-1.pc libgsf_USE_GNOME_IMPL= glib20 libxml2 pygobject_DETECT= ${LOCALBASE}/libdata/pkgconfig/pygobject-2.0.pc pygobject_BUILD_DEPENDS= pygobject-codegen-2.0:devel/py-gobject pygobject_RUN_DEPENDS= pygobject-codegen-2.0:devel/py-gobject pygobject_USE_GNOME_IMPL= glib20 py3gobject3_DETECT= ${LOCALBASE}/share/py3gobject3/.keep py3gobject3_BUILD_DEPENDS= py3?-gobject3>=0:devel/py3-gobject3 py3gobject3_RUN_DEPENDS= py3?-gobject3>=0:devel/py3-gobject3 py3gobject3_USE_GNOME_IMPL= glib20 pygobject3_DETECT= ${LOCALBASE}/share/pygobject3/.keep pygobject3_BUILD_DEPENDS= py2?-gobject3>=0:devel/py-gobject3 pygobject3_RUN_DEPENDS= py2?-gobject3>=0:devel/py-gobject3 pygobject3_USE_GNOME_IMPL= glib20 pygtk2_DETECT= ${LOCALBASE}/libdata/pkgconfig/pygtk-2.0.pc pygtk2_BUILD_DEPENDS= ${pygtk2_DETECT}:x11-toolkits/py-gtk2 pygtk2_RUN_DEPENDS= ${pygtk2_DETECT}:x11-toolkits/py-gtk2 pygtk2_USE_GNOME_IMPL= libglade2 pygobject pygnome2_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-python-2.0.pc pygnome2_BUILD_DEPENDS= ${pygnome2_DETECT}:x11-toolkits/py-gnome2 pygnome2_RUN_DEPENDS= ${pygnome2_DETECT}:x11-toolkits/py-gnome2 pygnome2_USE_GNOME_IMPL=libgnomeui pygtk2 intltool_DETECT= ${LOCALBASE}/bin/intltool-extract intltool_BUILD_DEPENDS= ${intltool_DETECT}:textproc/intltool intlhack_PRE_PATCH= ${FIND} ${WRKSRC} -name "intltool-merge.in" | ${XARGS} ${REINPLACE_CMD} \ 's|mkdir $$lang or|mkdir $$lang, 0777 or| ; \ s|^push @INC, "/.*|push @INC, "${LOCALBASE}/share/intltool";| ; \ s|/usr/bin/iconv|${ICONV_CMD}|g ; \ s|unpack *[(]'"'"'U\*'"'"'|unpack ('"'"'C*'"'"'|' ; \ ${FIND} ${WRKSRC} -name configure | ${XARGS} ${REINPLACE_CMD} \ 's/DATADIRNAME=lib/DATADIRNAME=share/' intlhack_USE_GNOME_IMPL=intltool gtkhtml3_LIB_DEPENDS= libgtkhtml-3.14.so:www/gtkhtml3 gtkhtml3_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgtkhtml-3.14.pc gtkhtml3_USE_GNOME_IMPL=libglade2 gtkhtml4_LIB_DEPENDS= libgtkhtml-4.0.so:www/gtkhtml4 gtkhtml4_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgtkhtml-4.0.pc gtkhtml4_USE_GNOME_IMPL=gtk30 libxml2 gnomespeech_LIB_DEPENDS=libgnomespeech.so:accessibility/gnome-speech gnomespeech_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-speech-1.0.pc gnomespeech_USE_GNOME_IMPL=libbonobo evolutiondataserver3_LIB_DEPENDS= libedataserver-1.2.so:databases/evolution-data-server evolutiondataserver3_DETECT= ${LOCALBASE}/libdata/pkgconfig/libedataserverui-3.0.pc evolutiondataserver3_USE_GNOME_IMPL= libxml2 gtk30 gnomemenus3_BUILD_DEPENDS= gnome-menus>=3.2.0:x11/gnome-menus gnomemenus3_RUN_DEPENDS= gnome-menus>=3.2.0:x11/gnome-menus gnomemenus3_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnome-menu-3.0.pc gnomemenus3_USE_GNOME_IMPL= glib20 gnomedocutils_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-doc-utils.pc gnomedocutils_BUILD_DEPENDS= ${gnomedocutils_DETECT}:textproc/gnome-doc-utils gnomedocutils_RUN_DEPENDS= ${gnomedocutils_DETECT}:textproc/gnome-doc-utils gnomedocutils_USE_GNOME_IMPL= libxslt gtksharp10_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtk-sharp.pc gtksharp10_BUILD_DEPENDS= ${gtksharp10_DETECT}:x11-toolkits/gtk-sharp10 gtksharp10_RUN_DEPENDS= ${gtksharp10_DETECT}:x11-toolkits/gtk-sharp10 gtksharp10_USE_GNOME_IMPL= gtk20 gtksharp20_DETECT= ${LOCALBASE}/libdata/pkgconfig/gtk-sharp-2.0.pc gtksharp20_BUILD_DEPENDS= ${gtksharp20_DETECT}:x11-toolkits/gtk-sharp20 gtksharp20_RUN_DEPENDS= ${gtksharp20_DETECT}:x11-toolkits/gtk-sharp20 gtksharp20_USE_GNOME_IMPL= gtk20 gnomesharp20_DETECT= ${LOCALBASE}/libdata/pkgconfig/gnome-sharp-2.0.pc gnomesharp20_BUILD_DEPENDS= ${gnomesharp20_DETECT}:x11-toolkits/gnome-sharp20 gnomesharp20_RUN_DEPENDS= ${gnomesharp20_DETECT}:x11-toolkits/gnome-sharp20 gnomesharp20_USE_GNOME_IMPL= gnomevfs2 gtkhtml3 gtksharp20 librsvg2 vte libgnomekbd_DETECT= ${LOCALBASE}/libdata/pkgconfig/libgnomekbd.pc libgnomekbd_LIB_DEPENDS= libgnomekbd.so:x11/libgnomekbd libgnomekbd_USE_GNOME_IMPL= gtk30 libxml2 pygtksourceview_DETECT= ${LOCALBASE}/libdata/pkgconfig/pygtksourceview-2.0.pc pygtksourceview_BUILD_DEPENDS= ${pygtksourceview_DETECT}:x11-toolkits/py-gtksourceview pygtksourceview_RUN_DEPENDS= ${pygtksourceview_DETECT}:x11-toolkits/py-gtksourceview pygtksourceview_USE_GNOME_IMPL= gtksourceview2 pygtk2 gvfs_DETECT= ${LOCALBASE}/lib/gvfs/libgvfscommon.so gvfs_BUILD_DEPENDS= gvfs>=0:devel/gvfs gvfs_RUN_DEPENDS= gvfs>=0:devel/gvfs gvfs_USE_GNOME_IMPL= glib20 .if defined(INSTALLS_ICONS) USE_GNOME+= gtk-update-icon-cache .endif # End component definition section # This section defines tests for optional software. These work off four # 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_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 appears a little more convoluted in the tests. # Ports can make use of this like so: # # WANT_GNOME= yes # # .include # # .if ${HAVE_GNOME:Mfoo}!="" # ... Do some things ... # USE_GNOME= foo # .else # ... Do some other things ... # .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. _USE_GNOME_SAVED:=${USE_GNOME} HAVE_GNOME?= .if (defined(WANT_GNOME) && !defined(WITHOUT_GNOME)) . for component in ${_USE_GNOME_ALL} . 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 . 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 .if defined(USE_GNOME) # 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 IGNORE. . for component in ${USE_GNOME:C/^([^:]+).*/\1/} . if ${_USE_GNOME_ALL:M${component}}=="" IGNORE= cannot install: Unknown component ${component} . endif _USE_GNOME+= ${${component}_USE_GNOME_IMPL} ${component} . endfor # Setup the GTK+ API version for pixbuf loaders, input method modules, # and theme engines. PLIST_SUB+= GTK2_VERSION="${GTK2_VERSION}" \ GTK3_VERSION="${GTK3_VERSION}" # Set USE_CSTD for all ports that depend on glib12 .if defined(_USE_GNOME) && !empty(_USE_GNOME:Mglib12) USE_CSTD= gnu89 .endif .if defined(_USE_GNOME) && empty(_USE_GNOME:Mglib20:u) && defined(GLIB_SCHEMAS) IGNORE= GLIB_SCHEMAS is set, but needs USE_GNOME=glib20 to work .endif .if defined(_USE_GNOME) && empty(_USE_GNOME:Mgconf2:u) && defined(GCONF_SCHEMAS) IGNORE= GCONF_SCHEMAS is set, but needs USE_GNOME=gconf2 to work .endif # Then traverse through all components, check which of them # exist in ${_USE_GNOME} and set variables accordingly .ifdef _USE_GNOME . for component in ${_USE_GNOME:O:u} . if defined(${component}_PATCH_DEPENDS) PATCH_DEPENDS+= ${${component}_PATCH_DEPENDS} . endif . if defined(${component}_DETECT) . if ${USE_GNOME:M${component}\:build}!="" BUILD_DEPENDS+= ${${component}_BUILD_DEPENDS} . elif ${USE_GNOME:M${component}\:run}!="" RUN_DEPENDS+= ${${component}_RUN_DEPENDS} . else . if defined(${component}_LIB_DEPENDS) LIB_DEPENDS+= ${${component}_LIB_DEPENDS} . else BUILD_DEPENDS+= ${${component}_BUILD_DEPENDS} RUN_DEPENDS+= ${${component}_RUN_DEPENDS} . endif . endif . endif . if defined(${component}_CONFIGURE_ARGS) CONFIGURE_ARGS+=${${component}_CONFIGURE_ARGS} . endif . if defined(${component}_CONFIGURE_ENV) CONFIGURE_ENV+= ${${component}_CONFIGURE_ENV} . endif . if defined(${component}_MAKE_ENV) MAKE_ENV+= ${${component}_MAKE_ENV} . endif . if !defined(CONFIGURE_TARGET) && defined(${component}_CONFIGURE_TARGET) CONFIGURE_TARGET= ${${component}_CONFIGURE_TARGET} . endif . if defined(${component}_PRE_PATCH) GNOME_PRE_PATCH+= ; ${${component}_PRE_PATCH} . endif . endfor .endif . if defined(GCONF_SCHEMAS) MAKE_ENV+= GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 . endif .endif .if defined(WANT_GNOME) USE_GNOME?= . if ${_USE_GNOME_SAVED}==${USE_GNOME} PLIST_SUB+= GNOME:="@comment " NOGNOME:="" . else PLIST_SUB+= GNOME:="" NOGNOME:="@comment " . endif .endif .if defined(USE_GNOME_SUBR) GNOME_SUBR= ${LOCALBASE}/etc/gnome.subr RUN_DEPENDS+= ${GNOME_SUBR}:sysutils/gnome_subr SUB_LIST+= GNOME_SUBR=${GNOME_SUBR} .endif .endif # end of the part .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_GNOME_POST_MK) _INCLUDE_USES_GNOME_POST_MK= yes .if defined(GNOME_PRE_PATCH) - _USES_patch+= 290:gnome-pre-patch - gnome-pre-patch: @${GNOME_PRE_PATCH:C/^;//1} .endif -.if defined(GCONF_SCHEMAS) || defined(INSTALLS_OMF) || defined(INSTALLS_ICONS) \ - || defined(GLIB_SCHEMAS) -_USES_install+= 690:gnome-post-install - -gnome-post-install: -. if defined(GCONF_SCHEMAS) +.if defined(GCONF_SCHEMAS) +_USES_install+= 690:gnome-post-gconf-schemas +gnome-post-gconf-schemas: @for i in ${GCONF_SCHEMAS}; do \ ${ECHO_CMD} "@postunexec env GCONF_CONFIG_SOURCE=xml:${GCONF_CONFIG_OPTIONS}:%D/${GCONF_CONFIG_DIRECTORY} HOME=${WRKDIR} gconftool-2 --makefile-uninstall-rule %D/etc/gconf/schemas/$${i} > /dev/null || /usr/bin/true" \ >> ${TMPPLIST}; \ ${ECHO_CMD} "etc/gconf/schemas/$${i}" >> ${TMPPLIST}; \ ${ECHO_CMD} "@postexec env GCONF_CONFIG_SOURCE=xml:${GCONF_CONFIG_OPTIONS}:%D/${GCONF_CONFIG_DIRECTORY} HOME=${WRKDIR} gconftool-2 --makefile-install-rule %D/etc/gconf/schemas/$${i} > /dev/null || /usr/bin/true" \ >> ${TMPPLIST}; \ done -. endif +.endif # we put the @unexec behind the plist schema entry, because it compiles files # in the directory. So we should remove the port file first before recompiling. -. if defined(GLIB_SCHEMAS) +.if defined(GLIB_SCHEMAS) +_USES_install+= 690:gnome-post-glib-schemas +gnome-post-glib-schemas: @for i in ${GLIB_SCHEMAS}; do \ ${ECHO_CMD} "share/glib-2.0/schemas/$${i}" >> ${TMPPLIST}; \ done @${ECHO_CMD} "@glib-schemas" >> ${TMPPLIST}; .endif -. if defined(INSTALLS_OMF) +.if defined(INSTALLS_OMF) +_USES_install+= 690:gnome-post-omf +gnome-post-omf: @for i in `${GREP} "\.omf$$" ${TMPPLIST}`; do \ ${ECHO_CMD} "@postexec scrollkeeper-install -q %D/$${i} 2>/dev/null || /usr/bin/true" \ >> ${TMPPLIST}; \ ${ECHO_CMD} "@postunexec scrollkeeper-uninstall -q %D/$${i} 2>/dev/null || /usr/bin/true" \ >> ${TMPPLIST}; \ done -. endif +.endif -. if defined(INSTALLS_ICONS) +.if defined(INSTALLS_ICONS) +_USES_install+= 690:gnome-post-icons +gnome-post-icons: @${RM} -f ${TMPPLIST}.icons1 @for i in `${GREP} "^share/icons/.*/" ${TMPPLIST} | ${CUT} -d / -f 1-3 | ${SORT} -u`; do \ ${ECHO_CMD} "@rmtry $${i}/icon-theme.cache" \ >> ${TMPPLIST}.icons1; \ ${ECHO_CMD} "@postexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/$${i} 2>/dev/null || /usr/bin/true" \ >> ${TMPPLIST}; \ ${ECHO_CMD} "@postunexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/$${i} 2>/dev/null || /usr/bin/true" \ >> ${TMPPLIST}; \ done @if test -f ${TMPPLIST}.icons1; then \ ${CAT} ${TMPPLIST}.icons1 ${TMPPLIST} > ${TMPPLIST}.icons2; \ ${RM} -f ${TMPPLIST}.icons1; \ ${MV} -f ${TMPPLIST}.icons2 ${TMPPLIST}; \ fi -. endif .endif .endif # End of use part. Index: head/Mk/Uses/pear.mk =================================================================== --- head/Mk/Uses/pear.mk (revision 413767) +++ head/Mk/Uses/pear.mk (revision 413768) @@ -1,153 +1,155 @@ # $FreeBSD$ # # Use the PHP Extension and Application Repository # # Feature: pear # Usage: USES=pear # Valid ARGS: none # # MAINTAINER= portmgr@FreeBSD.org .if !defined(_INCLUDE_USES_PEAR_MK) _INCLUDE_USES_PEAR_MK= yes _USES_POST+= pear .if !empty(pear_ARGS) IGNORE+= USES=pear takes not arguments .endif MASTER_SITES?= http://pear.php.net/get/ \ http://us.pear.php.net/get/ \ http://de.pear.php.net/get/ EXTRACT_SUFX?= .tgz DIST_SUBDIR?= PEAR BUILD_DEPENDS+= pear:devel/pear RUN_DEPENDS+= pear:devel/pear .if !defined(USE_PHPIZE) NO_BUILD= yes .endif .if defined(PEAR_CHANNEL) && ${PEAR_CHANNEL} != "" PKGNAMEPREFIX?= pear-${PEAR_CHANNEL}- PEARPKGREF= ${PEAR_CHANNEL}/${PORTNAME} .else PKGNAMEPREFIX?= pear- PEARPKGREF= ${PORTNAME} .endif .if exists(${LOCALBASE}/bin/php-config) PHP_BASE!= ${LOCALBASE}/bin/php-config --prefix .else PHP_BASE= ${LOCALBASE} .endif PEAR= ${LOCALBASE}/bin/pear LPEARDIR= share/pear LPKGREGDIR= ${LPEARDIR}/packages/${PKGNAME} LDATADIR= ${LPEARDIR}/data/${PORTNAME} LDOCSDIR= share/doc/pear/${PORTNAME} LEXAMPLESDIR= share/examples/pear/${PORTNAME} LSQLSDIR= ${LPEARDIR}/sql/${PORTNAME} LSCRIPTSDIR= bin LTESTSDIR= ${LPEARDIR}/tests/${PORTNAME} PEARDIR= ${PHP_BASE}/${LPEARDIR} PKGREGDIR= ${PHP_BASE}/${LPKGREGDIR} DATADIR= ${PHP_BASE}/${LDATADIR} DOCSDIR= ${PHP_BASE}/${LDOCSDIR} EXAMPLESDIR= ${PHP_BASE}/${LEXAMPLESDIR} SQLSDIR= ${PHP_BASE}/${LSQLSDIR} SCRIPTFILESDIR= ${LOCALBASE}/bin TESTSDIR= ${PHP_BASE}/${LTESTSDIR} .if defined(CATEGORY) && !empty(CATEGORY) LINSTDIR= ${LPEARDIR}/${CATEGORY} .else LINSTDIR= ${LPEARDIR} .endif INSTDIR= ${PHP_BASE}/${LINSTDIR} SUB_LIST+= PKG_NAME=${PEARPKGREF} .if !defined(USE_PHPIZE) && !exists(${.CURDIR}/pkg-plist) PLIST= ${WRKDIR}/PLIST .endif PLIST_SUB+= PEARDIR=${LPEARDIR} PKGREGDIR=${LPKGREGDIR} \ TESTSDIR=${LTESTSDIR} INSTDIR=${LINSTDIR} SQLSDIR=${LSQLSDIR} \ SCRIPTFILESDIR=${LCRIPTSDIR} PKGINSTALL?= ${PORTSDIR}/devel/pear/pear-install PKGDEINSTALL?= ${WRKDIR}/pear-deinstall .endif .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PEAR_POST_MK) _INCLUDE_USES_PEAR_POST_MK= yes +_USES_install+= 250:pear-pre-install pear-pre-install: .if exists(${LOCALBASE}/lib/php.DIST_PHP) \ || exists(${PHP_BASE}/lib/php.DIST_PHP) \ || exists(${LOCALBASE}/.PEAR.pkg) \ || exists(${PHP_BASE}/.PEAR.pkg) @${ECHO_MSG} "" @${ECHO_MSG} " Sorry, the PEAR structure has been modified;" @${ECHO_MSG} " Please deinstall your installed pear- ports." @${ECHO_MSG} "" @${FALSE} .endif DIRFILTER= ${SED} -En '\:^.*/[^/]*$$:s:^(.+)/[^/]*$$:\1:p' \ | ( while read r; do \ C=1; \ while [ $$C = 1 ]; do \ echo $$r; \ if echo $$r | ${GREP} '/' > /dev/null; then \ r=`${DIRNAME} $$r`; \ else \ C=0; \ fi; \ done; \ done \ ) | ${SORT} -ur .if !defined(USE_PHPIZE) -do-autogenerate-plist: patch +_USES_install+= 260:do-autogenerate-plist +do-autogenerate-plist: @${ECHO_MSG} "===> Generating packing list with pear" @${LN} -sf ${WRKDIR}/package.xml ${WRKSRC}/package.xml @cd ${WRKSRC} && ${PEAR} install -n -f -P ${WRKDIR}/inst package.xml > /dev/null 2> /dev/null .for R in .channels .depdb .depdblock .filemap .lock .registry @${RM} -rf ${WRKDIR}/inst/${PREFIX}/${LPEARDIR}/${R} @${RM} -rf ${WRKDIR}/inst/${R} .endfor @FILES=`cd ${WRKDIR}/inst && ${FIND} . -type f | ${CUT} -c 2- | \ ${GREP} -v -E "^${PREFIX}/"` || exit 0; \ ${ECHO_CMD} $${FILES}; if ${TEST} -n "$${FILES}"; then \ ${ECHO_CMD} "Cannot generate packing list: package files outside PREFIX"; \ exit 1; fi; @${ECHO_CMD} "${LPKGREGDIR}/package.xml" > ${PLIST} # pkg_install needs to escape $ in directory name while pkg does not @cd ${WRKDIR}/inst/${PREFIX} && ${FIND} . -type f | ${SORT} \ | ${CUT} -c 3- >> ${PLIST} -pre-install: pear-pre-install do-autogenerate-plist do-generate-deinstall-script -do-install: do-auto-install pear-post-install - +_USES_install+= 450:do-auto-install do-auto-install: @cd ${WRKSRC} && ${PEAR} install -n -f -P ${STAGEDIR} package.xml # Clean up orphans re-generated by pear-install .for R in .channels .depdb .depdblock .filemap .lock .registry @${RM} -rf ${STAGEDIR}${PREFIX}/${LPEARDIR}/${R} @${RM} -rf ${STAGEDIR}/${R} .endfor .endif +_USES_install+= 270:do-generate-deinstall-script do-generate-deinstall-script: @${SED} ${_SUB_LIST_TEMP} -e '/^@comment /d' ${PORTSDIR}/devel/pear/pear-deinstall.in > ${WRKDIR}/pear-deinstall +_USES_install+= 460:pear-post-install pear-post-install: @${MKDIR} ${STAGEDIR}${PKGREGDIR} @${INSTALL_DATA} ${WRKDIR}/package.xml ${STAGEDIR}${PKGREGDIR} show-depends: patch @${PEAR} package-dependencies ${WRKDIR}/package.xml .endif Index: head/Mk/Uses/python.mk =================================================================== --- head/Mk/Uses/python.mk (revision 413767) +++ head/Mk/Uses/python.mk (revision 413768) @@ -1,628 +1,626 @@ # $FreeBSD$ # # Provide support for Python related ports. This includes detecting Python # interpreters, ports providing package and modules for python as well as # consumer ports requiring Python at build or run time. # # Feature: python # Usage: USES=python or USES=python:args # Valid ARGS: , build, run, test # # version If your port requires only some set of Python versions, you # can set this to [min]-[max] or min+ or -max or as an # explicit version or as a meta port version (eg. 3.3-3.4 for # [min]-[max], 2.7+ or -3.3 for min+ and -max, 2.7 for an # explicit version or 3 for a meta port version). Example: # # USES=python:2.7 # Only use Python 2.7 # USES=python:3.3+ # Use Python 3.3 or newer # USES=python:3.3-3.4 # Use Python 3.3 or 3.4 # USES=python:-3.3 # Use any Python up to 3.3 # USES=python:2 # Use the Python 2 meta port # USES=python # Use the set default Python # # version # # build Indicates that Python is needed at build time and adds # it to BUILD_DEPENDS. # run Indicates that Python is needed at run time and adds # it to RUN_DEPENDS. # test Indicates that Python is needed at test time and adds # it to TEST_DEPENDS. # # If build, run and test are omitted, Python will be added as BUILD_DEPENDS, # RUN_DEPENDS and TEST_DEPENDS. PYTHON_NO_DEPENDS can be set to not add any # dependencies. # # Variables, which can be set by a user: # # PYTHON_VERSION - The chosen Python interpreter including the version, # e.g. python2.7, python3.3, etc. This allows the user # to override the currently chosen default version and # to install the port for a specific Python version. # It must not be set by a port. # # Variables, which can be set by the port: # # USE_PYTHON - A list of additional features and functionality to # enable. Supported features are: # # concurrent - Indicates that the port can be installed for # different python versions at the same time. The port # is supposed to use a unique prefix for certain # directories using USES=uniquefiles:dirs (see the # uniquefiles.mk Uses for details about the # directories), if set to yes. Binaries receive an # additional suffix, based on ${PYTHON_VER}. # # The values for the uniquefiles USES are set as # follows: # # UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX} # UNIQUE_SUFFIX= -${PYTHON_VER} # # If the port is installed for the current default # python version, scripts and binaries in # # ${PREFIX}/bin # ${PREFIX}/sbin # ${PREFIX}/libexec # # are linked from the prefixed version to the # prefix-less original name, e.g. # bin/foo-2.7 --> bin/foo. # # distutils - Use distutils as do-configure, do-build and # do-install targets. # # autoplist - Automatically generates the packaging list for a # port that uses distutils when defined. # requires: distutils # # py3kplist - Automatically generates Python 3.x compatible # __pycache__ entries from a Python 2.x packaging list # when defined. Use this for ports that do *not* use # standard Python packaging mechanisms such as # distutils, and support *both* Python 2.x and 3.x. # Not needed, if USE_PYTHON=autoplist is set. # # pythonprefix - Says that the port installs in ${PYTHONBASE} instead # of ${PREFIX}. # # noegginfo - Skip an egg-info entry from plist, if defined. # # PYTHON_CMD - Python's command line file name, including the # version number (used for dependencies). # default: ${PYTHONBASE}/bin/${PYTHON_VERSION} # # PYSETUP - Name of the setup script used by the distutils # package. # default: setup.py # # PYDISTUTILS_PKGNAME # - Internal name in the distutils for egg-info. # default: ${PORTNAME} # # PYDISTUTILS_PKGVERSION # - Internal version in the distutils for egg-info. # default: ${PORTVERSION} # # PYDISTUTILS_CONFIGURE_TARGET # - Pass this command to distutils on configure stage. # default: config # # PYDISTUTILS_BUILD_TARGET # - Pass this command to distutils on build stage. # default: build # # PYDISTUTILS_INSTALL_TARGET # - Pass this command to distutils on install stage. # default: install # # PYDISTUTILS_CONFIGUREARGS # - Arguments to config with distutils. # default: # # PYDISTUTILS_BUILDARGS # - Arguments to build with distutils. # default: # # PYDISTUTILS_INSTALLARGS # - Arguments to install with distutils. # default: -c -O1 --prefix=${PREFIX} --single-version-externally-managed --root=${STAGEDIR} # # PYDISTUTILS_EGGINFO # - Canonical name for egg-info. # default: ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}.egg-info # # The following variables can be read by ports and must not be modified: # # PYTHONBASE - The installation prefix of the chosen Python # interpreter, e.g. /usr/local # # PYTHON_PORTVERSION # - Version number suitable for ${PORTVERSION}. # # PYTHON_PORTSDIR - The port directory of the chosen Python interpreter # # PYTHON_REL - The release number of the chosen Python interpreter # without dots, e.g. 2706, 3401, ... # # PYTHON_SUFFIX - The major-minor release number of the chosen Python # interpreter without dots, e.g. 27, 34, ... # Used for prefixes and suffixes. # # PYTHON_MAJOR_VER - The major release version of the chosen Python # interpreter, e.g. 2, 3, ... # # PYTHON_VER - The major-minor release version of the chosen Python # interpreter, e.g. 2.7, 3.4, ... # # PYTHON_ABIVER - Additional ABI flags set by the chosen Python # interpreter, e.g. md # # PYTHON_INCLUDEDIR - Location of the Python include files. # default: ${PYTHONBASE}/include/${PYTHON_VERSION} # # PYTHON_LIBDIR - Base of the python library tree # default: ${PYTHONBASE}/lib/${PYTHON_VERSION} # # PYTHON_SITELIBDIR - Location of the site-packages tree. Don't change, # unless you know what you do. # default: ${PYTHON_LIBDIR}/site-packages # # There are PREFIX-clean variants of the PYTHON_*DIR variables above. # They are meant to be used by ports instead of the above variables, so the # ports respect ${PREFIX} (unless USE_PYTHON=pythonprefix is specified). # # PYTHONPREFIX_INCLUDEDIR default: ${PREFIX}/include/${PYTHON_VERSION} # PYTHONPREFIX_LIBDIR default: ${PREFIX}/lib/${PYTHON_VERSION} # PYTHONPREFIX_SITELIBDIR default: ${PYTHONPREFIX_LIBDIR}/site-packages # # PYTHON_PLATFORM - Python's idea of the OS release. # This is faked with ${OPSYS} and ${OSREL} until we # find out how to delay defining a variable until # after a certain target has been built. # # PYTHON_PKGNAMEPREFIX # - Use this as a ${PKGNAMEPREFIX} to distinguish # packages for different Python versions. # default: py${PYTHON_SUFFIX}- # # Using USES=python.mk also will add some useful entries to PLIST_SUB: # # PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} # PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} # PYTHON_PLATFORM=${PYTHON_PLATFORM} # PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} # PYTHON_VER=${PYTHON_VER} # PYTHON_VERSION=${PYTHON_VERSION} # # # Deprecated variables, which exist for compatibility and will be removed # soon: # # PYTHON_DEFAULT_VERSION # PYTHON2_DEFAULT_VERSION # PYTHON3_DEFAULT_VERSION # - Deprecated, use PYTHON[2,3]_DEFAULT instead, # see bsd.default-versions.mk # # PYTHON_PKGNAMESUFFIX # - Deprecated, use PYTHON_PKGNAMEPREFIX instead # default: -py${PYTHON_SUFFIX} # # PYDISTUTILS_INSTALLNOSINGLE # - Deprecated without replacement # # MAINTAINER: python@FreeBSD.org .if !defined(_INCLUDE_USES_PYTHON_MK) _INCLUDE_USES_PYTHON_MK= yes # What Python version and what Python interpreters are currently supported? # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. _PYTHON_VERSIONS= 2.7 3.4 3.5 3.3 # preferred first _PYTHON_PORTBRANCH= 2.7 # ${_PYTHON_VERSIONS:[1]} _PYTHON_BASECMD= ${LOCALBASE}/bin/python _PYTHON_RELPORTDIR= ${PORTSDIR}/lang/python # Make each individual feature available as _PYTHON_FEATURE_ .for var in ${USE_PYTHON} _PYTHON_FEATURE_${var:tu}= yes .endfor # Make sure that no dependency or some other environment variable # pollutes the build/run dependency detection .undef _PYTHON_BUILD_DEP .undef _PYTHON_RUN_DEP .undef _PYTHON_TEST_DEP _PYTHON_ARGS= ${python_ARGS:S/,/ /g} .if ${_PYTHON_ARGS:Mbuild} _PYTHON_BUILD_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Nbuild} .endif .if ${_PYTHON_ARGS:Mrun} _PYTHON_RUN_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Nrun} .endif .if ${_PYTHON_ARGS:Mtest} _PYTHON_TEST_DEP= yes _PYTHON_ARGS:= ${_PYTHON_ARGS:Ntest} .endif # The port does not specify a build, run or test dependency, assume all are # required. .if !defined(_PYTHON_BUILD_DEP) && !defined(_PYTHON_RUN_DEP) && \ !defined(_PYTHON_TEST_DEP) && !defined(PYTHON_NO_DEPENDS) _PYTHON_BUILD_DEP= yes _PYTHON_RUN_DEP= yes _PYTHON_TEST_DEP= yes .endif # Determine version number of Python to use .include "${PORTSDIR}/Mk/bsd.default-versions.mk" .if defined(PYTHON_DEFAULT_VERSION) WARNING+= "PYTHON_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python=${PYTHON_DEFAULT_VERSION:S/^python//} instead" .endif .if defined(PYTHON2_DEFAULT_VERSION) WARNING+= "PYTHON2_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python2=${PYTHON2_DEFAULT_VERSION:S/^python//} instead" .endif .if defined(PYTHON3_DEFAULT_VERSION) WARNING+= "PYTHON3_DEFAULT_VERSION is defined, consider using DEFAULT_VERSIONS=python3=${PYTHON3_DEFAULT_VERSION:S/^python//} instead" .endif .if exists(${LOCALBASE}/bin/python) .if !defined(_PYTHON_DEFAULT_VERSION) _PYTHON_DEFAULT_VERSION!= (${LOCALBASE}/bin/python -c \ 'import sys; print("%d.%d" % sys.version_info[:2])' 2> /dev/null \ || ${ECHO_CMD} ${_PYTHON_PORTBRANCH}) | ${TAIL} -1 .endif _EXPORTED_VARS+= _PYTHON_DEFAULT_VERSION .if defined(PYTHON_DEFAULT) && (${PYTHON_DEFAULT} != ${_PYTHON_DEFAULT_VERSION}) WARNING+= "Your requested default python version ${PYTHON_DEFAULT} is different from the installed default python interpreter version ${_PYTHON_DEFAULT_VERSION}" .endif PYTHON_DEFAULT_VERSION= python${_PYTHON_DEFAULT_VERSION} .else PYTHON_DEFAULT_VERSION= python${PYTHON_DEFAULT} .endif # exists(${LOCALBASE}/bin/python) # Is only a meta-port version defined? .if ${PYTHON_DEFAULT_VERSION} == "python2" PYTHON2_DEFAULT_VERSION?= python${PYTHON2_DEFAULT} .elif ${PYTHON_DEFAULT_VERSION:R} == "python2" PYTHON2_DEFAULT_VERSION= ${PYTHON_DEFAULT_VERSION} .else PYTHON2_DEFAULT_VERSION?= python${PYTHON2_DEFAULT} .endif .if ${PYTHON_DEFAULT_VERSION} == "python3" PYTHON3_DEFAULT_VERSION?= python${PYTHON3_DEFAULT} .elif ${PYTHON_DEFAULT_VERSION:R} == "python3" PYTHON3_DEFAULT_VERSION= ${PYTHON_DEFAULT_VERSION} .else PYTHON3_DEFAULT_VERSION?= python${PYTHON3_DEFAULT} .endif .if ${_PYTHON_ARGS} == "2" _PYTHON_ARGS= ${PYTHON2_DEFAULT_VERSION:S/^python//} _WANTS_META_PORT= 2 .elif ${_PYTHON_ARGS} == "3" _PYTHON_ARGS= ${PYTHON3_DEFAULT_VERSION:S/^python//} _WANTS_META_PORT= 3 .endif # ${_PYTHON_ARGS} == "2" .if defined(PYTHON_VERSION) # A port/user requests a specific python version for its dependencies via # DEPENDS_ARGS, since it requires the specific python version itself. # Several things can happen now: # a) the dependency supports the requested version -> everything's fine # b) the dependency does not support the requested version # 1) the dependency works in a way that the different python # versions do not matter -> everything's fine # 2) the dependency is likely to break due to the conflict # nothing's fine # # b.2) needs to be resolved. Due to the complexity of how different pieces of # software are built, we can't solve this automatically. Instead, let's assume # that maintainers know what they are doing and assume PYTHON_VERSION to be a # hint. Just warn maintainers, if the versions do not match # (_PYTHON_VERSION_NONSUPPORTED). _PYTHON_VERSION:= ${PYTHON_VERSION:S/^python//} .else _PYTHON_VERSION:= ${PYTHON_DEFAULT_VERSION:S/^python//} .endif # defined(PYTHON_VERSION) # Validate Python version whether it meets the version restriction. _PYTHON_VERSION_CHECK:= ${_PYTHON_ARGS:C/^([1-9]\.[0-9])$/\1-\1/} _PYTHON_VERSION_MINIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/([1-9]\.[0-9])[-+].*/\1/} _PYTHON_VERSION_MINIMUM:= ${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[0-9]} _PYTHON_VERSION_MAXIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/.*-([1-9]\.[0-9])/\1/} _PYTHON_VERSION_MAXIMUM:= ${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[0-9]} .undef _PYTHON_VERSION_NONSUPPORTED .if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION} < ${_PYTHON_VERSION_MINIMUM}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least .elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION} > ${_PYTHON_VERSION_MAXIMUM}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most .endif # If we have an unsupported version of Python, try another. .if defined(_PYTHON_VERSION_NONSUPPORTED) .if defined(PYTHON_VERSION) || defined(PYTHON_CMD) _PV:= ${_PYTHON_VERSION} # preserve the specified python version WARNING+= "needs Python ${_PYTHON_VERSION_NONSUPPORTED}. But a port depending on this one specified ${_PV}" .endif # defined(PYTHON_VERSION) || defined(PYTHON_CMD) .undef _PYTHON_VERSION .for ver in ${PYTHON2_DEFAULT} ${PYTHON3_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} .if !defined(_PYTHON_VERSION) && \ !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) _PYTHON_VERSION= ${ver} .endif .endfor .if !defined(_PYTHON_VERSION) IGNORE= needs an unsupported version of Python .endif .endif # defined(_PYTHON_VERSION_NONSUPPORTED) # Pass PYTHON_VERSION down the dependency chain. This ensures that # port A -> B -> C all will use the same python version and do not # try to find a different one, if the passed version fits into # the supported version range. PYTHON_VERSION?= python${_PYTHON_VERSION} .if !defined(PYTHON_NO_DEPENDS) DEPENDS_ARGS+= PYTHON_VERSION=${PYTHON_VERSION} .endif # NOTE: # # PYTHON_VERSION will hold whatever is passed down the dependency chain. # If a user runs `make PYTHON_VERSION=python3.3, PYTHON_VERSION will be # set to 'python3.3'. A port however may require a different version, # which is stored (above) in _PYTHON_VERSION. # Every python bit below hence should use python${_PYTHON_VERSION}, since # this is the value, the _port_ requires # # Got the correct python version, set some publicly accessible variables PYTHON_VER= ${_PYTHON_VERSION} PYTHON_SUFFIX= ${_PYTHON_VERSION:S/.//g} PYTHON_MAJOR_VER= ${PYTHON_VER:R} PYTHON_REL= # empty PYTHON_ABIVER= # empty PYTHON_PORTSDIR= ${_PYTHON_RELPORTDIR}${PYTHON_SUFFIX} # Protect partial checkouts from Mk/Scripts/functions.sh:export_ports_env(). .if !defined(_PORTS_ENV_CHECK) || exists(${PYTHON_PORTSDIR}) .include "${PYTHON_PORTSDIR}/Makefile.version" .endif # Create a 4 integer version string, prefixing 0 to the last token if # it's a single character. Only use the the first 3 tokens of # PORTVERSION to support pre-release versions (rc3, alpha4, etc) of # any Python port (lang/pythonXY) PYTHON_REL= ${PYTHON_PORTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/:C/\.([0-9]+)$/.0\1/:C/\.0?([0-9][0-9])$/.\1/:S/.//g} # Might be overridden by calling ports PYTHON_CMD?= ${_PYTHON_BASECMD}${_PYTHON_VERSION} .if exists(${PYTHON_CMD}-config) && ${PYTHON_VER} != 2.7 PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags .endif .if !defined(PYTHONBASE) PYTHONBASE!= (${PYTHON_CMD} -c 'import sys; print(sys.prefix)' \ 2> /dev/null || ${ECHO_CMD} ${LOCALBASE}) | ${TAIL} -1 .endif _EXPORTED_VARS+= PYTHONBASE PYTHON_INCLUDEDIR= ${PYTHONBASE}/include/python${_PYTHON_VERSION}${PYTHON_ABIVER} PYTHON_LIBDIR= ${PYTHONBASE}/lib/python${_PYTHON_VERSION} PYTHON_PLATFORM= ${OPSYS:tl}${OSREL:C/\.[0-9.]*//} PYTHON_SITELIBDIR= ${PYTHON_LIBDIR}/site-packages PYTHON_PKGNAMEPREFIX= py${PYTHON_SUFFIX}- PYTHON_PKGNAMESUFFIX= -py${PYTHON_SUFFIX} PYTHONPREFIX_INCLUDEDIR= ${PYTHON_INCLUDEDIR:S;${PYTHONBASE};${PREFIX};} PYTHONPREFIX_LIBDIR= ${PYTHON_LIBDIR:S;${PYTHONBASE};${PREFIX};} PYTHONPREFIX_SITELIBDIR= ${PYTHON_SITELIBDIR:S;${PYTHONBASE};${PREFIX};} # Used for recording the installed files. _PYTHONPKGLIST= ${WRKDIR}/.PLIST.pymodtmp # Ports bound to a certain python version SHOULD # - use the PYTHON_PKGNAMEPREFIX # - use directories using the PYTHON_PKGNAMEPREFIX # - install binaries using the required PYTHON_VER, with # the default python version creating a symlink to the original binary # name (for staging-aware ports). # # What makes a port 'bound' to a certain python version? # - it installs data into PYTHON_SITELIBDIR, PYTHON_INCLUDEDIR, ... # - it links against libpython*.so # - it uses USE_PYTHON=distutils # .if defined(_PYTHON_FEATURE_CONCURRENT) _USES_POST+= uniquefiles:dirs .if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION} UNIQUE_DEFAULT_LINKS= yes .else UNIQUE_DEFAULT_LINKS= no .endif UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX} UNIQUE_SUFFIX= -${PYTHON_VER} .if defined(_PYTHON_FEATURE_AUTOPLIST) UNIQUE_FIND_SUFFIX_FILES= \ ${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST} | \ ${GREP} -e '^bin/.*$$\|^sbin/.*$$\|^libexec/.*$$' .else UNIQUE_FIND_SUFFIX_FILES= \ ${GREP} -he '^bin/.*$$\|^sbin/.*$$\|^libexec/.*$$' ${TMPPLIST} 2>/dev/null .endif .endif # defined(_PYTHON_FEATURE_CONCURRENT) _CURRENTPORT:= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} .if defined(_PYTHON_FEATURE_DISTUTILS) && \ ${_CURRENTPORT:S/${PYTHON_SUFFIX}$//} != ${PYTHON_PKGNAMEPREFIX}setuptools BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:devel/py-setuptools${PYTHON_SUFFIX} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools${PYTHON_SUFFIX}>0:devel/py-setuptools${PYTHON_SUFFIX} .endif # distutils support PYSETUP?= setup.py PYDISTUTILS_SETUP?= -c \ "import sys; import setuptools; \ __file__='${PYSETUP}'; sys.argv[0]='${PYSETUP}'; \ exec(compile(open(__file__, 'rb').read().replace(b'\\r\\n', b'\\n'), __file__, 'exec'))" PYDISTUTILS_CONFIGUREARGS?= # empty PYDISTUTILS_BUILDARGS?= # empty PYDISTUTILS_INSTALLARGS?= -c -O1 --prefix=${PREFIX} .if defined(_PYTHON_FEATURE_DISTUTILS) . if !defined(PYDISTUTILS_INSTALLNOSINGLE) PYDISTUTILS_INSTALLARGS+= --single-version-externally-managed . endif PYDISTUTILS_INSTALLARGS+= --root=${STAGEDIR} .endif PYDISTUTILS_INSTALLARGS:= --record ${_PYTHONPKGLIST} \ ${PYDISTUTILS_INSTALLARGS} PYDISTUTILS_PKGNAME?= ${PORTNAME} PYDISTUTILS_PKGVERSION?=${PORTVERSION} PYDISTUTILS_EGGINFO?= ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}.egg-info PYDISTUTILS_EGGINFODIR?=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} -add-plist-egginfo: .if !defined(_PYTHON_FEATURE_NOEGGINFO) && \ !defined(_PYTHON_FEATURE_AUTOPLIST) && \ defined(_PYTHON_FEATURE_DISTUTILS) && \ defined(PYTHON_REL) +_USES_stage+= 933:add-plist-egginfo +add-plist-egginfo: . for egginfo in ${PYDISTUTILS_EGGINFO} if [ -d "${PYDISTUTILS_EGGINFODIR}/${egginfo}" ]; then \ ${LS} ${PYDISTUTILS_EGGINFODIR}/${egginfo} | while read f; do \ ${ECHO_CMD} ${PYDISTUTILS_EGGINFODIR:S;^${STAGEDIR}${PREFIX}/;;}/${egginfo}/$${f} >> ${TMPPLIST}; \ done; \ fi; . endfor -.else - @${DO_NADA} .endif .if defined(_PYTHON_FEATURE_AUTOPLIST) && defined(_PYTHON_FEATURE_DISTUTILS) _RELSITELIBDIR= ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} _RELLIBDIR= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} -add-plist-post: add-plist-pymod +_USES_stage+= 934:add-plist-pymod add-plist-pymod: @${SED} -e 's|^${STAGEDIR}${PREFIX}/||' \ -e 's|^${PREFIX}/||' \ -e 's|^\(man/.*man[0-9]\)/\(.*\.[0-9]\)$$|\1/\2.gz|' \ -e 's|[[:alnum:]|[:space:]]*/\.\./*||g; s|/\./|/|g' \ ${_PYTHONPKGLIST} | ${SORT} >> ${TMPPLIST} .else .if ${PYTHON_REL} >= 3200 && defined(_PYTHON_FEATURE_PY3KPLIST) # When Python version is 3.2+ we rewrite all the filenames # of TMPPLIST that end with .py[co], so that they conform # to PEP 3147 (see http://www.python.org/dev/peps/pep-3147/) PYMAGICTAG= ${PYTHON_CMD} -c 'import imp; print(imp.get_tag())' .if ${PYTHON_REL} < 3500 PYOEXTENSION= pyo .else PYOEXTENSION= opt-1.pyc .endif -add-plist-post: +_USES_stage+= 935:add-plist-python +add-plist-python: @${AWK} '\ /\.py[co]$$/ && !($$0 ~ "/" pc "/") {id = match($$0, /\/[^\/]+\.py[co]$$/); if (id != 0) {d = substr($$0, 1, RSTART - 1); dirs[d] = 1}; sub(/\.pyc$$/, "." mt "&"); sub(/\.pyo$$/, "." mt "." pyo); sub(/[^\/]+\.py[co]$$/, pc "/&"); print; next} \ /^@dirrm / {d = substr($$0, 8); if (d in dirs) {print $$0 "/" pc}; print $$0; next} \ /^@dirrmtry / {d = substr($$0, 11); if (d in dirs) {print $$0 "/" pc}; print $$0; next} \ {print} \ ' \ pc="__pycache__" mt="$$(${PYMAGICTAG})" pyo="${PYOEXTENSION}" \ ${TMPPLIST} > ${TMPPLIST}.pyc_tmp @${MV} ${TMPPLIST}.pyc_tmp ${TMPPLIST} .endif # ${PYTHON_REL} >= 3200 && defined(_PYTHON_FEATURE_PY3KPLIST) .endif # defined(_PYTHON_FEATURE_AUTOPLIST) && defined(_PYTHON_FEATURE_DISTUTILS) # Fix for programs that build python from a GNU auto* environment CONFIGURE_ENV+= PYTHON="${PYTHON_CMD}" # By default CMake picks up the highest available version of Python package. # Enforce the version required by the port or the default. CMAKE_ARGS+= -DPython_ADDITIONAL_VERSIONS=${PYTHON_VER} # Python 3rd-party modules PYGAME= ${PYTHON_PKGNAMEPREFIX}game>0:devel/py-game PYNUMERIC= ${PYTHON_SITELIBDIR}/Numeric/Numeric.py:math/py-numeric PYNUMPY= ${PYTHON_SITELIBDIR}/numpy/core/numeric.py:math/py-numpy # dependencies .if defined(_PYTHON_BUILD_DEP) BUILD_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) BUILD_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} .endif .endif .if defined(_PYTHON_RUN_DEP) RUN_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) RUN_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} .endif .endif .if defined(_PYTHON_TEST_DEP) TEST_DEPENDS+= ${PYTHON_CMD}:${PYTHON_PORTSDIR} .if defined(_WANTS_META_PORT) TEST_DEPENDS+= python${_WANTS_META_PORT}:${_PYTHON_RELPORTDIR}${_WANTS_META_PORT} .endif .endif # set $PREFIX as Python's one .if defined(_PYTHON_FEATURE_PYTHONPREFIX) PREFIX= ${PYTHONBASE} .endif # Substitutions for pkg-plist # Use a short form of the PYTHONPREFIX_*DIR variables; we don't need the # base directory in the plist file. PLIST_SUB+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} \ PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \ PYTHON_VER=${PYTHON_VER} \ PYTHON_VERSION=python${_PYTHON_VERSION} _USES_POST+= python .endif # _INCLUDE_USES_PYTHON_MK .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PYTHON_POST_MK) _INCLUDE_USES_PYTHON_POST_MK= yes # py-distutils support PYDISTUTILS_CONFIGURE_TARGET?= config PYDISTUTILS_BUILD_TARGET?= build PYDISTUTILS_INSTALL_TARGET?= install .if defined(_PYTHON_FEATURE_DISTUTILS) LDSHARED?= ${CC} -shared MAKE_ENV+= LDSHARED="${LDSHARED}" PYTHONDONTWRITEBYTECODE= PYTHONOPTIMIZE= .if !target(do-configure) && !defined(HAS_CONFIGURE) && !defined(GNU_CONFIGURE) do-configure: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_CONFIGURE_TARGET} ${PYDISTUTILS_CONFIGUREARGS}) .endif .if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_BUILD_TARGET} ${PYDISTUTILS_BUILDARGS}) .endif .if !target(do-install) do-install: @(cd ${INSTALL_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_INSTALL_TARGET} ${PYDISTUTILS_INSTALLARGS}) .endif - -add-plist-post: add-plist-egginfo .endif # defined(_PYTHON_FEATURE_DISTUTILS) .endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PYTHON_POST_MK) Index: head/Mk/Uses/qmake.mk =================================================================== --- head/Mk/Uses/qmake.mk (revision 413767) +++ head/Mk/Uses/qmake.mk (revision 413768) @@ -1,114 +1,113 @@ # $FreeBSD$ # # Provide support for qmake-based projects # # Feature: qmake # Usage: USES=qmake or USES=qmake:ARGS # Must be used along with 'USE_QT*=#' # Valid ARGS: norecursive outsource # ARGS description: # norecursive Don't pass -recursive argument to qmake binary # outsource Perform an out-of-source build # # # Variables for ports: # QMAKE_ENV - Environment passed to qmake. # Default: ${CONFIGURE_ENV} # QMAKE_ARGS - Arguments passed to qmake. # Default: see below # QMAKE_SOURCE_PATH - Path to qmake project files. # Default: ${WRKSRC} if out-of-source build is # requested, empty otherwise. # # User defined variables: # QMAKE_VERBOSE - Enable verbose configure output. # # MAINTAINER: kde@FreeBSD.org .if !defined(_INCLUDE_USES_QMAKE_MK) _INCLUDE_USES_QMAKE_MK= yes # _QT_VERSION is defined in bsd.qt.mk, only if a correct Qt version was selected # via USE_QT*. .if empty(_QT_VERSION) IGNORE= 'USES+= qmake' must be accompanied with 'USE_QT[${_QT_SUPPORTED:S/ //g}]= #' .endif # _env is a private argument used only by bsd.qt.mk to get variables and custom # targets (currently, only qmake-configure), without qmake being added to the # configure stage. _VALID_ARGS= norecursive outsource _env .for arg in ${qmake_ARGS} . if empty(_VALID_ARGS:M${arg}) IGNORE= Incorrect 'USES+= qmake' usage: argument '${arg}' is not recognized . endif .endfor .if ! ${qmake_ARGS:M_env} USE_QT${_QT_VERSION:R:R}+= qmake_build .endif # QMAKESPEC belongs to bsd.qt.mk. QMAKE_ENV?= ${CONFIGURE_ENV} QMAKE_ARGS+= -spec ${QMAKESPEC} \ QMAKE_CC="${CC}" QMAKE_CXX="${CXX}" \ QMAKE_LINK_C="${CC}" QMAKE_LINK_C_SHLIB="${CC}" \ QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}" \ QMAKE_CFLAGS="${CFLAGS}" \ QMAKE_CXXFLAGS="${CXXFLAGS}" \ QMAKE_LFLAGS="${LDFLAGS}" \ QMAKE_LIBS="${LIBS}" \ QMAKE_CFLAGS_DEBUG="" \ QMAKE_CFLAGS_RELEASE="" \ QMAKE_CXXFLAGS_DEBUG="" \ QMAKE_CXXFLAGS_RELEASE="" \ PREFIX="${PREFIX}" .if defined(WITH_DEBUG) QMAKE_ARGS+= CONFIG+="debug" \ CONFIG-="release" .else QMAKE_ARGS+= CONFIG+="release" \ CONFIG-="debug separate_debug_info" .endif # defined(WITH_DEBUG) # We set -recursive by default to keep qmake from running in the build stage. .if ! ${qmake_ARGS:Mnorecursive} QMAKE_ARGS+= -recursive .endif .if defined(QMAKE_VERBOSE) QMAKE_ARGS+= -d .endif # _QMAKE_WRKSRC (and _QMAKE, below) are needed to abstract the qmake target and # use it for both qtbase and USES=qmake ports. They are private, not supposed to # be used anywhere else. _QMAKE_WRKSRC?= ${CONFIGURE_WRKSRC} .if ${qmake_ARGS:Moutsource} CONFIGURE_WRKSRC= ${WRKDIR}/.build BUILD_WRKSRC= ${CONFIGURE_WRKSRC} INSTALL_WRKSRC= ${BUILD_WRKSRC} QMAKE_SOURCE_PATH?= ${WRKSRC} .else QMAKE_SOURCE_PATH?= # empty .endif .if ! ${qmake_ARGS:M_env} DESTDIRNAME= INSTALL_ROOT .endif # Define a custom target to make it usable by bsd.qt.mk for internal Qt # configuration. qmake-configure: @${MKDIR} ${_QMAKE_WRKSRC} @cd ${_QMAKE_WRKSRC} && \ ${SETENV} ${QMAKE_ENV} ${_QMAKE} ${QMAKE_ARGS} ${QMAKE_SOURCE_PATH} .if !target(do-configure) && ! ${qmake_ARGS:M_env} -do-configure: qmake-configure - @${DO_NADA} +_USES_configure+= 450:qmake-configure .endif .endif # !defined(_INCLUDE_USES_QMAKE_MK)