[Midnightbsd-cvs] mports [19407] trunk/Mk/extensions: add noman and notall support

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Tue Jun 9 20:54:45 EDT 2015


Revision: 19407
          http://svnweb.midnightbsd.org/mports/?rev=19407
Author:   laffer1
Date:     2015-06-09 20:54:45 -0400 (Tue, 09 Jun 2015)
Log Message:
-----------
add noman and notall support

Modified Paths:
--------------
    trunk/Mk/extensions/gecko.mk
    trunk/Mk/extensions/imake.mk

Modified: trunk/Mk/extensions/gecko.mk
===================================================================
--- trunk/Mk/extensions/gecko.mk	2015-06-10 00:53:08 UTC (rev 19406)
+++ trunk/Mk/extensions/gecko.mk	2015-06-10 00:54:45 UTC (rev 19407)
@@ -1,913 +1,125 @@
 # $MidnightBSD$
-# $FreeBSD: ports/Mk/bsd.gecko.mk,v 1.27 2011/03/22 15:26:35 beat Exp $
-
-# ======================= USERS =================================
-# To specify which gecko-based backend you prefer, use something like:
 #
-# WITH_GECKO=	libxul
+# Handle dependency of different gecko based applications
 #
-# The valid backends are:
-# libxul seamonkey
+# Feature:	gecko
+# Usage:	USES=gecko or USES=gecko:ARGS
+# Valid ARGS:	libxul, firefox, seamonkey, thunderbird
+#		in case the first argument is not libxul
+#		The following arguments are available
+#		- build: also add the dependency as a build
+#		         dependency
+#		- [0-9][0-9][+]?: a version optionnally
+#		                  followed by a +
 #
-# See below for more details.
-# ======================= /USERS ================================
 
-# gecko.mk abstracts the selection of gecko-based backends. It allows users
-# and porters to support any available gecko backend without needing to build
-# many conditional tests. ${USE_GECKO} is the list of backends that your port
-# can handle, and ${GECKO} is set by gecko.mk to be the chosen backend.
-# Users set ${WITH_GECKO} to the list of gecko backends they want on their
-# system.
+.if !defined(_INCLUDE_USES_GECKO_MK)
+_INCLUDE_USES_GECKO_MK=	yes
 
-.if defined(USE_GECKO) && ${USE_GECKO}!="gecko"
-
-.if !defined(Gecko_Pre_Include)
-# 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 ;).
-Gecko_Include_MAINTAINER=		ports at MidnightBSD.org
-Gecko_Pre_Include=			gecko.mk
-
-# Users should use the following syntax:
-#
-# WITH_GECKO= libxul seamonkey
-#  Use libxul whenever a port supports it, falling back on seamonkey.
-# WITH_GECKO= libxul
-#  Sets your preferred backend. With this example, libxul will always
-#  be chosen, unless the port doesn't support a libxul backend. In that
-#  case, you get whatever the porter chose as the default. Better to use
-#  the first example.
-#
-#
-# Ports should use the following:
-#
-# USE_GECKO= libxul seamonkey
-#  The list of gecko backends that the port supports. Unless the user
-#  overrides it with WITH_GECKO, the first gecko listed in USE_GECKO
-#  will be the default. In the above example, www/libxul will be used
-#  as a gecko backend unless WITH_GECKO=seamonkey is defined by the user.
-#
-# USE_GECKO= libxul-devel<->libxul
-#  This will sed -e 's/libxul/libxul-devel/' on Makefile.in's and configure 
-#  if ${GECKO}=="libxul-devel"
-#
-#  Example:
-#  USE_GECKO= libxul seamonkey
-#  
-#  post-patch:
-#	@${REINPALCE_CMD} -e 's|mozilla-|${GECKO}-|' \
-#		${MOZSRC}/configure
-#
-#  If you want your port to check the ${GECKO} variable to see which backend
-#  has been chosen.
-#
-#  Example:
-#  USE_GECKO= libxul seamonkey
-#  
-#  post-patch:
-#  .if ${GECKO}=="seamonkey"
-#	@${REINPLACE_CMD} -e 's|mozilla-|seamonkey-|' \
-#		${MOZSRC}/configure
-#  .endif
-
-_GECKO_ALL=	seamonkey libxul
-
-libxul_PLIST=		${LOCALBASE}/lib/libxul/libxul.so
-
-.for gecko in ${_GECKO_ALL}
-${gecko}_PORTSDIR?=	www
-${gecko}_DEPENDS?=	${PORTSDIR}/${${gecko}_PORTSDIR}/${gecko}
-${gecko}_PLIST?=	${LOCALBASE}/lib/${gecko}/libgtkembedmoz.so
-.endfor
-
-# Figure out which mozilla to use
-# Weed out bad options in USE_GECKO
-.for badgecko in ${USE_GECKO}
-. if ${_GECKO_ALL:M${badgecko:C/^([^<->]+).*/\1/}}!=""
-GOOD_USE_GECKO+=	${badgecko:C/^([^<->]+).*/\1/}
-. endif
-. if ${_GECKO_ALL:M${badgecko:C/^[^<->]+<->([^<->]+).*/\1/}}!="${badgecko:C/^([^<->]+).*/\1/}"
-${badgecko:C/^([^<->]+).*/\1/}_HACK=	s:${badgecko:C/^[^<->]+<->([^<->]+).*/\1/}:${badgecko:C/^([^<->]+).*/\1/}:g
-. endif
-.endfor
-
-.undef GECKO_FALLTHROUGH
-.undef _FOUND_WITH_GECKO
-# Figure out which gecko to use and weed out the bad ones
-.if defined(WITH_GECKO) && defined(GOOD_USE_GECKO)
-. for badgecko in ${WITH_GECKO}
-.  if ${GOOD_USE_GECKO:M${badgecko}}!=""
-GOOD_WITH_GECKO+=	${badgecko}
-.  endif
-. endfor
-. if defined(GOOD_WITH_GECKO)
-.  for gecko in ${GOOD_WITH_GECKO}
-.   if !defined(GECKO_FALLTHROUGH)
-GECKO=	${gecko}
-GECKO_FALLTHROUGH=	${TRUE}
-_FOUND_WITH_GECKO=	${TRUE}
-.   endif
-.  endfor
-. endif
+.if empty(gecko_ARGS)
+gecko_ARGS=	libxul
 .endif
 
-.if !defined(GECKO) && defined(GOOD_USE_GECKO)
-. for gecko in ${GOOD_USE_GECKO}
-.  if !defined(GECKO_FALLTRHOUGH)
-GECKO=	${gecko}
-GECKO_FALLTRHOUGH=	${TRUE}
-.  endif
-. endfor
-.endif
+_GECKO_VERSION=	${gecko_ARGS:M[0-9][0-9]*}
 
-# Generic defines
-GECKO_CONFIG?=			${LOCALBASE}/bin/${GECKO}-config
-XPIDL?=				${LOCALBASE}/lib/${GECKO}/xpidl
-XPIDL_INCL?=			`${GECKO_CONFIG} --idlflags`
+.if ${gecko_ARGS:Mlibxul}
+# Compat with older versions
+GECKO=	libxul
+GECKO_CONFING?=	${LOCALBASE}/bin/${GECKO}-config
+XPIDL?=		${LOCALBASE}/lib/${GECKO}/xpidl
+XPIDL_INCL?=	`${GECKO_CONFIG} --idlflags`
 
-.if defined(GECKO) && ${_GECKO_ALL:M${GECKO}}!=""
-BUILD_DEPENDS+=	${${GECKO}_PLIST}:${${GECKO}_DEPENDS}
-RUN_DEPENDS+=	${${GECKO}_PLIST}:${${GECKO}_DEPENDS}
-.else
-IGNORE=	Unable to find a supported gecko, please check USE_GECKO
-.endif
+BUILD_DEPENDS+=	libxul>=31:${PORTSDIR}/www/libxul
+RUN_DEPENDS+=	libxul>=31:${PORTSDIR}/www/libxul
 
-pre-everything:: _gecko-pre-everything
+.elif ${gecko_ARGS:Mfirefox}
 
-_gecko-pre-everything::
-	@${ECHO_CMD} ""
-.if !defined(_FOUND_WITH_GECKO) && defined(WITH_GECKO)
-	@${ECHO_CMD} " Warning: ${PORTNAME} does not support any gecko you"
-	@${ECHO_CMD} " listed in WITH_GECKO=${WITH_GECKO}."
-	@${ECHO_CMD} " \"${GECKO}\" will be used"
-	@${ECHO_CMD} ""
-	@${ECHO_CMD} " for gecko support, but you can change that by using one of"
-	@${ECHO_CMD} " the following values:"
-.else
-	@${ECHO_CMD} " ${PORTNAME} is using ${GECKO} for gecko support, but you can"
-	@${ECHO_CMD} " change that by defining WITH_GECKO to the following values:"
-.endif
-	@${ECHO_CMD} ""
-.for gecko in ${GOOD_USE_GECKO}
-	@${ECHO_CMD} "   ${gecko} "
-.endfor
-	@${ECHO_CMD} ""
+_GECKO_DEFAULT_VERSION=	31
+_GECKO_VERSIONS=		31 38
+_GECKO_TYPE=	firefox
 
-post-patch: gecko-post-patch
-
-gecko-post-patch:
-.if defined(${GECKO}_HACK)
-	${FIND} ${WRKSRC} -name "Makefile.in" -type f -o -name "configure" -type f | \
-		${XARGS} ${REINPLACE_CMD} -e ${${GECKO}_HACK}
-.endif
-.endif
-
-.elif !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include) && (defined(USE_FIREFOX) || defined(USE_FIREFOX_BUILD) || defined(USE_SEAMONKEY) || defined(USE_SEAMONKEY_BUILD) || defined(USE_THUNDERBIRD) || defined(USE_THUNDERBIRD_BUILD))
-Gecko_Pre_Include=			gecko.mk
-
-# Ports can use the following:
-#
-# USE_FIREFOX             Add runtime dependency on Firefox. If no version
-#                         is given by the maintainer via the port or by the
-#                         user via defined variable try to find the highest
-#                         stable installed version.
-#                         Available values: yes 40+ 36+ 35+ 40 36 35
-#                         NOTE:
-#                         default value 40 is used in case of USE_FIREFOX=yes
-#
-# USE_FIREFOX_BUILD       Add buildtime dependency on Firefox.
-#                         Available values: see USE_FIREFOX
-#
-# USE_SEAMONKEY           Add runtime dependency on SeaMonkey. If no
-#                         version is given by the maintainer via the port 
-#                         or by the user via defined variable try to find
-#                         the highest stable installed version.
-#                         Available values: yes 11+ 20+ 11 20
-#                         NOTE:
-#                         default value 20 is used in case of USE_SEAMONKEY=yes
-#
-# USE_SEAMONKEY_BUILD     Add buildtime dependency on SeaMonkey.
-#                         Available values: see USE_SEAMONKEY
-#
-# USE_THUNDERBIRD         Add runtime dependency on Thunderbird. If no 
-#                         version is given by the maintainer via the port 
-#                         or by the user via defined variable try to find 
-#                         the highest stable installed version.
-#                         Available values: yes 31+ 30+ 31 30
-#                         NOTE:
-#                         default value 31 is used in case of USE_THUNDERBIRD=yes
-#
-# USE_THUNDERBIRD_BUILD   Add buildtime dependency on Thunderbird.
-#                         Available values: see USE_THUNDERBIRD
-#
-
-#
-# Firefox part
-#
-.if defined(USE_FIREFOX) || defined(USE_FIREFOX_BUILD)
-
-# Process USE_FIREFOX_BUILD
-.if defined(USE_FIREFOX_BUILD)
-USE_FIREFOX:=				${USE_FIREFOX_BUILD}
-_FIREFOX_BUILD_DEPENDS=		yes
-.endif
-
-_FIREFOX_DEFAULT_VERSION=	40
-_FIREFOX_VERSIONS=			40 36 35
-_FIREFOX_RANGE_VERSIONS=	40+ 36+ 35+
-
-# For specifying [36, 35, ..]+
-_FIREFOX_35P=	35 ${_FIREFOX_36P}
-_FIREFOX_36P=	36 ${_FIREFOX_40P}
-_FIREFOX_40P=	40
-
-# Set the default Firefox version and check if USE_FIREFOX=yes was given
-.if ${USE_FIREFOX} == "yes"
-USE_FIREFOX=	${_FIREFOX_DEFAULT_VERSION}
-.endif
-
-# Setting/finding Firefox version we want.
-.if exists(${LOCALBASE}/bin/firefox3)
-_FIREFOX_VER!=	${LOCALBASE}/bin/firefox3 --version | ${SED} -e 's/Mozilla Firefox \([0-9]\)\.\([0-9]*\).*/\1\2/'
-.elif exists(${LOCALBASE}/bin/firefox)
-_FIREFOX_VER!=	${LOCALBASE}/bin/firefox --version | ${SED} -e 's/Mozilla Firefox \([0-9]\)\.\([0-9]*\).*/\1\2/'
-.endif
-
-# Check if installed Firefox version matches the wanted one
-.if defined(_FIREFOX_VER)
-_SUPFIREFOX=		no
-.if ${USE_FIREFOX:C/[0-9][0-9]//} == "+"
-.for ver in ${_FIREFOX_RANGE_VERSIONS}
-.if ${USE_FIREFOX} == "${ver}"
-_MATCHED_FIREFOX_VER:=	${ver:S/+//}
-.for firefox in ${_FIREFOX_${_MATCHED_FIREFOX_VER}P}
-.if ${_FIREFOX_VER} == ${firefox}
-_SUPFIREFOX=		yes
-USE_FIREFOX=		${_FIREFOX_VER}
-.endif
-.endfor
-.endif
-.endfor
-.else
-.if ${_FIREFOX_VER} == ${USE_FIREFOX}
-_SUPFIREFOX=		yes
-.endif
-.endif
-.if ${_SUPFIREFOX} == no
-IGNORE=			cannot install: Firefox versions mismatch: firefox-${_FIREFOX_VER:C/([0-9])([0-9])/\1.\2/} is installed and wanted version is firefox-${USE_FIREFOX:C/([0-9])([0-9])/\1.\2/}
-.endif
-.endif
-
-.if !defined(_FIREFOX_${USE_FIREFOX:S/+//}P)
-IGNORE=			cannot install: unknown Firefox version: firefox-${USE_FIREFOX:C/([0-9])([0-9])/\1.\2/}
-.endif
-
 # Dependence lines for different Firefox versions
-40_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox
-36_DEPENDS=		${LOCALBASE}/lib/firefox3/firefox:${PORTSDIR}/www/firefox36
-35_DEPENDS=		${LOCALBASE}/lib/firefox3/firefox:${PORTSDIR}/www/firefox35
+31_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/browser-esr
+38_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/browser
 
-# Add dependencies
-.if defined(USE_FIREFOX)
-.if defined(_FIREFOX_BUILD_DEPENDS)
-BUILD_DEPENDS+= ${${USE_FIREFOX}_DEPENDS}
+.if exists(${LOCALBASE}/bin/firefox)
+_GECKO_INSTALLED_VER!=	${LOCALBASE}/bin/firefox --version 2>/dev/null
+_GECKO_INSTALLED_VER:=	${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g}
 .endif
-RUN_DEPENDS+=	${${USE_FIREFOX}_DEPENDS}
-.endif
 
-.endif # defined(USE_FIREFOX)
-#
-# SeaMonkey part
-#
-.if defined(USE_SEAMONKEY) || defined(USE_SEAMONKEY_BUILD)
+.elif ${gecko_ARGS:Mseamonkey}
 
-# Process USE_SEAMONKEY_BUILD
-.if defined(USE_SEAMONKEY_BUILD)
-USE_SEAMONKEY:=				${USE_SEAMONKEY_BUILD}
-_SEAMONKEY_BUILD_DEPENDS=	yes
-.endif
+_GECKO_DEFAULT_VERSION=	33
+_GECKO_VERSIONS=		33
+_GECKO_TYPE=	seamonkey
 
-_SEAMONKEY_DEFAULT_VERSION=	20
-_SEAMONKEY_VERSIONS=		11 20
-_SEAMONKEY_RANGE_VERSIONS=	11+ 20+
-
-# For specifying [20, 11, ..]+
-_SEAMONKEY_11P=	11 ${_SEAMONKEY_20P}
-_SEAMONKEY_20P=	20
-
-# Set the default SeaMonkey version and check if USE_SEAMONKEY=yes was given
-.if ${USE_SEAMONKEY} == "yes"
-USE_SEAMONKEY=	${_SEAMONKEY_DEFAULT_VERSION}
-.endif
-
-# Setting/finding SeaMonkey version we want.
 .if exists(${LOCALBASE}/bin/seamonkey)
-_SEAMONKEY_VER!=	${LOCALBASE}/bin/seamonkey --version | ${SED} -e 's/Mozilla SeaMonkey \([0-9]\)\.\([0-9]*\).*/\1\2/'
+_GECKO_INSTALLED_VER!=	${LOCALBASE}/bin/seamonkey --version 2>/dev/null
+_GECKO_INSTALLED_VER:=	${_GECKO_INSTALLED_VER:M[0-9]*:C/[0-9].([0-9][0-9]).*/\1/g}
 .endif
 
-# Check if installed SeaMonkey version matches the wanted one
-.if defined(_SEAMONKEY_VER)
-_SUPSEAMONKEY=		no
-.if ${USE_SEAMONKEY:C/[0-9][0-9]//} == "+"
-.for ver in ${_SEAMONKEY_RANGE_VERSIONS}
-.if ${USE_SEAMONKEY} == "${ver}"
-_MATCHED_SEAMONKEY_VER:=	${ver:S/+//}
-.for seamonkey in ${_SEAMONKEY_${_MATCHED_SEAMONKEY_VER}P}
-.if ${_SEAMONKEY_VER} == ${seamonkey}
-_SUPSEAMONKEY=		yes
-USE_SEAMONKEY=		${_SEAMONKEY_VER}
-.endif
-.endfor
-.endif
-.endfor
-.else
-.if ${_SEAMONKEY_VER} == ${USE_SEAMONKEY}
-_SUPSEAMONKEY=		yes
-.endif
-.endif
-.if ${_SUPSEAMONKEY} == no
-IGNORE=			cannot install: SeaMonkey versions mismatch: seamonkey-${_SEAMONKEY_VER:C/([0-9])([0-9])/\1.\2/} is installed and wanted version is seamonkey-${USE_SEAMONKEY:C/([0-9])([0-9])/\1.\2/}
-.endif
-.endif
+# Dependence lines for different Seamonkey versions
+33_DEPENDS=		${LOCALBASE}/lib/seamonkey/seamonkey:${PORTSDIR}/www/seamonkey
 
-.if !defined(_SEAMONKEY_${USE_SEAMONKEY:S/+//}P)
-IGNORE=			cannot install: unknown SeaMonkey version: seamonkey-${USE_SEAMONKEY:C/([0-9])([0-9])/\1.\2/}
-.endif
+.elif ${gecko_ARGS:Mthunderbird}
 
-# Dependence lines for different SeaMonkey versions
-11_DEPENDS=		${LOCALBASE}/lib/seamonkey/seamonkey-bin:${PORTSDIR}/www/seamonkey
-20_DEPENDS=		${LOCALBASE}/lib/seamonkey/seamonkey:${PORTSDIR}/www/seamonkey2
+_GECKO_DEFAULT_VERSION=	31
+_GECKO_VERSIONS=	31
+_GECKO_TYPE=	thunderbird
 
-# Add dependencies
-.if defined(USE_SEAMONKEY)
-.if defined(_SEAMONKEY_BUILD_DEPENDS)
-BUILD_DEPENDS+= ${${USE_SEAMONKEY}_DEPENDS}
-.endif
-RUN_DEPENDS+=	${${USE_SEAMONKEY}_DEPENDS}
-.endif
-
-.endif # defined(USE_SEAMONKEY)
-#
-# Thunderbird part
-#
-.if defined(USE_THUNDERBIRD) || defined(USE_THUNDERBIRD_BUILD)
-
-# Process USE_THUNDERBIRD_BUILD
-.if defined(USE_THUNDERBIRD_BUILD)
-USE_THUNDERBIRD:=			${USE_THUNDERBIRD_BUILD}
-_THUNDERBIRD_BUILD_DEPENDS=		yes
-.endif
-
-_THUNDERBIRD_DEFAULT_VERSION=	31
-_THUNDERBIRD_VERSIONS=			31 30
-_THUNDERBIRD_RANGE_VERSIONS=	31+ 30+
-
-# For specifying [31, 30, ..]+
-_THUNDERBIRD_30P=	30 ${_THUNDERBIRD_31P}
-_THUNDERBIRD_31P=	31
-
-# Set the default Thunderbird version and check if USE_THUNDERBIRD=yes was given
-.if ${USE_THUNDERBIRD} == "yes"
-USE_THUNDERBIRD=	${_THUNDERBIRD_DEFAULT_VERSION}
-.endif
-
-# Setting/finding Thunderbird version we want.
 .if exists(${LOCALBASE}/bin/thunderbird)
-_THUNDERBIRD_VER!=	${LOCALBASE}/bin/thunderbird --version | ${SED} -e 's/ Thunderbird \([0-9]\)\.\([0-9]*\).*/\1\2/'
+_GECKO_INSTALLED_VER!=	${LOCALBASE}/bin/thunderbird --version 2>/dev/null
+_GECKO_INSTALLED_VER:=	${_GECKO_INSTALLED_VER:M[0-9][0-9]*:C/([0-9][0-9]).*/\1/g}
 .endif
 
-# Check if installed Thunderbird version matches the wanted one
-.if defined(_THUNDERBIRD_VER)
-_SUPTHUNDERBIRD=		no
-.if ${USE_THUNDERBIRD:C/[0-9][0-9]//} == "+"
-.for ver in ${_THUNDERBIRD_RANGE_VERSIONS}
-.if ${USE_THUNDERBIRD} == "${ver}"
-_MATCHED_THUNDERBIRD_VER:=	${ver:S/+//}
-.for thunderbird in ${_THUNDERBIRD_${_MATCHED_THUNDERBIRD_VER}P}
-.if ${_THUNDERBIRD_VER} == ${thunderbird}
-_SUPTHUNDERBIRD=		yes
-USE_THUNDERBIRD=		${_THUNDERBIRD_VER}
-.endif
-.endfor
-.endif
-.endfor
-.else
-.if ${_THUNDERBIRD_VER} == ${USE_THUNDERBIRD}
-_SUPTHUNDERBIRD=		yes
-.endif
-.endif
-.if ${_SUPTHUNDERBIRD} != yes
-IGNORE=			cannot install: Thunderbird versions mismatch: thunderbird-${_THUNDERBIRD_VER:C/([0-9])([0-9])/\1.\2/} is installed and wanted version is thunderbird-${USE_THUNDERBIRD:C/([0-9])([0-9])/\1.\2/}
-.endif
-.endif
-
-.if !defined(_THUNDERBIRD_${USE_THUNDERBIRD:S/+//}P)
-IGNORE=			cannot install: unknown Thunderbird version: thunderbird-${USE_THUNDERBIRD:C/([0-9])([0-9])/\1.\2/}
-.endif
-
 # Dependence lines for different Thunderbird versions
 31_DEPENDS=		${LOCALBASE}/lib/thunderbird/thunderbird:${PORTSDIR}/mail/thunderbird
-30_DEPENDS=		${LOCALBASE}/lib/thunderbird/thunderbird:${PORTSDIR}/mail/thunderbird3
 
-# Add dependencies
-.if defined(USE_THUNDERBIRD)
-.if defined(_THUNDERBIRD_BUILD_DEPENDS)
-BUILD_DEPENDS+= ${${USE_THUNDERBIRD}_DEPENDS}
-.endif
-RUN_DEPENDS+=	${${USE_THUNDERBIRD}_DEPENDS}
-.endif
-
-.endif # defined(USE_THUNDERBIRD)
-
-.else # split
-
-.if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include)
-Gecko_Pre_Include=	gecko.mk
-
-# This file contains some reusable components for mozilla ports. It's of
-# use primarily to apps from the mozilla project itself (such as Firefox,
-# Thunderbird, etc.), and probably won't be of use for gecko-based ports
-# like epiphany, galeon, etc.
-#
-# You need to make sure to add USE_GECKO=gecko to for your port can uses
-# one of these options below.
-#
-# Ports can use the following:
-#
-# USE_MOZILLA			By default, it enables the denendencies: cairo, dbm,
-# 						jpeg, nspr, nss, png, xft and zip. Search for
-# 						'_ALL_DEPENDS' below to see the list. If your port
-# 						doesn't need one of list then you can use '-' like
-# 						'USE_MOZILLA= -png -zip' to subtract the dependencies.
-#
-# GECKO_PLIST_PRE_FILES	Manual add files in the plist if it needs.
-#
-# GECKO_PLIST_PRE_DIRS  Manual directories in the plist if it needs.
-#
-# MOZILLA_PLIST_DIRS	List of directories to descend into when installing
-# 						and creating the plist
-#
-# MOZ_PIS_SCRIPTS		List of scripts residing in ${FILESDIR} to be
-# 						filtered through MOZCONFIG_SED and installed along
-# 						with our Pluggable Init Scripts (PIS)
-#
-# MOZ_SED_ARGS			sed(1) commands through which MOZ_PIS_SCRIPTS are
-# 						filtered. There is a default set defined here, so
-# 						you probably want to add to MOZ_SED_ARGS rather
-# 						than clobber it
-#
-# MOZ_OPTIONS			configure arguments (added to .mozconfig). If
-# 						NOMOZCONFIG is defined, you probably want to set
-# 						CONFIGURE_ARGS+=${MOZ_OPTIONS}
-#
-# MOZ_MK_OPTIONS		The make(1) arguments (added to .mozconfig). If
-# 						NOMOZCONFIG is defined, you probably want to set
-# 						MAKE_ARGS+=${MOZ_MK_OPTIONS}
-#
-# MOZ_EXPORT			Environment variables for the build process (added
-# 						to .mozconfig). If NOMOZCONFIG is defined, you
-# 						probably want to set MAKE_ENV+=${MOZ_EXPORT}
-#
-# MOZ_TOOLKIT			A variable for the --enable-default-toolkit= in
-# 						CONFIGURE_ARGS. The default is gtk2.
-#
-# MOZ_EXTENSIONS		A list of extensions to build
-#
-# MOZ_GRAPHICS			A list of image decoders to build
-#
-# MOZ_PROTOCOLS			A list of protocols to build (http, ftp, etc.)
-#
-# PORT_MOZCONFIG		Defaults to ${FILESDIR}/mozconfig.in, but can be
-# 						set to a generic mozconfig included with the port
-#
-# NOGECKO_INSTALL		Don't install the built gecko (most likely for
-# 						testing)
-#
-# NOGECKO_PLIST			Don't create a dynamically-generated playlist
-#
-# NOMOZCONFIG			Don't drop a customized .mozconfig into the build
-# 						directory. Options will have to be specified in
-# 						CONFIGURE_ARGS instead
-#
-
-MAINTAINER?=	ports at MidnightBSD.org
-
-MOZILLA?=	${PORTNAME}
-MOZILLA_VER?=	${PORTVERSION}
-MOZILLA_BIN?=	${PORTNAME}-bin
-MOZILLA_EXEC_NAME?=${MOZILLA}
-MOZ_RPATH?=	${MOZILLA}
-USE_GNOME+=	gtk20 libidl desktopfileutils
-USE_ICONV=	yes
-USE_PERL5_BUILD=yes
-USE_XORG=	printproto sm xt xi xext x11 xinerama \
-		ice xproto
-
-MOZILLA_SUFX?=	none
-MOZSRC?=	${WRKSRC}
-WRKSRC?=	${WRKDIR}/mozilla
-FAKEDIR?=	${WRKDIR}/fake
-PLIST?=		${WRKDIR}/plist
-PLISTD?=	${WRKDIR}/plist_dirs
-PLISTF?=	${WRKDIR}/plist_files
-MASTER_DIR?=	${.CURDIR}/../../www/seamonkey
-
-KRB5_HOME?=	/usr
-MOZ_PIS_DIR?=		lib/${MOZILLA}/init.d
-
-ESD_LIB?=	libesd.so.2
-FREETYPE_LIB?=	libfreetype.so.9
-
-GENERIC_MOZCONFIG?=	${.CURDIR}/../../www/seamonkey/files/mozconfig-generic.in
-PORT_MOZCONFIG?=	${FILESDIR}/mozconfig.in
-MOZCONFIG?=		${WRKSRC}/.mozconfig
-MOZILLA_PLIST_DIRS?=	bin include lib share/idl
-GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 pthread: | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE}
-PKGINSTALL?=	${WRKDIR}/pkg-install
-PKGDEINSTALL?=	${WRKDIR}/pkg-deinstall
-MASTER_MOZDIR?=	${PORTSDIR}/www/seamonkey
-PKGINSTALL_INC?=	${MASTER_MOZDIR}/pkg-install.in
-PKGDEINSTALL_INC?=	${MASTER_MOZDIR}/pkg-deinstall.in
-
-EXTRACT_AFTER_ARGS?=	| ${TAR} -xf - --exclude */CVS/*	\
-			--exclude */macbuild/*			\
-			--exclude */package/*			\
-			--exclude mozilla/gc/boehm
-
-MOZ_PKGCONFIG_FILES?=	${MOZILLA}-gtkmozembed ${MOZILLA}-js \
-			${MOZILLA}-xpcom ${MOZILLA}-plugin
-
-CFLAGS+=		${PTHREAD_CFLAGS}
-LIBS+=			${PTHREAD_LIBS} -L${LOCALBASE}/lib -liconv
-
-_USE_GECKO_OPTIONS_ALL=	java debug logging optimized_cflags
-
-.if !defined(USE_GECKO_OPTIONS)
-USE_GECKO_OPTIONS=	debug logging optimized_cflags
-.endif
-
-debug_OPTION=	"Build a debugging image" off
-java_OPTION=	"Enable JAVA xpcom" off
-logging_OPTION=	"Enable additional log messages" off
-optimized_cflags_OPTION=	"Enable some additional optimizations" off
-
-.for option in ${USE_GECKO_OPTIONS:tl}
-.if ${_USE_GECKO_OPTIONS_ALL:M${option}}!=""
-OPTIONS+=	${option:tu} ${${option}_OPTION}
-_${option}=	${TRUE}
-.endif
-.endfor
-
-# Standard depends
-_ALL_DEPENDS=	cairo dbm jpeg nspr nss png xft zip
-
-cairo_LIB_DEPENDS=	libcairo.so:${PORTSDIR}/graphics/cairo
-cairo_MOZ_OPTIONS=	--enable-system-cairo
-cairo_EXTRACT_AFTER_ARGS=	--exclude mozilla/gfx/cairo
-
-dbm_EXTRACT_AFTER_ARGS=		--exclude mozilla/dbm
-
-jpeg_LIB_DEPENDS=	libjpeg.so:${PORTSDIR}/graphics/jpeg
-jpeg_MOZ_OPTIONS=	--with-system-jpeg=${LOCALBASE}
-jpeg_EXTRACT_AFTER_ARGS=	--exclude mozilla/jpeg
-
-nspr_LIB_DEPENDS=	libnspr4.so:${PORTSDIR}/devel/nspr
-nspr_MOZ_OPTIONS=	--with-system-nspr
-
-nss_LIB_DEPENDS=	libnss3.so:${PORTSDIR}/security/nss
-nss_EXTRACT_AFTER_ARGS=	--exclude mozilla/security/nss
-nss_MOZ_OPTIONS=	--with-system-nss
-nss_CPPFLAGS+=		-I${LOCALBASE}/include/nss -I${LOCALBASE}/include/nss/nss
-nss_LDFLAGS+=		-L${LOCALBASE}/lib/nss -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}
-
-
-png_LIB_DEPENDS=	libpng.so:${PORTSDIR}/graphics/png
-png_MOZ_OPTIONS=	--with-system-png=${LOCALBASE}
-
-xft_LIB_DEPENDS=	libXft.so:${PORTSDIR}/x11-fonts/libXft
-zip_DEPENDS=		zip:${PORTSDIR}/archivers/zip
-
-.for use in ${USE_MOZILLA}
-${use:S/-/_WITHOUT_/}=	${TRUE}
-.endfor
-
-.for dep in ${_ALL_DEPENDS}
-.if !defined(_WITHOUT_${dep})
-BUILD_DEPENDS+=	${${dep}_DEPENDS}
-LIB_DEPENDS+=	${${dep}_LIB_DEPENDS}
-RUN_DEPENDS+=	${${dep}_DEPENDS}
-MOZ_OPTIONS+=	${${dep}_MOZ_OPTIONS}
-EXTRACT_AFTER_ARGS+=	${${dep}_EXTRACT_AFTER_ARGS}
-CPPFLAGS+=	${${dep}_CPPFLAGS}
-LDFLAGS+=	${${dep}_LDFLAGS}
-.endif
-.endfor
-
-# Standard options from README
-MOZ_TOOLKIT?=	gtk2
-MOZ_OPTIONS+=	--enable-crypto 	\
-		--disable-tests 	\
-		--enable-default-toolkit=${MOZ_TOOLKIT} \
-		--enable-xft		\
-		--with-pthreads
-# Configure options for install
-MOZ_OPTIONS+=	--x-includes=${LOCALBASE}/include \
-		--x-libraries=${LOCALBASE}/lib
-.if !defined(MOZ_EXTENSIONS)
-MOZ_OPTIONS+=	--enable-extensions=default
 .else
-MOZ_OPTIONS+=	--enable-extensions=${MOZ_EXTENSIONS}
+IGNORE=	Unknown type of gecko dependency you may specify either libxul, firefox, seamonkey or thunderbird
 .endif
-.if !defined(MOZ_GRAPHICS)
-MOZ_OPTIONS+=	--enable-image-decoders=default
-.else
-MOZ_OPTIONS+=	--enable-image-decoders=${MOZ_GRAPHICS}
-.endif
-.if !defined(MOZ_PROTOCOLS)
-MOZ_OPTIONS+=	--enable-necko-protocols=default
-.else
-MOZ_OPTIONS+=	--enable-necko-protocols=${MOZ_PROTOCOLS}
-.endif
-# others 
-MOZ_OPTIONS+=	--with-system-zlib=/usr		\
-		--with-gssapi=${KRB5_HOME}	\
-		--disable-auto-deps		\
-		--enable-chrome-format=jar	\
-		--disable-cpp-exceptions	\
-		--disable-cpp-rtti		\
-		--disable-glibtest		\
-		--disable-gtktest		\
-		--disable-freetypetest		\
-		--enable-double-buffer		\
-		--enable-mathml			\
-		--disable-installer		\
-		--disable-md			\
-		--disable-pedantic		\
-		--disable-bidi			\
-		--disable-xterm-updates		\
-		--disable-xprint		\
-		--enable-xinerama
-MOZ_MK_OPTIONS+=	XP_UNIX=1		\
-			PERL=${PERL}
 
-.if defined(WITH_OPTIMIZED_CFLAGS)
-CFLAGS:=	${CFLAGS} -O2 -fno-strict-aliasing ${EXTRA_CFLAGS}
-WITH_OPTIMIZE?=	-O2
-.else
-CFLAGS:=	${CFLAGS} ${EXTRA_CFLAGS}
-WITH_OPTIMIZE?=
+.if defined(_GECKO_TYPE)
+.if ${_GECKO_VERSION:M*+}
+_GECKO_MIN_VERSION:=		${_GECKO_VERSION:S/+//}
+_GECKO_WANTED_VERSIONS:=	${_GECKO_DEFAULT_VERSION}
 .endif
 
-.if defined(WITH_SMB)
-USE_GNOME+=		gnomevfs2
-MOZ_OPTIONS+=	--enable-gnomevfs
-.else
-MOZ_OPTIONS+=	--disable-gnomevfs
+.if ${_GECKO_VERSION:M[0-9][0-9]}
+_GECKO_WANTED_VERSIONS:=	${_GECKO_VERSION:M[0-9][0-9]}
 .endif
 
-.if !defined(STRIP) || ${STRIP} == ""
-MOZ_OPTIONS+=	--disable-strip --disable-install-strip
-.endif
+_GECKO_WANTED_VERSIONS?=	${_GECKO_DEFAULT_VERSION}
 
-.if defined(WITH_DEBUG)
-MOZ_OPTIONS+=	--enable-debug
-WITH_LOGGING=	yes
-.else
-MOZ_OPTIONS+=	--disable-debug				\
-		--enable-optimize=${WITH_OPTIMIZE}
+.if defined(_GECKO_MIN_VERSION)
+.  for _v in ${_GECKO_VERSIONS}
+.    if ${_GECKO_MIN_VERSION} <= ${_v}
+_GECKO_WANTED_VERSIONS+=	${_v}
+.    endif
+.  endfor
 .endif
 
-.if defined(WITH_JAVA) && defined(_WITH_JAVA)
-USE_JAVA=	yes
-JAVA_VERSION+=	1.4+
-JAVA_OS+=	native
-CONFIGURE_ENV+=	JAVA_HOME="${JAVA_HOME}"
-MOZ_OPTIONS+=	--enable-javaxpcom
+.for _v in ${_GECKO_WANTED_VERSIONS:O:u}
+_GECKO_HIGHEST_VERSION:=	${_v}
+.if defined(_GECKO_INSTALLED_VER) && ${_GECKO_INSTALLED_VER} == ${_v}
+_GECKO_WANTED_VERSION:=	${_v}
 .endif
+.endfor
 
-.if defined(WITH_LOGGING)
-MOZ_OPTIONS+=	--enable-logging
+.if !defined(_GECKO_WANTED_VERSION)
+.if defined(_GECKO_INSTALLED_VER)
+IGNORE=	cannot install: ${_GECKO_TYPE} versions mismatch: ${_GECKO_TYPE}-${_GECKO_INSTALLED_VER} is installed and wanted version is ${_GECKO_TYPE}-${_GECKO_VERSION:M[0-9][0-9]}
 .else
-MOZ_OPTIONS+=	--disable-logging
+_GECKO_WANTED_VERSION:=	${_GECKO_HIGHEST_VERSION}
 .endif
-
-MOZ_SED_ARGS+=	-e's|@CPPFLAGS@|${CPPFLAGS}|g'		\
-		-e 's|@CFLAGS@|${CFLAGS}|g'		\
-		-e 's|@LDFLAGS@|${LDFLAGS}|g'		\
-		-e 's|@LIBS@|${LIBS}|g'			\
-		-e 's|@LOCALBASE@|${LOCALBASE}|g'	\
-		-e 's|@FAKEDIR@|${FAKEDIR}|g'		\
-		-e 's|@PERL@|${PERL5}|g'			\
-		-e 's|@KRB5_HOME@|${KRB5_HOME}|g'	\
-		-e 's|@MOZDIR@|${PREFIX}/lib/${MOZILLA}|g'	\
-		-e 's|%%PREFIX%%|${PREFIX}|g'		\
-		-e 's|%%CFLAGS%%|${CFLAGS}|g'		\
-		-e 's|%%LDFLAGS%%|${LDFLAGS}|g'		\
-		-e 's|%%LIBS%%|${LIBS}|g'		\
-		-e 's|%%LOCALBASE%%|${LOCALBASE}|g'	\
-		-e 's|%%FAKEDIR%%|${FAKEDIR}|g'		\
-		-e 's|%%PERL%%|${PERL5}|g'		\
-		-e 's|%%KRB5_HOME%%|${KRB5_HOME}|g'	\
-		-e 's|%%MOZILLA%%|${MOZILLA}|g'		\
-		-e 's|%%MOZILLA_BIN%%|${MOZILLA_BIN}|g'	\
-		-e 's|%%MOZDIR%%|${PREFIX}/lib/${MOZILLA}|g'
-MOZCONFIG_SED?= ${SED} ${MOZ_SED_ARGS}
-
-.if ${ARCH}=="sparc64"
-# Work around miscompilation/mislinkage of the sCanonicalVTable hacks.
-MOZ_OPTIONS+=	--disable-v1-string-abi
 .endif
 
-.else # bsd.port.post.mk
 
-post-patch: gecko-post-patch gecko-moz-pis-patch
-
-gecko-post-patch:
-.if exists(${PKGINSTALL_INC})
-	@${MOZCONFIG_SED} < ${PKGINSTALL_INC} > ${PKGINSTALL}
+.if ${gecko_ARGS:Mbuild}
+BUILD_DEPENDS+=	${${_GECKO_WANTED_VERSION}_DEPENDS}
 .endif
-.if exists(${PKGDEINSTALL_INC})
-	@${MOZCONFIG_SED} < ${PKGDEINSTALL_INC} > ${PKGDEINSTALL}
-.endif
-	@${RM} -f ${MOZCONFIG}
-.if !defined(NOMOZCONFIG)
-.if exists(${GENERIC_MOZCONFIG})
-	@${MOZCONFIG_SED} < ${GENERIC_MOZCONFIG} >> ${MOZCONFIG}
-.endif
-	@if [ -e ${PORT_MOZCONFIG} ] ; then \
-		${MOZCONFIG_SED} < ${PORT_MOZCONFIG} >> ${MOZCONFIG} ; \
-	fi
-.for arg in ${MOZ_OPTIONS}
-	@${ECHO_CMD} ac_add_options ${arg} >> ${MOZCONFIG}
-.endfor
-.for arg in ${MOZ_MK_OPTIONS}
-	@${ECHO_CMD} mk_add_options ${arg} >> ${MOZCONFIG}
-.endfor
-.for var in ${MOZ_EXPORT}
-	@${ECHO_CMD} "export ${var}" >> ${MOZCONFIG}
-.endfor
-.endif # .if !defined(NOMOZCONFIG)
-.if exists(${MOZSRC}/build/unix/mozilla-config.in)
-	@${REINPLACE_CMD} -e  's/%{idldir}/%idldir%/g ; \
-		s|"%FULL_NSPR_CFLAGS%"|`nspr-config --cflags`|g ; \
-		s|"%FULL_NSPR_LIBS%"|`nspr-config --libs`|g' \
-			${MOZSRC}/build/unix/mozilla-config.in
-.endif
-	@${REINPLACE_CMD} -e 's|<iconv.h>|\"${LOCALBASE}/include/iconv.h\"|g' \
-		${WRKSRC}/configure
-.for subdir in config/system_wrappers nsprpub/config/system_wrappers js/src/config/system_wrappers_js
-	@${MKDIR} ${MOZSRC}/${subdir}
-	@${ECHO_CMD} "#pragma GCC system_header" >> ${MOZSRC}/${subdir}/iconv.h
-	@${ECHO_CMD} "#pragma GCC visibility push(default)" >> ${MOZSRC}/${subdir}/iconv.h
-	@${ECHO_CMD} "#include \"${LOCALBASE}/include/iconv.h\"" >> ${MOZSRC}/${subdir}/iconv.h
-	@${ECHO_CMD} "#pragma GCC visibility pop" >> ${MOZSRC}/${subdir}/iconv.h
-.endfor
-.for subdir in "" nsprpub js/src
-	@if [ -f ${MOZSRC}/${subdir}/config/system-headers ] ; then \
-		${ECHO_CMD} "fenv.h" >> ${MOZSRC}/${subdir}/config/system-headers ; \
-		${ECHO_CMD} "pthread_np.h" >> ${MOZSRC}/${subdir}/config/system-headers ; \
-	fi
-.endfor
-	@${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \
-		${WRKSRC}/config/autoconf.mk.in
-	@${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g ; \
-		s|echo aout|echo elf|g ; s|/usr/X11R6|${LOCALBASE}|g' \
-		${MOZSRC}/security/coreconf/FreeBSD.mk \
-		${MOZSRC}/js/src/Makefile.in
-	@if [ -d ${WRKSRC}/directory/c-sdk ]; then \
-		${REINPLACE_CMD} -e 's|echo aout|echo elf|g' \
-			${WRKSRC}/directory/c-sdk/config/FreeBSD.mk \
-			${WRKSRC}/directory/c-sdk/configure ; \
-	fi
-	@${REINPLACE_CMD} -e 's|-lc_r|${PTHREAD_LIBS}|g ; \
-		s|-lpthread|${PTHREAD_LIBS}|g ; \
-		s|echo aout|echo elf|g ; \
-		s|/usr/X11R6|${LOCALBASE}|g' \
-		${WRKSRC}/configure
-	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g ; \
-		s|%%LOCALBASE%%|${LOCALBASE}|g' \
-			${MOZSRC}/build/unix/run-mozilla.sh
-	@${REINPLACE_CMD} -E -e 's|libesd\.so\.[0-9]+|libesd.so|g' \
-		${MOZSRC}/widget/src/gtk2/nsSound.cpp
-	@${REINPLACE_CMD} -E -e 's|libcups\.so\.[0-9]+|libcups.so|g' \
-		${MOZSRC}/*/*/*/nsDeviceContextSpecG.cpp
-	@${REINPLACE_CMD} -e 's|/usr/local/netscape|${LOCALBASE}|g ; \
-		s|/usr/local/lib/netscape|${LOCALBASE}/lib|g' \
-		${MOZSRC}/xpcom/*/SpecialSystemDirectory.cpp
+RUN_DEPENDS+=	${${_GECKO_WANTED_VERSION}_DEPENDS}
 
-# handles mozilla pis scripts.
-gecko-moz-pis-patch:
-.for moz in ${MOZ_PIS_SCRIPTS}
-	@${MOZCONFIG_SED} < ${FILESDIR}/${moz} > ${WRKDIR}/${moz}
-.endfor
-
-post-configure: gecko-post-configure
-
-gecko-post-configure:
-	@${ECHO_CMD} "#define JNIIMPORT" >> ${MOZSRC}/mozilla-config.h
-
-post-build: gecko-post-build
-
-gecko-post-build:
-	@${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2|" \
-		${MOZSRC}/build/unix/*.pc || ${TRUE}
-
-pre-install: gecko-moz-pis-pre-install gecko-pre-install port-pre-install gecko-create-plist
-
-.if !target(port-pre-install)
-port-pre-install:
-		@${DO_NADA}
 .endif
 
-gecko-pre-install:
-.if !defined(NOGECKO_PLIST)
-	@${RM} -rf ${FAKEDIR} ${PLIST} ${PLISTD} ${PLISTF}
-	@${TOUCH} -f ${PLIST} ${PLISTD} ${PLISTF}
-	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
-		${MAKEFILE} ${MAKE_ARGS} prefix=${FAKEDIR} ${INSTALL_TARGET}
-.if defined(MOZILLA_SUFX) && ${MOZILLA_SUFX}!="none"
-	${MV} ${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//} ${FAKEDIR}/bin/${MOZILLA}
-.if exists(${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//}-config)
-	${MV} ${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//}-config ${FAKEDIR}/bin/${MOZILLA}-config
 .endif
-.for pc in ${MOZ_PKGCONFIG_FILES:S|${MOZILLA_SUFX}||}
-	${SED} -e 's|Requires: ${MOZILLA:S/${MOZILLA_SUFX}//}|Requires: ${MOZILLA}|' \
-	${FAKEDIR}/lib/pkgconfig/${pc}.pc > ${FAKEDIR}/lib/pkgconfig/${pc:S/${MOZILLA:S,${MOZILLA_SUFX},,}/${MOZILLA}/}.pc
-.endfor
-	@${REINPLACE_CMD} -e 's|${MOZILLA}-bin|${MOZILLA:S/${MOZILLA_SUFX}//}|; \
-		s|$${progbase}-bin|${MOZILLA:S/${MOZILLA_SUFX}//}-bin|' \
-		${FAKEDIR}/bin/${MOZILLA_EXEC_NAME}*
-.endif
-	@${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
-		${FAKEDIR}/bin/${MOZILLA_EXEC_NAME}*
-	${RM} -f ${FAKEDIR}/bin/*.bak
-.endif
-
-gecko-create-plist:
-.if !defined(NOGECKO_PLIST)
-# Create the plist
-.for f in ${GECKO_PLIST_PRE_FILES}
-	${ECHO_CMD} ${f} >> ${PLISTF}
-.endfor
-.for f in ${GECKO_PLIST_PRE_DIRS}
-	${ECHO_CMD} "@dirrm ${f}" >> ${PLISTD}
-.endfor
-	${MKDIR} ${FAKEDIR}/libdata
-	${MV} -f ${FAKEDIR}/lib/pkgconfig ${FAKEDIR}/libdata/ || ${TRUE}
-	${RM} -f ${FAKEDIR}/lib/pkgconfig
-.for dir in ${MOZILLA_PLIST_DIRS}
-	@cd ${FAKEDIR}/${dir} && ${FIND} -H -s * -type f | \
-		${SED} -e 's|^|${dir}/|' >> ${PLISTF} && \
-		${FIND} -d * -type d | \
-		${SED} -e 's|^|@dirrm ${dir}/|' >> ${PLISTD}
-.endfor
-.for pcfile in ${MOZ_PKGCONFIG_FILES}
-	${ECHO_CMD} "libdata/pkgconfig/${pcfile}.pc" >> ${PLISTF}
-	@${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
-		-e 's|${MOZILLA}-nspr = ${PORTVERSION}|nspr|' \
-		${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc
-.endfor
-	${CAT} ${PLISTF} | ${SORT} >> ${PLIST}
-	${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST}
-	${ECHO_CMD} "@dirrmtry share/idl" >> ${PLIST}
-	${ECHO_CMD} "@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
-	${ECHO_CMD} "@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
-.endif # !defined(NOGECKO_PLIST)
-
-do-install: gecko-do-install
-
-gecko-do-install:
-.if !defined(NOGECKO_INSTALL)
-.for dir in ${MOZILLA_PLIST_DIRS}
-.if !exists(${PREFIX}/${dir})
-	${MKDIR} ${PREFIX}/${dir}
-	${CHMOD} 755 ${PREFIX}/${dir}
-.endif
-	cd ${FAKEDIR}/${dir} && ${FIND} . | \
-		${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/${dir}
-.endfor
-.for pcfile in ${MOZ_PKGCONFIG_FILES}
-	${INSTALL_DATA} ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc \
-		${PREFIX}/libdata/pkgconfig/${pcfile}.pc
-.endfor
-.endif # !defined(NOGECKO_INSTALL)
-
-gecko-moz-pis-pre-install:
-.if defined(MOZ_PIS_SCRIPTS)
-	${MKDIR} ${FAKEDIR}/${MOZ_PIS_DIR}
-.for moz in ${MOZ_PIS_SCRIPTS}
-	${INSTALL_SCRIPT} ${WRKDIR}/${moz} ${FAKEDIR}/${MOZ_PIS_DIR}
-.endfor
-.endif
-
-post-install: gecko-post-install
-
-gecko-post-install:
-.if !defined(PACKAGE_BUILDING) && !defined(NO_MOZPKGINSTALL)
-	@if [ -e ${PKGINSTALL} ] ; then \
-		${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL; \
-	fi
-.endif
-	@-update-desktop-database
-
-.endif
-.endif

Modified: trunk/Mk/extensions/imake.mk
===================================================================
--- trunk/Mk/extensions/imake.mk	2015-06-10 00:53:08 UTC (rev 19406)
+++ trunk/Mk/extensions/imake.mk	2015-06-10 00:54:45 UTC (rev 19407)
@@ -5,23 +5,18 @@
 # Feature:		imake
 # Usage:		USES=imake
 # Valid ARGS:		env: do not define any target
+#			notall: do not pass -a to xmkmf
+#			noman: do not add install-man to
+#			INSTALL_TARGET
 #
 
 .if !defined(_INCLUDE_USES_IMAKE_MK)
 _INCLUDE_USES_IMAKE_MK=	yes
 
-.if defined(imake_ARGS)
-.if ${imake_ARGS} == env
-IMAKE_ENV_ONLY=	yes
-.else
-IGNORE=		USES=imake ${imake_ARGS} is not a valid argument
+.if ${imake_ARGS:Nnotall:Nenv:Nnoman}
+IGNORE=		USES=imake:${imake_ARGS:S/ /,/g} is not a valid argument
 .endif
-.endif
 
-.if !defined(NO_INSTALL_MANPAGES)
-MANCOMPRESSED?=	yes
-.endif
-
 BUILD_DEPENDS+=		imake:${PORTSDIR}/devel/imake
 
 .if defined(USE_GCC)
@@ -34,17 +29,21 @@
 .endif
 MAKE_ENV+=		IMAKECPP=${IMAKECPP} IMAKECPPFLAGS="${IMAKECPPFLAGS}"
 CONFIGURE_ENV+=		IMAKECPP=${IMAKECPP} IMAKECPPFLAGS="${IMAKECPPFLAGS}"
-MAKE_ARGS+=		IMAKE_DEFINES="${IMAKECPPFLAGS}"
 
-.if !defined(IMAKE_ENV_ONLY)
+.if ! ${imake_ARGS:Mnotall}
+XMKMF_ARGS+=		-a
+.endif
+
+.if ! ${imake_ARGS:Menv}
 .if !target(do-configure)
 do-configure:
-	@(cd ${CONFIGURE_WRKSRC}; ${SETENV} ${MAKE_ENV} ${XMKMF})
+	@(cd ${CONFIGURE_WRKSRC} && ${SETENV} ${MAKE_ENV} ${XMKMF} ${XMKMF_ARGS})
 .endif
 
-.if !defined(NO_INSTALL_MANPAGES)
+.if ! ${imake_ARGS:Mnoman}
 LATE_INSTALL_ARGS=	install.man
 .endif
+
 .endif
 
 .endif



More information about the Midnightbsd-cvs mailing list