From a05bdcb3c6009f0be7d5550b16c7773ba78fd359 Mon Sep 17 00:00:00 2001 From: ahze Date: Thu, 3 Apr 2008 16:59:11 +0000 Subject: Merge from ports-experimental git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@10854 df743ca5-7f9a-e211-a948-0013205c9059 --- Mk/bsd.gecko.mk | 631 ++++++ Mk/bsd.gnome.mk | 4 +- Mk/bsd.port.mk | 6130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 6763 insertions(+), 2 deletions(-) create mode 100644 Mk/bsd.gecko.mk create mode 100644 Mk/bsd.port.mk (limited to 'Mk') diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk new file mode 100644 index 000000000..c78eccf1a --- /dev/null +++ b/Mk/bsd.gecko.mk @@ -0,0 +1,631 @@ +#-*- mode: Fundamental; tab-width: 4; -*- +# ex:ts=4 +# +# Date created: 12 Nov 2005 +# Whom: Michael Johnson +# +# $FreeBSD$ +# $MCom$ +# +# 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) && ${USE_GECKO}!="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 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 +# .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 +# .include "${.CURDIR}/../../www/mozilla/bsd.gecko.mk" +# post-patch: +# .if ${GECKO}=="seamonkey" +# @${REINPLACE_CMD} -e 's|mozilla-|seamonkey-|' \ +# ${WRKSRC}/configure +# .endif + +.if ${OSVERSION} >= 500000 +.if (${ARCH}!="sparc64" || ${OSVERSION} >= 601101) && ${ARCH}!="ia64" +_GECKO_ALL= firefox nvu seamonkey thunderbird xulrunner flock +.endif +.endif +_GECKO_ALL+= mozilla + +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/} +. 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 +.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 + +# 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 + +.else # split + +.if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include) +Gecko_Pre_Include= bsd.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. The reusable components for gecko-based ports +# lives in www/mozilla/bsd.gecko.mk. +# +# +# Ports can use the following: +# +# GECKO_PLIST_PRE_FILES List of files to add to the beginning of plist +# GECKO_PLIST_PRE_DIRS +# +# 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 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_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?= gnome@FreeBSD.org + +MOZILLA?= ${PORTNAME} +MOZILLA_VER?= ${PORTVERSION} +MOZILLA_BIN?= ${PORTNAME}-bin +MOZ_RPATH?= ${MOZILLA} +USE_GNOME+= gtk20 libidl desktopfileutils +USE_ICONV= yes +USE_PERL5_BUILD=yes +USE_XLIB= yes + +MOZILLA_SUFX?= none +WRKSRC?= ${WRKDIR}/mozilla +FAKEDIR?= ${WRKDIR}/fake +PLIST?= ${WRKDIR}/plist +MASTER_DIR?= ${.CURDIR}/../../www/mozilla + +KRB5_HOME?= /usr +BROWSER_PLUGINS_DIR?= lib/browser_plugins +MOZ_PIS_DIR?= lib/${MOZILLA}/init.d + +ESD_LIB?= libesd.so.2 +FREETYPE_LIB?= libfreetype.so.9 + +GENERIC_MOZCONFIG?= ${.CURDIR}/../../www/mozilla/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/mozilla +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/dbm \ + --exclude mozilla/gc/boehm + +JPI_LIST?=\ + ${LOCALBASE}/jdk1.5.0/jre/plugin/${ARCH}/ns7/libjavaplugin_oji.so \ + ${LOCALBASE}/jdk1.4.2/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so + +MOZ_PKGCONFIG_FILES?= ${MOZILLA}-gtkmozembed ${MOZILLA}-js \ + ${MOZILLA}-xpcom ${MOZILLA}-plugin + +CPPFLAGS+= -I${LOCALBASE}/include/nss -I${LOCALBASE}/include/nss/nss +CFLAGS+= ${PTHREAD_CFLAGS} +LDFLAGS+= -L${LOCALBASE}/lib/nss -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} +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:L} +.if ${_USE_GECKO_OPTIONS_ALL:M${option}}!="" +OPTIONS+= ${option:U} ${${option}_OPTION} +_${option}= ${TRUE} +.endif +.endfor + +# Standard depends +_ALL_DEPENDS= cairo jpeg nspr nss png xft zip + +cairo_LIB_DEPENDS= cairo.2:${PORTSDIR}/graphics/cairo +cairo_MOZ_OPTIONS= --enable-system-cairo +cairo_EXTRACT_AFTER_ARGS= --exclude mozilla/gfx/cairo + +jpeg_LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg +jpeg_MOZ_OPTIONS= --with-system-jpeg=${LOCALBASE} +jpeg_EXTRACT_AFTER_ARGS= --exclude mozilla/jpeg + +nspr_LIB_DEPENDS= nspr4:${PORTSDIR}/devel/nspr +nspr_MOZ_OPTIONS= --with-system-nspr + +nss_LIB_DEPENDS= nss3:${PORTSDIR}/security/nss +nss_EXTRACT_AFTER_ARGS= --exclude mozilla/security/nss +nss_MOZ_OPTIONS= --with-system-nss + +png_LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png +png_MOZ_OPTIONS= --with-system-png=${LOCALBASE} + +xft_LIB_DEPENDS= Xft.2:${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} +.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} +.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 \ + --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?= +.endif + +.if defined(WITH_SMB) +USE_GNOME+= gnomevfs2 +MOZ_OPTIONS+= --enable-gnomevfs +.endif + +.if defined(WITH_DEBUG) +MOZ_OPTIONS+= --enable-debug \ + --disable-strip +WITH_LOGGING= yes +.else +MOZ_OPTIONS+= --disable-debug \ + --enable-optimize=${WITH_OPTIMIZE} \ + --enable-strip +.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 +.endif + +.if defined(WITH_LOGGING) +MOZ_OPTIONS+= --enable-logging +.else +MOZ_OPTIONS+= --disable-logging +.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|@X11BASE@|${LOCALBASE}|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|%%X11BASE%%|${LOCALBASE}|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 ${OSVERSION} >= 700000 || exists(/usr/lib/libbz2_p.a) +LIB_BZ2= -lbz2_p +.else +LIB_BZ2= -lbz2 +.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} +.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) + @${REINPLACE_CMD} -e 's/%{idldir}/%idldir%/g ; \ + s|"%FULL_NSPR_CFLAGS%"|`nspr-config --cflags`|g ; \ + s|"%FULL_NSPR_LIBS%"|`nspr-config --libs`|g' \ + ${WRKSRC}/build/unix/mozilla-config.in + @${REINPLACE_CMD} -e 's||\"${LOCALBASE}/include/iconv.h\"|g' \ + ${WRKSRC}/configure \ + ${WRKSRC}/intl/uconv/native/nsNativeUConvService.cpp \ + ${WRKSRC}/xpcom/io/nsNativeCharsetUtils.cpp + @${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' \ + ${WRKSRC}/security/coreconf/FreeBSD.mk \ + ${WRKSRC}/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' \ + ${WRKSRC}/build/unix/run-mozilla.sh + @${REINPLACE_CMD} -E -e 's|libesd\.so\.[0-9]+|libesd.so|g' \ + ${WRKSRC}/widget/src/gtk2/nsSound.cpp + @${REINPLACE_CMD} -E -e 's|libcups\.so\.[0-9]+|libcups.so|g' \ + ${WRKSRC}/*/*/*/nsDeviceContextSpecG.cpp + @${REINPLACE_CMD} -e 's|/usr/local/netscape|${LOCALBASE}|g ; \ + s|/usr/local/lib/netscape|${LOCALBASE}/lib|g' \ + ${WRKSRC}/xpcom/*/SpecialSystemDirectory.cpp + @if [ -n "`${PKG_INFO} -xI '^bind[0-9]*-base-[0-9]'`" ]; then \ + ${ECHO_CMD} "${PKGNAME}: bind installed with PORT_REPLACES_BASE_BIND causes build problems."; \ + ${FALSE}; \ + fi + +# 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" >> ${WRKSRC}/mozilla-config.h + +post-build: gecko-post-build + +gecko-post-build: + @${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2|" \ + ${WRKSRC}/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} + @${TOUCH} -f ${PLIST} + @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}* +.endif + @${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \ + ${FAKEDIR}/bin/${MOZILLA}* + ${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} >> ${PLIST} +.endfor +.for f in ${GECKO_PLIST_PRE_DIRS} + ${ECHO_CMD} "@dirrm ${f}" >> ${PLIST} +.endfor + ${ECHO_CMD} "${BROWSER_PLUGINS_DIR}/.${MOZILLA}.keep" >> ${PLIST} + ${ECHO_CMD} "@unexec ${RMDIR} %D/${BROWSER_PLUGINS_DIR} 2>/dev/null || ${TRUE}" >> ${PLIST} + ${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} -s * -type f -o -type l | \ + ${SED} -e 's|^|${dir}/|' >> ${PLIST} && \ + ${FIND} -d * -type d | \ + ${SED} -e 's|^|@dirrm ${dir}/|' >> ${PLIST} +.endfor +.for pcfile in ${MOZ_PKGCONFIG_FILES} + ${ECHO_CMD} "libdata/pkgconfig/${pcfile}.pc" >> ${PLIST} + @${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \ + -e 's|${MOZILLA}-nspr = ${PORTVERSION}|nspr|' \ + ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc +.endfor + ${ECHO_CMD} "@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST} + ${ECHO_CMD} "@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST} + ${ECHO_CMD} "@unexec ${RMDIR} %D/share/idl 2>/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 + ${MKDIR} ${PREFIX}/${BROWSER_PLUGINS_DIR} + ${TOUCH} -f ${PREFIX}/${BROWSER_PLUGINS_DIR}/.${MOZILLA}.keep +.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 +# HERE THERE BE TACOS -- adamw diff --git a/Mk/bsd.gnome.mk b/Mk/bsd.gnome.mk index 323b3f1c5..4a032a2ef 100644 --- a/Mk/bsd.gnome.mk +++ b/Mk/bsd.gnome.mk @@ -3,7 +3,7 @@ # # $FreeBSD$ # $NetBSD: $ -# $MCom: ports/Mk/bsd.gnome.mk,v 1.449 2008/03/24 16:35:52 mezz Exp $ +# $MCom: ports/Mk/bsd.gnome.mk,v 1.450 2008/03/24 17:20:48 mezz Exp $ # # Please view me with 4 column tabs! @@ -74,7 +74,7 @@ _USE_GNOME_ALL+= atk atspi desktopfileutils eel2 evolutiondataserver gail \ nautiluscdburner orbit2 pango pygnome2 pygnomedesktop pygnomeextras \ pygtk2 pygtksourceview vte -GNOME_MAKEFILEIN?= Makefile.in +GNOME_MAKEFILEIN?= ${MAKEFILE}.in SCROLLKEEPER_DIR= /var/db/rarian gnomehack_PRE_PATCH= ${FIND} ${WRKSRC} -name "${GNOME_MAKEFILEIN}*" -type f | ${XARGS} ${REINPLACE_CMD} -e \ 's|[(]libdir[)]/locale|(prefix)/share/locale|g ; \ diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk new file mode 100644 index 000000000..37c8e55f1 --- /dev/null +++ b/Mk/bsd.port.mk @@ -0,0 +1,6130 @@ +#-*- mode: makefile; tab-width: 4; -*- +# ex:ts=4 +# +# $FreeBSD$ +# $NetBSD: $ +# +# bsd.port.mk - 940820 Jordan K. Hubbard. +# This file is in the public domain. +# +# Please view me with 4 column tabs! + +# This is the master file for the most common elements to all port +# Makefile in the ports system. For a more general overview of its +# use and importance, see the Porter's Handbook. + +# There are two different types of "maintainers" in the ports framework. +# The maintainer alias of the bsd.port.mk file is listed below in the +# FreeBSD_MAINTAINER entry. You should consult them if you have any +# questions/suggestions regarding this file. +# +# DO NOT COMMIT CHANGES TO THIS FILE BY YOURSELF, EVEN IF YOU DID NOT GET +# A RESPONSE FROM THE MAINTAINER(S) WITHIN A REASONABLE TIMEFRAME! ALL +# UNAUTHORISED CHANGES WILL BE UNCONDITIONALLY REVERTED! + +FreeBSD_MAINTAINER= portmgr@FreeBSD.org + +# For each port, the MAINTAINER variable is what you should consult for +# contact information on the person(s) to contact if you have questions/ +# suggestions about that specific port. By default (if no MAINTAINER +# is listed), a port is maintained by the subscribers of the ports@FreeBSD.org +# mailing list, and any correspondence should be directed there. +# +# MAINTAINER - The e-mail address of the contact person for this port. +# Default: ports@FreeBSD.org +# +# These are meta-variables that are automatically set to the system +# you are running on. These are provided in case you need to take +# different actions for different values. +# +# ARCH - The architecture of the target machine, such as would be +# returned by "uname -p". (Note: Ports should test against +# ARCH, and not the host machine's architecture which is +# MACHINE_ARCH, to enable ports to be cross-built.) +# OPSYS - Portability clause. This is the operating system the +# makefile is being used on. Automatically set to +# "FreeBSD," "NetBSD," or "OpenBSD" as appropriate. +# OSREL - The release version (numeric) of the operating system. +# OSVERSION - The value of __FreeBSD_version. +# +# This is the beginning of the list of all variables that need to be +# defined in a port, listed in order that they should be included +# to fit in with existing conventions. (Exception: MAINTAINER actually +# should appear after EXTRACT_ONLY and before MASTER_SITE_BACKUP). +# +# These variables are used to identify your port. +# +# PORTNAME - Name of software. Mandatory. +# PORTVERSION - Version of software. Mandatory when no DISTVERSION is given. +# PORTREVISION - Version of port. Optional. Commonly used to indicate +# that an update has happened that affects the port +# framework itself, but not the distributed software +# (e.g., local patches or Makefile changes). +# PORTEPOCH - Optional. In certain odd cases, the PORTREVISION logic +# can be fooled by ports that appear to go backwards +# numerically (e.g. if port-0.3 is newer than port-1998). +# In this case, incrementing PORTEPOCH forces the revision. +# Default: 0 (no effect). +# PKGNAME - Always defined as +# ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. +# Do not define this in your Makefile. +# PKGNAMEPREFIX - Prefix to specify that port is language-specific, etc. +# Optional. +# PKGNAMESUFFIX - Suffix to specify compilation options. Optional. +# PKGVERSION - Always defined as +# ${PORTVERSION}. +# Do not define this in your Makefile. +# UNIQUENAME - A name for your port that is globally unique. By default, +# this is set to ${LATEST_LINK} when LATEST_LINK is set, +# and to ${PKGNAMEPREFIX}${PORTNAME} otherwise. +# DISTVERSION - Vendor version of the distribution. +# Default: ${PORTVERSION} +# DISTNAME - Name of port or distribution used in generating +# WRKSRC and DISTFILES below. +# Default: +# ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} +# CATEGORIES - A list of descriptive categories into which this port falls. +# Mandatory. +# +# These variable describe how to fetch files required for building the port. +# +# DISTFILES - Name(s) of archive file(s) containing distribution. +# Set this to an empty string if the port doesn't require it. +# Default: ${DISTNAME}${EXTRACT_SUFX} +# EXTRACT_SUFX - Suffix for archive names +# You never have to set both DISTFILES and EXTRACT_SUFX. +# Default: .tar.bz2 if USE_BZIP2 is set, .zip if USE_ZIP is +# set, .run if USE_MAKESELF is set, .tar.gz otherwise). +# MASTER_SITES - Primary location(s) for distribution files if not found +# locally. See bsd.sites.mk for common choices for +# MASTER_SITES. +# MASTER_SITE_SUBDIR +# - Subdirectory of MASTER_SITES. Will sometimes need to be +# set to ${PORTNAME} for (e.g.) MASTER_SITE_SOURCEFORGE. +# Only guaranteed to work for choices of ${MASTER_SITES} +# defined in bsd.sites.mk. +# Default: not set. +# PATCHFILES - Name(s) of additional files that contain distribution +# patches. Make will look for them at PATCH_SITES (see below). +# They will automatically be uncompressed before patching if +# the names end with ".gz", ".bz2" or ".Z". +# Default: not set. +# PATCH_SITES - Primary location(s) for distribution patch files +# if not found locally. +# DIST_SUBDIR - Suffix to ${DISTDIR}. If set, all ${DISTFILES} and +# ${PATCHFILES} will be put in this subdirectory of +# ${DISTDIR} (see below). Also they will be fetched in this +# subdirectory from FreeBSD mirror sites. +# ALLFILES - All of ${DISTFILES} and ${PATCHFILES}. +# IGNOREFILES - If set, don't perform checksum checks on these files. +# NOFETCHFILES - If set, don't download these files from the ${MASTER_SITES} +# or ${MASTER_SITE_BACKUP} (but do from +# ${MASTER_SITE_OVERRIDE}) +# EXTRACT_ONLY - If set, a subset of ${DISTFILES} you want to +# actually extract. +# ALWAYS_KEEP_DISTFILES +# - If set, the package building cluster will save the distfiles +# along with the packages. This may be required to comply with +# some licenses, e.g. GPL in some cases. +# Default: not set. +# +# (NOTE: by convention, the MAINTAINER entry (see above) should go here.) +# +# These variables are typically set in /etc/make.conf to indicate +# the user's preferred location to fetch files from. You should +# rarely need to set these. +# +# MASTER_SITE_BACKUP +# - Backup location(s) for distribution files and patch +# files if not found locally and ${MASTER_SITES}/${PATCH_SITES} +# Default: +# ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ +# MASTER_SITE_OVERRIDE +# - If set, override the MASTER_SITES setting with this +# value. +# MASTER_SITE_FREEBSD +# - If set, only use ${MASTER_SITE_BACKUP} for +# MASTER_SITES. +# CD_MOUNTPTS - List of CDROM mountpoints to look for distfiles under. +# This variable supercedes CD_MOUNTPT, which is +# obsolete. +# +# Set these if your port should not be built under certain circumstances. +# These are string variables; you should set them to the reason why +# they are necessary. +# +# RESTRICTED - Prevent the distribution of distfiles and packages to +# the FTP sites or on CDROM (e.g. forbidden by license +# considerations). +# NO_CDROM - Packages and distfiles may not go on CDROM (e.g. must +# not be re-sold) but can go on FTP sites. +# NO_PACKAGE - Port should not be packaged for ftp sites or CDROMs, +# but distfiles can be put on ftp sites and CDROMs. +# FORBIDDEN - Package build should not be attempted because of +# security vulnerabilities. +# IGNORE - Package build should be skipped entirely (e.g. +# because of serious unfixable problems in the build, +# because it cannot be manually fetched, etc). Error +# logs will not appear on pointyhat, so this should be +# used sparingly. +# BROKEN - Port is believed to be broken. Package builds will +# still be attempted on the pointyhat package cluster to +# test this assumption. +# DEPRECATED - Port is deprecated to install. Advisory only. +# EXPIRATION_DATE +# - If DEPRECATED is set, determines a date when +# the port is planed to remove. The date format is +# ISO 8601 (YYYY-MM-DD). +# +# DISABLE_VULNERABILITIES +# - If set, do not check if the port is listed in the +# vulnerabilities database. +# +# In addition to RESTRICTED or NO_CDROM, if only a subset of distfiles +# or patchfiles have redistribution restrictions, set the following +# to the list of such files. +# +# RESTRICTED_FILES +# - List of files that cannot be redistributed. +# Default: "${DISTFILES} ${PATCHFILES}" if RESTRICTED +# or NO_CDROM is set, empty otherwise. +# +# These variables are booleans, so you don't need to set them to the reason. +# +# IS_INTERACTIVE +# - Set this if your port needs to interact with the user +# during any step in a package build. User can then decide +# to skip this port by setting ${BATCH}, or compiling only +# the interactive ports by setting ${INTERACTIVE}. +# Default: not set. +# USE_SUBMAKE - Set this if you want that each of the port's main 6 targets +# (extract, patch, configure, build, install and package) to be +# executed in a separate make(1) process. Useful when one of +# the stages needs to influence make(1) variables of the later +# stages using ${WRKDIR}/Makefile.inc generated on the fly. +# Default: not set. +# +# Set these if your port only makes sense to certain architectures. +# They are lists containing names for them (e.g., "alpha i386"). +# (Defaults: not set.) +# +# ONLY_FOR_ARCHS +# - Only build ports if ${ARCH} matches one of these. +# NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these. +# ONLY_FOR_ARCHS_REASON +# ONLY_FOR_ARCHS_REASON_${ARCH} +# - Reason why it's only for ${ONLY_FOR_ARCHS}s +# NOT_FOR_ARCHS_REASON +# NOT_FOR_ARCHS_REASON_${ARCH} +# - Reason why it's not for ${NOT_FOR_ARCHS}s +# IA32_BINARY_PORT +# - Set this instead of ONLY_FOR_ARCHS if the given port +# fetches and installs compiled i386 binaries. +# +# Dependency checking. Use these if your port requires another port +# not in the list below. (Default: empty.) +# +# EXTRACT_DEPENDS +# - A list of "path:dir[:target]" tuples of other ports this +# package depends on in the "extract" stage. "path" is +# the name of a file if it starts with a slash (/), an +# executable otherwise. make will test for the existence +# (if it is a full pathname) or search for it in your +# $PATH (if it is an executable) and go into "dir" to do +# a "make all install" if it's not found. If the third +# field ("target") exists, it will be used instead of +# ${DEPENDS_TARGET}. +# PATCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this +# package depends on in the "patch" stage. "path" is the +# name of a file if it starts with a slash (/), an +# executable otherwise. make will test for the existence +# (if it is a full pathname) or search for it in your +# $PATH (if it is an executable) and go into "dir" to do +# a "make all install" if it's not found. If the third +# field ("target") exists, it will be used instead of +# ${DEPENDS_TARGET}. +# FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this +# package depends in the "fetch" stage. "path" is the +# name of a file if it starts with a slash (/), an +# executable otherwise. make will test for the +# existence (if it is a full pathname) or search for +# it in your $PATH (if it is an executable) and go +# into "dir" to do a "make all install" if it's not +# found. If the third field ("target") exists, it will +# be used instead of ${DEPENDS_TARGET}. +# BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this +# package depends to build (between the "extract" and +# "build" stages, inclusive). The test done to +# determine the existence of the dependency is the +# same as FETCH_DEPENDS. If the third field ("target") +# exists, it will be used instead of ${DEPENDS_TARGET}. +# RUN_DEPENDS - A list of "path:dir[:target]" tuples of other ports this +# package depends to run. The test done to determine +# the existence of the dependency is the same as +# FETCH_DEPENDS. This will be checked during the +# "install" stage and the name of the dependency will +# be put into the package as well. If the third field +# ("target") exists, it will be used instead of +# ${DEPENDS_TARGET}. +# LIB_DEPENDS - A list of "lib:dir[:target]" tuples of other ports this +# package depends on. "lib" is the name of a shared library. +# make will use "ldconfig -r" to search for the library. +# lib can contain extended regular expressions. +# DEPENDS_TARGET +# - The default target to execute when a port is calling a +# dependency. +# Default: install +# +# These variables control options about how a port gets built and/or +# are shorthand notations for common sets of dependencies. +# Use these if your port uses some of the common software packages. By +# convention these should be set to 'yes', although they only need to be +# defined. Defaults: not set, unless explicitly indicated below. +# +# Note: the distinction between the USE_* and WANT_* variables, and the +# WITH_* and WITHOUT_* variables, are that the former are restricted to +# usage inside the ports framework, and the latter are reserved for user- +# settable options. (Setting USE_* in /etc/make.conf is always wrong). +# +# WITH_DEBUG - If set, debugging flags are added to CFLAGS and the +# binaries don't get stripped by INSTALL_PROGRAM. +# Besides, individual ports might add their specific +# to produce binaries for debugging purposes. +# You can override the debug flags that are passed to +# the compiler by setting DEBUG_FLAGS. It is set to +# "-g" at default. +# +# USE_BZIP2 - If set, this port tarballs use bzip2, not gzip, for +# compression. +# USE_ZIP - If set, this port distfile uses zip, not tar w/[bg]zip +# for compression. +# USE_MAKESELF - If set, this port distfile uses makeself, not tar w/[bg]zip +# for compression. +# USE_DOS2UNIX - If set to "YES", remove the ^M from all files +# under ${WRKSRC}. If set to a string, remove in all +# files under ${WRKSRC} with one of these names the ^Ms. +# DOS2UNIX_REGEX +# - Limit the ^M removal to files which name matches +# the regular expression. +# USE_GCC - If set, this port requires this version of gcc, either in +# the system or installed from a port. +# USE_GMAKE - If set, this port uses gmake. +# GMAKE - Set to path of GNU make if not in $PATH. +# Default: gmake +## +# USE_GETOPT_LONG +# - If set, this port uses getopt_long. May be obsolete. +## +# USE_ICONV - If set, this port uses libiconv. +# USE_GETTEXT - If set, this port uses GNU gettext (libintl). +## +# USE_PERL5 - If set, this port uses perl5 in one or more of the extract, +# patch, build, install or run phases. +# USE_PERL5_BUILD +# - If set, this port uses perl5 in one or more of the extract, +# patch, build or install phases. +# USE_PERL5_RUN - If set, this port uses perl5 for running. +# PERL5 - Set to full path of perl5, either in the system or +# installed from a port. +# PERL - Set to full path of perl5, either in the system or +# installed from a port, but without the version number. +# Use this if you need to replace "#!" lines in scripts. +# PERL_VERSION - Full version of perl5 (see below for current value). +# PERL_VER - Short version of perl5 (see below for current value). +# PERL_LEVEL - Perl version as an integer of the form MNNNPP, where +# M is major version, N is minor version, and P is +# the patch level. E.g., PERL_VERSION=5.6.1 would give +# a PERL_LEVEL of 500601. This can be used in comparisons +# to determine if the version of perl is high enough, +# whether a particular dependency is needed, etc. +# PERL_ARCH - Directory name of architecture dependent libraries +# (value: ${ARCH}-freebsd). +# PERL_PORT - Name of the perl port that is installed +# (value: perl5) +# SITE_PERL - Directory name where site specific perl packages go. +# This value is added to PLIST_SUB. +# PERL_MODBUILD - Use Module::Build to configure, build and install port. +## +# USE_GHOSTSCRIPT +# - If set, this port needs ghostscript to both +# build and run. +# USE_GHOSTSCRIPT_BUILD +# - If set, this port needs ghostscript to build. +# USE_GHOSTSCRIPT_RUN +# - If set, this port needs ghostscript to run. +# GHOSTSCRIPT_PORT +# - The port that provides postscript functionality. +# Some installations may wish to override the default +# to specify a version without X11 and/or localized +# versions for their nationality. +# Default: print/ghostscript-gpl +# WITH_GHOSTSCRIPT_GNU +# - If set, this port uses the GNU version of the ghostscript +# software instead of the GPL version, which is used otherwise. +## +# USE_BISON - Implies that the port uses bison in one way or another: +# 'yes' (backwards compatibility) - use bison for building +# new features: 'build', 'run', 'both', implying build, +# runtime, and both build/run dependencies +## +# USE_IMAKE - If set, this port uses imake. Implies USE_X_PREFIX. +# XMKMF - Set to path of `xmkmf' if not in $PATH +# Default: xmkmf -a +# USE_X_PREFIX - If set, this port installs in ${X11BASE}. Implies USE_XLIB. +# USE_XLIB - If set, this port uses the X libraries. In the USE_LINUX +# case the linux X libraries are referenced. +# +# USE_FREETYPE - If set, this port uses the freetype print libraries. +# USE_GL - A list of Mesa or GL related dependencies needed by the port. +# Supported components are: glut, glu, glw, gl and linux. +# If set to "yes", this is equivalent to "glu". Note that +# glut depends on glu, glw and glu depend on gl. +# USE_MOTIF - If set, this port uses a Motif toolkit. Implies USE_XPM. +# NO_OPENMOTIF - If set, this port uses a custom Motif toolkit +# instead of Openmotif. +# Used only when USE_MOTIF is set. +# WANT_LESSTIF - If set, this port uses Lesstif as Motif toolkit. +# Used only when USE_MOTIF is set. Implies +# NO_OPENMOTIF. +## +# USE_SDL - If set, this port uses the sdl libraries. +# See bsd.sdl.mk for more information. +# USE_XPM - If set, this port uses the xpm graphics libraries. +## +# USE_OPENSSL - If set, this port relies on the OpenSSL package. +## +# USE_OPENLDAP - If set, this port uses the OpenLDAP libraries. +# Implies: WANT_OPENLDAP_VER?=23 +# WANT_OPENLDAP_VER +# - Legal values are: 22, 23, 24 +# If set to an unkown value, the port is marked BROKEN. +# WANT_OPENLDAP_SASL +# - If set, the system should use OpenLDAP libraries +# with SASL support. +## +# USE_FAM - If set, this port uses the File Alteration Monitor. +# +# WANT_FAM_SYSTEM +# - Legal values are: gamin (default),fam +# If set to an unknown value, the port is marked IGNORE. +## +# USE_AUTOTOOLS - If set, this port uses various GNU autotools +# (libtool, autoconf, autoheader, automake et al.) +# See bsd.autotools.mk for more details. +## +# USE_SCONS - If set, this port uses the Python-based SCons build system +# See bsd.scons.mk for more details. +## +# USE_EFL - If set, this port use EFL libraries. +# Implies inclusion of bsd.efl.mk. (Also see +# that file for more information on USE_EFL_*). +# USE_JAVA - If set, this port relies on the Java language. +# Implies inclusion of bsd.java.mk. (Also see +# that file for more information on USE_JAVA_*). +# USE_OCAML - If set, this port relies on the OCaml language. +# Implies inclusion of bsd.ocaml.mk. (Also see +# that file for more information on USE_OCAML*). +# USE_PYTHON - If set, this port relies on the Python language. +# Implies inclusion of bsd.python.mk. (Also see +# that file for more information on USE_PYTHON_* +# and USE_PYDISTUTILS). +# USE_RUBY - If set, this port relies on the Ruby language. +# Implies inclusion of bsd.ruby.mk. (Also see +# that file for more information on USE_RUBY_*). +# USE_GNUSTEP - If set, this port relies on the GNUstep system. +# Implies the inclusion of bsd.gnustep.mk. +# (Also see that file for more information on +# USE_GNUSTEP_*). +## +# USE_GNOME - A list of the Gnome dependencies the port has (e.g., +# glib12, gtk12). Implies that the port needs Gnome. +# Implies inclusion of bsd.gnome.mk. See bsd.gnome.mk +# or http://www.FreeBSD.org/gnome/docs/porting.html +# for more details. +## +# USE_LUA - If set, this port uses the Lua library and related +# components. See bsd.lua.mk for more details. +## +# USE_WX - If set, this port uses the WxWidgets library and related +# components. See bsd.wx.mk for more details. +## +# USE_KDEBASE_VER - Set to 3 to use the KDE windowing system. +# Implies inclusion of bsd.kde.mk. +# +# USE_KDELIBS_VER - Set to 3 to use the KDE libraries. +# Implies inclusion of bsd.kde.mk. +# +# USE_QT_VER - Set to 3 or 4 to use the respective version +# of the QT libraries. +# Implies inclusion of bsd.kde.mk. +## +# USE_LINUX - Set to yes to say the port needs the default linux base port. +# Set to value , if the port needs emulators/linux_base-. +# If set to "7", a dependency is registered to emulators/linux_base. +# Implies appropriate settings for STRIP and STRIP_CMD. +# USE_LINUX_PREFIX +# - controls the action of PREFIX (see above). Only use this +# if the port is a linux infrastructure port (e.g. contains libs +# or a sound server which supports the FreeBSD native one), +# use the default or the X11 prefix if it's a leaf port +# (e.g. a game or program). +# Implies NO_MTREE=yes, and, if INSTALLS_SHLIB is defined: +# - USE_LINUX=yes +# - appropriate invocation of the Linux ldconfig +# USE_LINUX_RPM - Set to yes to pull in variables and targets useful to Linux +# RPM ports. +# Implies inclusion of bsd.linux-rpm.mk. +# +# AUTOMATIC_PLIST +# - Set to yes to enable automatic packing list generation. +# Currently has no effect unless USE_LINUX_RPM is set. +# +# OVERRIDE_LINUX_BASE_PORT +# - This specifies the default linux base to use, for valid +# values have a look at the description of USE_LINUX. This is +# an user-only variable. Don't use it in any port, it's meant +# to be used in make.conf. +# +# LINUX_BASE_PORT +# - This is a read-only variable, it gets set to a value which is +# usable in *_DEPENDS (e.g. BUILD_DEPENDS=${LINUX_BASE_PORT}). +# It honors USE_LINUX=foo and OVERRIDE_LINUX_BASE_PORT. +## +# USE_XORG - Set to a list of X.org module dependencies. +# Implies inclusion of bsd.xorg.mk. +## +# USE_RC_SUBR - If set, the ports startup/shutdown script uses the common +# routines found in etc/rc.subr and may need to +# depend on the sysutils/rc_subr port. +# If this is set to a list of files, these files will be +# automatically added to ${SUB_FILES}, some %%VAR%%'s will +# automatically be expanded, they will be installed in +# ${PREFIX}/etc/rc.d and added to the packing list. +# USE_RCORDER - List of rc.d startup scripts to be called early in the boot +# process. This acts exactly like USE_RC_SUBR except that +# scripts are installed in /etc/rc.d. +# RC_SUBR - Set to path of rc.subr. +# Default: ${LOCALBASE}/etc/rc.subr. +# RC_SUBR_SUFFIX +# - Contains the suffix of installed rc.subr scripts. +## +# USE_APACHE - If set, this port relies on an apache webserver. +# +# USE_CDRTOOLS - If set, this port depends on sysutils/cdrtools, unless +# cdrtools-cjk is present or USE_CDRTOOLS=cjk is set, then +# it depends on sysutils/cdrtools-cjk. +# +# Conflict checking. Use if your port cannot be installed at the same time as +# another package. +# +# CONFLICTS - A list of package name patterns that the port conflicts +# with, separated by blanks. The names may include shell +# pattern meta-characters "*", "?", "[", "]", and "!". +# Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_* +# +# Various directory definitions and variables to control them. +# You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR. +# +# X11BASE - Where X11 ports install things. +# Default: ${LOCALBASE} +# LOCALBASE - Where non-X11 ports install things. +# Default: /usr/local +# LINUXBASE - Where Linux ports install things. +# Default: /compat/linux +# PREFIX - Where *this* port installs its files. +# Default: ${X11BASE} if USE_X_PREFIX is set, +# ${LINUXBASE} if USE_LINUX_PREFIX is set, +# otherwise ${LOCALBASE} +# +# IGNORE_PATH_CHECKS +# - There are some sanity checks against PREFIX. +# You can disable these checks with defining +# this variable, but this is not recommended! +# Only do this if you really know what you are +# doing. These sanity checks are the following: +# - PREFIX has to be an absolute path. +# - PREFIX can't have a trailing slash. +# +# MASTERDIR - Where the port finds patches, package files, etc. Define +# this is you have two or more ports that share most of the +# files. +# Default: ${.CURDIR} +# PORTSDIR - The root of the ports tree. +# Default: /usr/ports +# DISTDIR - Where to search for and store copies of original sources +# Default: ${PORTSDIR}/distfiles +# PACKAGES - A top level directory where all packages go (rather than +# going locally to each port). +# Default: ${PORTSDIR}/packages +# WRKDIRPREFIX - The place to root the temporary working directory +# hierarchy. +# Default: none +# WRKDIR - A temporary working directory that gets *clobbered* on clean +# Default: ${WRKDIRPREFIX}${.CURDIR}/work +# WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually +# unpacks to. +# Default: ${WRKDIR}/${DISTNAME} unless NO_WRKSUBDIR is set, +# in which case simply ${WRKDIR} +# NO_WRKSUBDIR - Assume port unpacks directly into ${WRKDIR}. +# PATCHDIR - A directory containing any additional patches you made +# to port this software to FreeBSD. +# Default: ${MASTERDIR}/files +# SCRIPTDIR - A directory containing any auxiliary scripts +# Default: ${MASTERDIR}/scripts +# FILESDIR - A directory containing any miscellaneous additional files. +# Default: ${MASTERDIR}/files +# PKGDIR - A directory containing any package creation files. +# Default: ${MASTERDIR} +# +# Variables that serve as convenient "aliases" for your *-install targets. +# Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin". +# +# INSTALL_PROGRAM +# - A command to install binary executables. (By +# default, also strips them, unless ${STRIP} is +# overridden to be the empty string). +# INSTALL_KLD - As INSTALL_KLD, but without the STRIP. +# INSTALL_SCRIPT +# - A command to install executable scripts. +# INSTALL_DATA - A command to install sharable data. +# INSTALL_MAN - A command to install manpages. May or not compress, +# depending on the value of MANCOMPRESSED (see below). +# +# Boolean to control whether manpages are installed. +# +# NO_INSTALL_MANPAGES +# - If set, this port doesn't want to install any manpages. +# Default: not set, i.e. manpages are installed by default. +# +# Set the following to specify all manpages that your port installs. +# These manpages will be automatically listed in ${PLIST}. Depending +# on the setting of NOMANCOMPRESS, the make rules will compress the +# manpages for you. +# +# MAN - A list of manpages, categorized by section. For +# example, if your port has "man/man1/foo.1" and +# "man/mann/bar.n", set "MAN1=foo.1" and "MANN=bar.n". +# The available sections chars are "123456789LN". +# MAN_ +# - If your port does not install all man pages for all +# languages in MANLANG, language specific pages for +# a language can be specified with this. For example, +# if the port installs foo.1 in English, Japanese, and +# German, bar.1 in English only, and baz.3 in German +# only, set +# MANLANG= "" de ja +# MAN1= foo.1 +# MAN1_EN= bar.1 +# MAN3_DE= baz.3 +# MLINKS - A list of tuples for creating links +# for manpages. For example, "MLINKS= a.1 b.1 c.3 d.3" +# will do an "ln -sf a.1 b.1" and "ln -sf c.3 d.3" in +# appropriate directories. (Use this even if the port +# installs its own manpage links so they will show up +# correctly in ${PLIST}.) +# MANPREFIX - The directory prefix for ${MAN} and ${MLINKS}. +# Default: ${PREFIX} +# MANPREFIX +# - If manual pages of some sections install in different +# locations than others, use these. +# Default: ${MANPREFIX} +# MANCOMPRESSED - This variable can take values "yes", "no" or +# "maybe". "yes" means manpages are installed +# compressed; "no" means they are not; "maybe" means +# it changes depending on the value of NOMANCOMPRESS. +# Default: "yes" if USE_IMAKE is set and NO_INSTALL_MANPAGES +# is not set, and "no" otherwise. +# +# Set the following to specify all .info files your port installs. +# +# INFO - A list of .info files (omitting the trailing ".info"); +# only one entry per document! These files are listed in +# the path relative to ${INFO_PATH}. +# INFO_PATH - Path, where all .info files will be installed by your +# port, relative to ${PREFIX} +# Default: "share/info" if ${PREFIX} is equal to /usr +# and "info" otherwise. +# +# Set the following to specify all documentation your port installs into +# ${DOCSDIR} +# +# PORTDOCS - A list of files and directories relative to DOCSDIR. +# Shell glob patterns can be used, directories include +# the entire subtree of contained files and directories. +# Should not be set when no documentation files are +# installed (for example because NOPORTDOCS is defined). +# Useful for dynamically generated documentation. +# +# Set the following to specify all documentation your port installs into +# ${EXAMPLESDIR} +# +# PORTEXAMPLES - A list of files and directories relative to EXAMPLESDIR. +# Shell glob patterns can be used, directories include +# the entire subtree of contained files and directories. +# Should not be set when no examples files are +# installed (for example because NOPORTEXAMPLES is defined). +# Useful for dynamically generated examples. +# +# Set the following to specify all documentation your port installs into +# ${DATADIR} +# +# PORTDATA - A list of files and directories relative to DATADIR. +# Shell glob patterns can be used, directories include +# the entire subtree of contained files and directories. +# Should not be set when no data files are +# installed (for example because NOPORTDATA is defined). +# Useful for dynamically generated data files. +# +# Default targets and their behaviors: +# +# fetch - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this +# port. +# fetch-list - Show list of commands to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port. +# fetch-recursive +# - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this +# port and dependencies. +# fetch-recursive-list +# - Show list of commands to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port and dependencies. +# fetch-required +# - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this +# port and dependencies. +# fetch-required-list +# - Show list of commands to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port and dependencies. +# fetch-url-list +# - Show list of URLS to retrieve missing ${DISTFILES} and +# ${PATCHFILES} for this port. +# fetch-urlall-list +# - Show list of URLS to retrieve ${DISTFILES} and +# ${PATCHFILES} for this port. +# +# all-depends-list +# - Show all directories which are dependencies +# for this port. +# build-depends-list +# - Show all directories which are build-dependencies +# for this port. +# package-depends-list +# - Show all directories which are package-dependencies +# for this port. This is based upon the dependency +# tree as recorded in the Makefiles of the ports +# collection, not as recorded in the currently +# installed ports. +# actual-package-depends +# - Like package-depends-list but with the difference +# that the dependencies of the currently installed +# ports are used instead of the dependencies as +# recorded in the ports collection. +# run-depends-list +# - Show all directories which are run-dependencies +# for this port. +# +# extract - Unpacks ${DISTFILES} into ${WRKDIR}. +# patch - Apply any provided patches to the source. +# configure - Runs either GNU configure, one or more local configure +# scripts or nothing, depending on what's available. +# build - Actually compile the sources. +# install - Install the results of a build. +# reinstall - Install the results of a build, ignoring "already installed" +# flag. +# deinstall - Remove the installation. +# deinstall-all - Remove all installations with the same PKGORIGIN. +# package - Create a package from an _installed_ port. +# package-recursive +# - Create a package for a port and _all_ of its dependancies. +# describe - Try to generate a one-line description for each port for +# use in INDEX files and the like. +# checkpatch - Do a "patch -C" instead of a "patch". Note that it may +# give incorrect results if multiple patches deal with +# the same file. +# checksum - Use distinfo to ensure that your distfiles are valid. +# checksum-recursive +# - Run checksum in this port and all dependencies. +# makesum - Generate distinfo (only do this for your own ports!). +# clean - Remove ${WRKDIR} and other temporary files used for building. +# clean-depends - Do a "make clean" for all dependencies. +# config - Configure options for this port (using ${DIALOG}). +# Automatically run prior to extract, patch, configure, build, +# install, and package. +# config-recursive +# - Configure options for this port for this port and all dependencies. +# showconfig - Display options config for this port. +# rmconfig - Remove the options config for this port. +# rmconfig-recursive +# - Remove the options config for this port and all dependencies. +# +# Default sequence for "all" is: +# +# check-sanity fetch checksum extract patch configure build +# +# Please read the comments in the targets section below; you +# should be able to use the pre-* or post-* targets/scripts +# (which are available for every stage except checksum) or +# override the do-* targets to do pretty much anything you want. +# +# NEVER override the "regular" targets unless you want to open +# a major can of worms. +# +# Set these variables if your port doesn't need some of the steps. +# Note that there are no NO_PATCH or NO_CONFIGURE variables because +# those steps are empty by default. NO_EXTRACT is not allowed anymore +# since we need to at least create ${WRKDIR}. Also, NO_CHECKSUM is a user +# variable and is not to be set in a port's Makefile. See above for NO_PACKAGE. +# +# NO_BUILD - Use a dummy (do-nothing) build target. +# NO_INSTALL - Use a dummy (do-nothing) install target. +# +# Here are some variables used in various stages. +# +# For options: +# OPTIONS - List of what WITH_