summaryrefslogblamecommitdiffstats
path: root/www/mozilla/bsd.gecko.mk
blob: b24eb476fd3d41b80daea85de9df9d2d184608c7 (plain) (tree)
1
2
3
4
5



                                         
                                                                                































































                                                                                  



                                                                                               
      















                                                                   


                                                      





                                                                                                                   
                        


                                                        







                                                  
                      
                





                               









                                                         

                                              
                     
                















                                                                      
                                                                


























                                                                                    
                                                                                      





                                                             
#-*- mode: Fundamental; tab-width: 4; -*-
# ex:ts=4
#
# $FreeBSD$
#    $MCom: ports/www/mozilla/bsd.gecko.mk,v 1.22 2006/09/14 13:58:56 ahze Exp $
#
# 4 column tabs prevent hair loss and tooth decay!

# bsd.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 bsd.gecko.mk to be the chosen backend.
# Users set ${WITH_GECKO} to the list of gecko backends they want on their system.

.if defined(USE_GECKO)
#.if defined(_POSTMKINCLUDED) && !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=       gnome@FreeBSD.org
Gecko_Pre_Include=          bsd.gecko.mk


# Users should use the following syntax:
#
# WITH_GECKO= mozilla firefox seamonkey
#  Use mozilla whenever a port supports it, falling back on firefox and
#  then seamonkey.
# WITH_GECKO= firefox
#  Sets your preferred backend. With this example, firefox will always
#  be chosen, unless the port doesn't support a firefox 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= mozilla firefox-devel firefox 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/mozilla will be used
#  as a gecko backend unless WITH_GECKO=firefox or WITH_GECKO=seamonkey
#  is defined by the user.
#
# USE_GECKO= firefox-devel<->firefox
#  This will sed -e 's/firefox/firefox-devel/' on Makefile.in's and configure 
#  if ${GECKO}=="firefox-devel"
#
#  Example:
#  USE_GECKO= mozilla firefox seamonkey
#  .include <bsd.port.pre.mk>
#  .include "${.CURDIR}/../../www/mozilla/bsd.gecko.mk"
#  post-patch:
#   @${REINPALCE_CMD} -e 's|mozilla-|${GECKO}-|' \
#       ${WRKSRC}/configure
#
#  If you want your port to check the ${GECKO} variable to see which backend
#  has been chosen.
#
#  Example:
#  USE_GECKO= mozilla firefox seamonkey
#  .include <bsd.port.pre.mk>
#  .include "${.CURDIR}/../../www/mozilla/bsd.gecko.mk"
#  post-patch:
#  .if ${GECKO}=="seamonkey"
#   @${REINPLACE_CMD} -e 's|mozilla-|seamonkey-|' \
#       ${WRKSRC}/configure
#  .endif

.if (${ARCH}!="sparc64" || ${OSVERSION} >= 601101) && ${ARCH}!="ia64" && ${OSVERSION} >= 500000
_GECKO_ALL= firefox seamonkey xulrunner firefox-devel flock sunbird thunderbird nvu
.else
_GECKO_ALL= mozilla
.endif

sunbird_PORTSDIR=   deskutils

thunderbird_PORTSDIR=   mail

.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/}
.  if exists(${${badgecko}_PLIST})
INSTALLED_GECKOS+=  ${badgecko:C/^([^<->]+).*/\1/}
.  endif
. 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 _FOUND_WITH_GECKO
# 3 levels of craziness to figure out which gecko to use

# Level 1, find GECKO via [WITH|USE]_GECKO 
.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)
GECKO=  ${gecko}
_FOUND_WITH_GECKO=  ${TRUE}
.   endif
.  endfor
. endif
.endif

# Level 2, Use installed gecko
.if !defined(GECKO) && defined(INSTALLED_GECKOS)
. for gecko in ${INSTALLED_GECKOS}
.  if !defined(GECKO)
GECKO=  ${gecko}
.  endif
. endfor
.endif

# Level 3, Fall back to the first listing in ${USE_GECKO}
.if !defined(GECKO) && defined(GOOD_USE_GECKO)
. for gecko in ${GOOD_USE_GECKO}
.  if !defined(GECKO)
GECKO=  ${gecko}
.  endif
. endfor
.endif

# Generic defines
BROWSER_LINUX_PLUGINS_DIR?= ${LOCALBASE}/lib/browser_linux_plugins
BROWSER_PLUGINS_DIR?=       ${LOCALBASE}/lib/browser_plugins

GECKO_CONFIG?=          ${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

pre-everything:: _gecko-pre-everything

_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} ""

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 # end it all
.endif
# HERE THERE BE TACOS