diff --git a/Mk/Uses/apache.mk b/Mk/Uses/apache.mk index 92b7c5c76026..244001c4d5ed 100644 --- a/Mk/Uses/apache.mk +++ b/Mk/Uses/apache.mk @@ -1,435 +1,435 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # apache.mk - Apache related macros. # Author: Clement Laforet # Author: Olli Hauer # Author: Bernard Spil # # Please view me with 4 column tabs! # Feature: apache # Usage: USES=apache or USES=apache:args # Valid args: , build, run, server # # version If your port requires a specific Apache httpd version, you can # set this to [min]-[max] or min+ or -max or an explicit version # # USES=apache:2.2 # Only use Apache 2.2 # USES=apache:2.4+ # Use Apache 2.4 or newer # USES=apache:2.2-2.4 # Use Apache 2.2 or 2.4 # USES=apache:-2.4 # Use Apache 2.4 or earlier # USES=apache # Use the default apache version # # Valid version numbers are specified in the variable # APACHE_SUPPORTED_VERSIONS below # # build Indicates that Apache is needed at build time and adds it to # BUILD_DEPENDS. # run Indicates that Apache is needed at run time and adds it to # RUN_DEPENDS. # server Indicates that the port is a server port. # # If build and run are omitted, Apache will be added as BUILD_DEPENDS and # RUN_DEPENDS # # Variables, which can be set by the port: # # AP_FAST_BUILD automatic module build # # AP_GENPLIST automatic PLIST generation plus add # the module disabled into httpd.conf # (only if no pkg-plist exist) # # MODULENAME Name of the Apache module # default: ${PORTNAME} # SHORTMODNAME Short name of the Apache module # default: ${MODULENAME:S/mod_//} # SRC_FILE Source file of the APACHE MODULE # default: ${MODULENAME}.c # # Variables, for internal use by the Apache ports framework only # The following values for USE_APACHE are reserved and only valid # in apache-server ports! # USES= apache:server,2.2 # # # The following variables can be read by ports and must not be modified -# +# # APACHE_VERSION The major-minor release version of the chosen # Apache server, e.g. 2.2 or 2.4 # # APACHEETCDIR Location of the Apache configuration directory # Default: ${LOCALBASE}/etc/apache24 # # APACHEINCLUDEDIR Location of the Apache include files # Default: ${LOCALBASE}/include/apache24 # # APACHEMODDIR Location of the Apache modules # Default: ${LOCALBASE}/libxexec/apache24 # # APACHE_DEFAULT Default Apache version # .if !defined(_INCLUDE_USES_APACHE_PRE_MK) _INCLUDE_USES_APACHE_PRE_MK= yes _USES_POST+= apache # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. _APACHE_SUPPORTED_VERSIONS= 2.4 2.2 2.5 # preferred version first # Print warnings _ERROR_MSG= : Error from apache.mk. # Important Note: # The "+" sign is only valid as last sign, not between # two versions or in combination with range! .if defined(apache_ARGS) && !empty(apache_ARGS) # Preserve original arguments list _APACHE_ARGS= ${apache_ARGS} . if ${_APACHE_ARGS:Mserver} || ${_APACHE_ARGS:Mcommon} _APACHE_PORT_IS_SERVER= yes _APACHE_ARGS:= ${_APACHE_ARGS:Nserver} . endif . if ${_APACHE_ARGS:Mbuild} _APACHE_BUILD_DEP= yes _APACHE_ARGS:= ${_APACHE_ARGS:Nbuild} . endif . if ${_APACHE_ARGS:Mrun} _APACHE_RUN_DEP= yes _APACHE_ARGS:= ${_APACHE_ARGS:Nrun} . endif . if empty(_APACHE_ARGS) _APACHE_ARGS= ${APACHE_DEFAULT} . endif # _APACHE_ARGS must now contain a version(-range) -. if !empty(_APACHE_ARGS:C/^2\.[0-9]//:S/^-//:C/^2\.[0-9]//:C/\+$//) +. if !empty(_APACHE_ARGS:C/^2\.[0-9]//:S/^-//:C/^2\.[0-9]//:C/\+$//) IGNORE= ${_ERROR_MSG} Illegal use of USES= ${USES:Mapache*} # Catch USES= apache:[min]-[max]+ . elif ${apache_ARGS:C/[.a-z0-9]//g} == "-+" IGNORE= ${_ERROR_MSG} Illegal use of USES= ${USES:Mapache*} . endif .endif # defined(apache_ARGS) # The port does not specify a build, run or server dependency, assume both # build and run are required. .if !defined(_APACHE_BUILD_DEP) && !defined(_APACHE_RUN_DEP) && \ !defined(_APACHE_PORT_IS_SERVER) _APACHE_BUILD_DEP= yes _APACHE_RUN_DEP= yes .endif .if defined(DEFAULT_APACHE_VER) IGNORE+= "DEFAULT_APACHE_VER is defined, consider using DEFAULT_VERSIONS+=apache=${DEFAULT_APACHE_VER} instead" .endif .if defined(WITH_MODULES) || defined(WITHOUT_MODULES) IGNORE= ${_ERROR_MSG} WITH(OUT)_MODULES has been removed, use www_${PORTNAME}_(UN)SET .endif # =============================================================== .if defined(_APACHE_PORT_IS_SERVER) # Module selection .for category in ${DEFAULT_MODULES_CATEGORIES} DEFAULT_MODULES+= ${${category}_MODULES} .endfor .for category in ${ALL_MODULES_CATEGORIES} AVAILABLE_MODULES+= ${${category}_MODULES} .endfor # OPTIONS handling .for module in ${AVAILABLE_MODULES} . if ${PORT_OPTIONS:M${module}} _APACHE_ENABLED_MODS+= ${module} . else _APACHE_DISABLED_MODS+= ${module} . endif .endfor .if !defined(WITH_STATIC_APACHE) CONFIGURE_ARGS+= --enable-so .else CONFIGURE_ARGS+= --disable-so WITH_ALL_STATIC_MODULES= yes .endif .if ${PORT_OPTIONS:MSUEXEC} _APACHE_ENABLED_MODS+= ${SUEXEC_MODULES} SUEXEC_CONFARGS= with-suexec # SUEXEC_DOCROOT should exist SUEXEC_DOCROOT?= ${PREFIX}/www/data #SUEXEC_DOCROOT?= ${WWWDIR} SUEXEC_USERDIR?= public_html # avoid duplicate search paths .if ${LOCALBASE} == ${PREFIX} SUEXEC_SAFEPATH?= ${LOCALBASE}/bin:/usr/bin:/bin .else SUEXEC_SAFEPATH?= ${PREFIX}/bin:${LOCALBASE}/bin:/usr/bin:/bin .endif SUEXEC_LOGFILE?= /var/log/httpd-suexec.log SUEXEC_UIDMIN?= 1000 SUEXEC_GIDMIN?= 1000 SUEXEC_CALLER?= ${WWWOWN} CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-caller=${SUEXEC_CALLER} \ --${SUEXEC_CONFARGS}-uidmin=${SUEXEC_UIDMIN} \ --${SUEXEC_CONFARGS}-gidmin=${SUEXEC_GIDMIN} \ --${SUEXEC_CONFARGS}-userdir="${SUEXEC_USERDIR}" \ --${SUEXEC_CONFARGS}-docroot="${SUEXEC_DOCROOT}" \ --${SUEXEC_CONFARGS}-safepath="${SUEXEC_SAFEPATH}" \ --${SUEXEC_CONFARGS}-bin="${PREFIX}/sbin/suexec" . if defined(WITH_SUEXEC_UMASK) CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-umask=${SUEXEC_UMASK} . endif . if !${PORT_OPTIONS:MSUEXEC_SYSLOG} CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-logfile="${SUEXEC_LOGFILE}" . endif .endif .if !defined(_APACHE_DISABLED_MODS) APACHE_MODULES= ${_APACHE_ENABLED_MODS} .else .for module in ${_APACHE_ENABLED_MODS:O:u} . if !${_APACHE_DISABLED_MODS:M${module}} APACHE_MODULES+= ${module} . endif .endfor .endif .if defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES) WITH_STATIC_MODULES= ${APACHE_MODULES} .endif .for module in ${AVAILABLE_MODULES} . if !empty(WITH_STATIC_MODULES:M${module}) CONFIGURE_ARGS+= --enable-${module:tl}=static PLIST_SUB+= MOD_${module}="@comment " . elif !empty(APACHE_MODULES:M${module}) CONFIGURE_ARGS+= --enable-${module:tl}=shared PLIST_SUB+= MOD_${module}="" . else CONFIGURE_ARGS+= --disable-${module:tl} PLIST_SUB+= MOD_${module}="@comment " . endif .endfor # pkg-plist workaround STATIC support .if ${PORT_OPTIONS:MSUEXEC} PLIST_SUB+= SUEXEC="" .else PLIST_SUB+= SUEXEC="@comment " .endif .if ${PORT_OPTIONS:MLOG_FORENSIC} PLIST_SUB+= FORENSIC="" .else PLIST_SUB+= FORENSIC="@comment " .endif #### End of _APACHE_PORT_IS_SERVER #### # =============================================================== .else HTTPD?= ${LOCALBASE}/sbin/httpd MODULENAME?= ${PORTNAME} SHORTMODNAME?= ${MODULENAME:S/mod_//} SRC_FILE?= ${MODULENAME}.c .if exists(${HTTPD}) _APACHE_VERSION!= ${HTTPD} -v | ${SED} -ne 's/^Server version: Apache\/\([1-9]\.[0-9]*\).*/\1/p' .endif # Validate Apache version whether it meets the version restriction. _APACHE_VERSION_CHECK:= ${_APACHE_ARGS:C/^([1-9]\.[0-9])$/\1-\1/} _APACHE_VERSION_MIN_TMP:= ${_APACHE_VERSION_CHECK:C/([1-9]\.[0-9])[-+].*/\1/} _APACHE_VERSION_MIN:= ${_APACHE_VERSION_MIN_TMP:M[1-9].[0-9]} _APACHE_VERSION_MAX_TMP:= ${_APACHE_VERSION_CHECK:C/.*-([1-9]\.[0-9])/\1/} _APACHE_VERSION_MAX:= ${_APACHE_VERSION_MAX_TMP:M[1-9].[0-9]} # Remove from _WANTED_VERSIONS that which is not wanted _APACHE_WANTED_VERSIONS= ${_APACHE_SUPPORTED_VERSIONS} .for _ver in ${_APACHE_SUPPORTED_VERSIONS:O} . if !empty(_APACHE_VERSION_MIN) && ${_ver} < ${_APACHE_VERSION_MIN} _APACHE_WANTED_VERSIONS:= ${_APACHE_WANTED_VERSIONS:N${_ver}} . endif . if !empty(_APACHE_VERSION_MAX) && ${_ver} > ${_APACHE_VERSION_MAX} _APACHE_WANTED_VERSIONS:= ${_APACHE_WANTED_VERSIONS:N${_ver}} . endif .endfor # Check if installed Apache version matches a wanted version .if defined(_APACHE_VERSION) && $(_APACHE_WANTED_VERSIONS:M${_APACHE_VERSION}) _APACHE_WANTED_VERSION= ${_APACHE_VERSION} .endif # Select Apache version if not already set .for _ver in ${APACHE_DEFAULT} ${_APACHE_SUPPORTED_VERSIONS} . if !defined(_APACHE_WANTED_VERSION) && ${_APACHE_WANTED_VERSIONS:M${_ver}} _APACHE_WANTED_VERSION= ${_ver} . endif .endfor APACHE_VERSION:= ${_APACHE_WANTED_VERSION} .if defined(_APACHE_VERSION) && ${_APACHE_VERSION} != ${APACHE_VERSION} BROKEN= ${_ERROR_MSG} Apache ${_APACHE_VERSION} is installed and port requires ${_APACHE_WANTED_VERSION} .endif .if ${APACHE_VERSION} >= 2.5 APXS?= ${LOCALBASE}/bin/apxs .else APXS?= ${LOCALBASE}/sbin/apxs .endif .if exists(${APXS}) APXS_PREFIX!= ${APXS} -q prefix 2> /dev/null || echo NULL . if ${APXS_PREFIX} == NULL IGNORE= : Your apache does not support DSO modules . endif . if defined(AP_GENPLIST) && ${APXS_PREFIX} != ${PREFIX} IGNORE?= PREFIX must be equal to APXS_PREFIX. . endif .endif APACHEMODDIR= libexec/apache${APACHE_VERSION:S/.//} APACHEINCLUDEDIR= include/apache${APACHE_VERSION:S/.//} APACHEETCDIR= etc/apache${APACHE_VERSION:S/.//} .if ${APACHE_VERSION} == 2.5 _APACHE_PORT?= www/apache${APACHE_VERSION:S/.//}-devel .else _APACHE_PORT?= www/apache${APACHE_VERSION:S/.//} .endif PLIST_SUB+= APACHEMODDIR="${APACHEMODDIR}" \ APACHEINCLUDEDIR="${APACHEINCLUDEDIR}" \ APACHEETCDIR="${APACHEETCDIR}" \ APACHE_VERSION="${APACHE_VERSION}" SUB_LIST+= APACHEMODDIR="${APACHEMODDIR}" \ APACHEETCDIR="${APACHEETCDIR}" \ APACHE_VERSION="${APACHE_VERSION}" APACHE_PKGNAMEPREFIX= ap${APACHE_VERSION:S/.//}- .if defined(AP_FAST_BUILD) PKGNAMEPREFIX?= ${APACHE_PKGNAMEPREFIX} .endif .if defined(_APACHE_BUILD_DEP) BUILD_DEPENDS+= ${APXS}:${_APACHE_PORT} .endif .if defined(_APACHE_RUN_DEP) RUN_DEPENDS+= ${APXS}:${_APACHE_PORT} .endif PLIST_SUB+= AP_NAME="${SHORTMODNAME}" PLIST_SUB+= AP_MODULE="${MODULENAME}.so" .if defined(AP_GENPLIST) PLIST?= ${WRKDIR}/ap-plist .endif .if defined(AP_INC) AP_EXTRAS+= -I ${AP_INC} .endif .if defined(AP_LIB) AP_EXTRAS+= -L ${AP_LIB} .endif .endif # End of _APACHE_PORT_IS_SERVER / _APACHE_PORT_IS_MOULE .endif # End of !_INCLUDE_USES_APACHE_PRE_MK # =============================================================== .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_APACHE_POST_MK) _INCLUDE_USES_APACHE_POST_MK= apache.mk .if defined(NO_BUILD) && !defined(_APACHE_RUN_DEP) BROKEN= If NO_BUILD is used, then apache:run is sufficient. Please fix your Makefile .endif .if defined(_APACHE_PORT_IS_SERVER) .if !target(print-closest-mirrors) print-closest-mirrors: @${ECHO_MSG} -n "Fetching list of nearest mirror: " >&2 @MIRRORS=`${FETCH_CMD} -T 30 -qo - http://www.apache.org/dyn/closer.cgi/httpd/ 2> /dev/null\ | ${GREP} /httpd/ | ${SED} 's/.*href="\(.*\)">&2; if [ "x$$MIRRORS" != "x" ]; then \ ${ECHO_MSG} -n "MASTER_SITE_APACHE_HTTPD?= ";\ ${ECHO_MSG} $$MIRRORS; else \ ${ECHO_MSG} "No mirrors found!">&2 ; fi .endif .if !target(show-modules) show-modules: .if !empty(APACHE_MODULES) .for module in ${AVAILABLE_MODULES} @${PRINTF} "%-20s : " ${module} . if ${APACHE_MODULES:M${module}} - @${ECHO} -n "enabled " + @${ECHO_CMD} -n "enabled " . if !empty(WITH_STATIC_MODULES) && ${WITH_STATIC_MODULES:M${module}} @${ECHO_CMD} " (static)" . else @${ECHO_CMD} "(shared)" . endif . else @${ECHO_CMD} disabled . endif .endfor .else .for module in ${AVAILABLE_MODULES} @${PRINTF} "%-20s : disabled\n" ${module} .endfor .endif .endif .else .if defined(AP_MODENABLE) AP_MOD_EN= -a .else AP_MOD_EN= -A .endif PLIST_SUB+= AP_MOD_EN="${AP_MOD_EN}" .if defined(AP_FAST_BUILD) .if !target(ap-gen-plist) _USES_build+= 490:ap-gen-plist ap-gen-plist: .if defined(AP_GENPLIST) . if !exists(${PLIST}) - @${ECHO} "===> Generating apache plist" - @${ECHO} "%%APACHEMODDIR%%/%%AP_MODULE%%" >> ${PLIST} - @${ECHO} "@postexec %D/sbin/apxs -e ${AP_MOD_EN} -n %%AP_NAME%% %D/%F" >> ${PLIST} - @${ECHO} "@postunexec ${SED} -i '' -E '/LoadModule[[:blank:]]+%%AP_NAME%%_module/d' %D/%%APACHEETCDIR%%/httpd.conf" >> ${PLIST} - @${ECHO} "@postunexec echo \"Don't forget to remove all ${MODULENAME}-related directives in your httpd.conf\"">> ${PLIST} + @${ECHO_MSG} "===> Generating apache plist" + @${ECHO_CMD} "%%APACHEMODDIR%%/%%AP_MODULE%%" >> ${PLIST} + @${ECHO_CMD} "@postexec %D/sbin/apxs -e ${AP_MOD_EN} -n %%AP_NAME%% %D/%F" >> ${PLIST} + @${ECHO_CMD} "@postunexec ${SED} -i '' -E '/LoadModule[[:blank:]]+%%AP_NAME%%_module/d' %D/%%APACHEETCDIR%%/httpd.conf" >> ${PLIST} + @${ECHO_CMD} "@postunexec echo \"Don't forget to remove all ${MODULENAME}-related directives in your httpd.conf\"" >> ${PLIST} . endif .endif .endif .if !target(do-build) do-build: (cd ${WRKSRC} && ${APXS} -c ${AP_EXTRAS} -o ${MODULENAME}.la ${SRC_FILE}) .endif .if !target(do-install) do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} ${APXS} -S LIBEXECDIR=${STAGEDIR}${PREFIX}/${APACHEMODDIR} -i -n ${SHORTMODNAME} ${WRKSRC}/${MODULENAME}.la . if !defined(DEBUG) @${ECHO_MSG} "===> strip ${APACHEMODDIR}/${MODULENAME}.so" @[ -e ${STAGEDIR}${PREFIX}/${APACHEMODDIR}/${MODULENAME}.so ] && ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${APACHEMODDIR}/${MODULENAME}.so . else @${ECHO_MSG} "===> DEBUG is set, will not strip ${APACHEMODDIR}/${MODULENAME}.so" . endif .endif .endif # defined(AP_FAST_BUILD) .endif # defined(_APACHE_PORT_IS_SERVER / _APACHE_PORT_IS_MODULE) .endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_APACHE_PRE_MK) diff --git a/Mk/Uses/gem.mk b/Mk/Uses/gem.mk index dd21a18d5632..b92a2dc21b96 100644 --- a/Mk/Uses/gem.mk +++ b/Mk/Uses/gem.mk @@ -1,134 +1,134 @@ # Support rubygem packages # # Feature: gem # Usage: USES=gem[:noautoplist] # Valid args: noautoplist Don't generate the plist automatically # # MAINTAINER: portmgr@FreeBSD.org .if !defined(_INCLUDE_USES_GEM_MK) _INCLUDE_USES_GEM_MK= yes _valid_ARGS= noautoplist # Sanity check .for arg in ${gem_ARGS} . if empty(_valid_ARGS:M${arg}) IGNORE= Incorrect 'USES+= gem:${gem_ARGS}' usage: argument [${arg}] is not recognized . endif .endfor BUILD_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems RUN_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems PKGNAMEPREFIX?= rubygem- EXTRACT_SUFX= .gem EXTRACT_ONLY= DIST_SUBDIR= rubygem EXTRACT_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems GEMS_BASE_DIR= lib/ruby/gems/${RUBY_VER} GEMS_DIR= ${GEMS_BASE_DIR}/gems DOC_DIR= ${GEMS_BASE_DIR}/doc CACHE_DIR= ${GEMS_BASE_DIR}/cache SPEC_DIR= ${GEMS_BASE_DIR}/specifications EXT_DIR= ${GEMS_BASE_DIR}/extensions GEM_NAME?= ${DISTNAME} GEM_LIB_DIR?= ${GEMS_DIR}/${GEM_NAME} GEM_DOC_DIR?= ${DOC_DIR}/${GEM_NAME} GEM_SPEC?= ${SPEC_DIR}/${GEM_NAME}.gemspec GEM_CACHE?= ${CACHE_DIR}/${GEM_NAME}.gem GEMSPEC= ${PORTNAME}.gemspec GEM_ENV+= RB_USER_INSTALL=yes USE_LOCALE?= en_US.UTF-8 GEM_ENV+= LANG=${USE_LOCALE} LC_ALL=${USE_LOCALE} PLIST_SUB+= PORTVERSION="${PORTVERSION}" \ REV="${RUBY_GEM}" \ GEMS_BASE_DIR="lib/ruby/gems/${RUBY_VER}" \ GEMS_DIR="${GEMS_DIR}" \ DOC_DIR="${DOC_DIR}" \ CACHE_DIR="${CACHE_DIR}" \ SPEC_DIR="${SPEC_DIR}" \ EXT_DIR="${EXT_DIR}" \ PORT="${PORTNAME}-${PORTVERSION}" \ GEM_NAME="${GEM_NAME}" \ GEM_LIB_DIR="${GEM_LIB_DIR}" \ GEM_DOC_DIR="${GEM_DOC_DIR}" \ GEM_SPEC="${GEM_SPEC}" \ GEM_CACHE="${GEM_CACHE}" \ EXTRACT_SUFX="${EXTRACT_SUFX}" RUBYGEMBIN= ${LOCALBASE}/bin/gem${RUBY_VER:S/.//} . if defined(DISTFILES) GEMFILES= ${DISTFILES:C/:[^:]+$//} . else GEMFILES= ${DISTNAME}${EXTRACT_SUFX} . endif RUBYGEM_ARGS=-l --no-update-sources --install-dir ${STAGEDIR}${PREFIX}/lib/ruby/gems/${RUBY_VER} --ignore-dependencies --bindir=${STAGEDIR}${PREFIX}/bin .if ${PORT_OPTIONS:MDOCS} RUBYGEM_ARGS+= --document rdoc,ri .else RUBYGEM_ARGS+= --no-document .endif .if !target(do-extract) do-extract: @${SETENV} ${GEM_ENV} ${RUBYGEMBIN} unpack --target=${WRKDIR} ${DISTDIR}/${DIST_SUBDIR}/${GEMFILES} @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${GEM_ENV} ${RUBYGEMBIN} spec --ruby ${DISTDIR}/${DIST_SUBDIR}/${GEMFILES} > ${GEMSPEC} ; then \ if [ -n "${BUILD_FAIL_MESSAGE}" ] ; then \ ${ECHO_MSG} "===> Extraction failed unexpectedly."; \ (${ECHO_CMD} "${BUILD_FAIL_MESSAGE}") | ${FMT_80} ; \ fi; \ ${FALSE}; \ fi) .endif .if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${GEM_ENV} ${RUBYGEMBIN} build --force ${GEMSPEC} ; then \ if [ -n "${BUILD_FAIL_MESSAGE}" ] ; then \ ${ECHO_MSG} "===> Compilation failed unexpectedly."; \ (${ECHO_CMD} "${BUILD_FAIL_MESSAGE}") | ${FMT_80} ; \ fi; \ ${FALSE}; \ fi) .endif .if !target(do-install) do-install: (cd ${BUILD_WRKSRC}; ${SETENV} ${GEM_ENV} ${RUBYGEMBIN} install ${RUBYGEM_ARGS} ${GEMFILES} -- ${CONFIGURE_ARGS}) ${RM} -r ${STAGEDIR}${PREFIX}/${GEMS_BASE_DIR}/build_info/ ${FIND} ${STAGEDIR}${PREFIX}/${GEMS_BASE_DIR} -type f -name '*.so' -exec ${STRIP_CMD} {} + ${FIND} ${STAGEDIR}${PREFIX}/${GEMS_BASE_DIR} -type f \( -name mkmf.log -or -name gem_make.out \) -delete ${FIND} ${STAGEDIR}${PREFIX}/${GEM_LIB_DIR}/ext -type f -not -name '*.so' -delete 2> /dev/null || ${TRUE} ${FIND} ${STAGEDIR}${PREFIX}/${GEM_LIB_DIR}/ext -type d -empty -delete 2> /dev/null || ${TRUE} ${RM} -r ${STAGEDIR}${PREFIX}/${CACHE_DIR} 2> /dev/null || ${TRUE} ${RMDIR} ${STAGEDIR}${PREFIX}/${EXT_DIR} 2> /dev/null || ${TRUE} .if !${PORT_OPTIONS:MDOCS} -@${RMDIR} ${STAGEDIR}${PREFIX}/${DOC_DIR} .endif .endif .if empty(gem_ARGS:Mnoautoplist) _USES_install+= 820:gem-autoplist gem-autoplist: - @${ECHO} ${GEM_SPEC} >> ${TMPPLIST} + @${ECHO_CMD} ${GEM_SPEC} >> ${TMPPLIST} .if ${PORT_OPTIONS:MDOCS} @${FIND} -ds ${STAGEDIR}${PREFIX}/${DOC_DIR} -type f -print | ${SED} -E -e \ 's,^${STAGEDIR}${PREFIX}/?,,' >> ${TMPPLIST} .endif @${FIND} -ds ${STAGEDIR}${PREFIX}/${GEM_LIB_DIR} -type f -print | ${SED} -E -e \ 's,^${STAGEDIR}${PREFIX}/?,,' >> ${TMPPLIST} @if [ -d ${STAGEDIR}${PREFIX}/${EXT_DIR} ]; then \ ${FIND} -ds ${STAGEDIR}${PREFIX}/${EXT_DIR} -type f -print | ${SED} -E -e \ 's,^${STAGEDIR}${PREFIX}/?,,' >> ${TMPPLIST} ; \ fi .endif .endif diff --git a/Mk/Uses/mono.mk b/Mk/Uses/mono.mk index 8ee874fd279d..923adc517c30 100644 --- a/Mk/Uses/mono.mk +++ b/Mk/Uses/mono.mk @@ -1,236 +1,236 @@ # mono (c#) support # # Feature: mono # Usage: USES=mono:ARGS # Valid ARGS: nuget # # MAINTAINER= mono@FreeBSD.org # # Arguments: # # build Specifies that mono is only a build-time dependency. # # nuget Specifies that the port uses nuget packages. # # EXTRACT_ONLY is conditionally overridden to exclude all # files with a '.nupkg' extension. # # Targets: # # makenuget This target will output the NUGET_DEPENDS based on the # port's packages.config file. # # makenupkg This target will create nupkg-${NAME} files based on the # port's downloaded packages in ${NUGET_PACKAGEDIR} # # Variables overrideable by the port: # # NUGET_PACKAGEDIR The directory in which the port expects the # nuget packages to be available # default: ${WRKSRC}/packages # # NUGET_LAYOUT The directory layout of ${NUGET_PACKAGEDIR}: # legacy: # ${NAME} # ${NAME}.${VERSION} # ${NAME.tl}/${VERSION} # flat: # ${NAME} # ${NAME:tl} # dotnet: # ${NAME:tl}/${VERSION} # default: legacy # # NUGET_FEEDS A list of nuget feed names # default: NUGET # # ${NAME}_URL: The base URL for the feed ${NAME} # defaults: # NUGET_URL=https://www.nuget.org/api/v2/ # ${NAME}_URL=https://dotnet.myget.org/F/${NAME:tl:S/_/-/g}/api/v2/ # # ${NAME}_FILE: The file containing a list of nuget packages from # feed ${NAME} in the format: # ${name}=${version} # default: ${PKGDIR}/nupkg-${NAME:tl} # # ${NAME}_DEPENDS: The list of nuget packages from feed ${NAME} in the # format: # ${name}=${version} # defaults: # NUGET_DEPENDS=${PAKET_DEPENDS} # # PAKET_PACKAGEDIR The directory in which the port expects the # nuget packages (managed by paket) to be available # # PAKET_DEPENDS The list of nuget packages from a nuget feed. The # version used needs to be resolved (unlike how paket # works). The format is: # ${name}=${version} .if !defined(_INCLUDE_USES_MONO_MK) _INCLUDE_USES_MONO_MK= yes .if !empty(mono_ARGS:Nnuget:Nbuild) IGNORE= USES=mono only supports optional arguments nuget and build .endif # Set the location of the .wapi directory so we write to a location we # can always assume to be writable. MONO_SHARED_DIR= ${WRKDIR} CONFIGURE_ENV+= MONO_SHARED_DIR="${MONO_SHARED_DIR}" MAKE_ENV+= MONO_SHARED_DIR="${MONO_SHARED_DIR}" TZ=UTC BUILD_DEPENDS+= mono:lang/mono .if empty(mono_ARGS:Mbuild) RUN_DEPENDS+= mono:lang/mono .endif # Set the location that webaps served by XSP should use. XSP_DOCROOT= ${PREFIX}/www/xsp # gac utilities GACUTIL=${LOCALBASE}/bin/gacutil /root ${PREFIX}/lib/ /gacdir ${PREFIX}/lib GACUTIL_INSTALL=${GACUTIL} /i GACUTIL_INSTALL_PACKAGE=${GACUTIL} /i /package 1.0 /package 2.0 .if ${mono_ARGS:Mnuget} MAKE_ENV+= NUGET_PACKAGES=${NUGET_PACKAGEDIR} # TODO: add nuget as a Port, use it for makenupkg NUGET_EXE?= ${WRKDIR}/nuget.exe NUGET_LATEST_URL?= https://dist.nuget.org/win-x86-commandline/latest/nuget.exe _NUGET_PACKAGEDIR= ${WRKDIR}/.nuget/packages NUGET_PACKAGEDIR?= ${WRKSRC}/packages NUGET_LAYOUT?= legacy NUGET_FEEDS?= NUGET NUGET_URL?= https://api.nuget.org/v3-flatcontainer/ NUGET_VERSION?= v3 PAKET_PACKAGEDIR?= PAKET_DEPENDS?= NUGET_DEPENDS?= ${PAKET_DEPENDS} . for feed in ${NUGET_FEEDS} ${feed}_DEPENDS?= ${feed}_FILE?= ${PKGDIR}/nupkg-${feed:tl} ${feed}_URL?= https://dotnet.myget.org/F/${feed:tl:S/_/-/g}/api/v2/ ${feed}_VERSION?= v2 . if exists(${${feed}_FILE}) ${feed}_EXTRA!= ${CAT} ${${feed}_FILE} . else ${feed}_EXTRA= . endif MAKENUPKG_ENV+= ${feed:tl}_URL="${${feed}_URL}" ${feed:tl}_VERSION="${${feed}_VERSION}" . for depend in ${${feed}_DEPENDS} ${${feed}_EXTRA} . if empty(_NUGET_DEPENDS:M${depend}) id= ${depend:C/=.*$//} version= ${depend:C/^.*=//} group= nuget_${depend:C/[.+=-]//g} nupkg= ${id:tl}.${version}.nupkg DISTFILES_${group}:= ${nupkg}:${group} . if ${${feed}_VERSION} == v2 MASTER_SITES_${group}:= ${${feed}_URL}package/${id}/${version}?dummy=/:${group} . else MASTER_SITES_${group}:= ${${feed}_URL}${id:tl}/${version}/:${group} . endif NUGET_NUPKGS_${group}:= ${nupkg}:${depend} NUPKGS_${id}:= ${NUPKGS_${id}} ${version} DISTFILES+= ${DISTFILES_nuget_${depend:S/.//g:S/-//g:S/=//g}} MASTER_SITES+= ${MASTER_SITES_nuget_${depend:S/.//g:S/-//g:S/=//g}} NUGET_NUPKGS+= ${NUGET_NUPKGS_nuget_${depend:S/.//g:S/-//g:S/=//g}} _NUGET_DEPENDS+= ${depend} . endif . endfor . endfor EXTRACT_ONLY?= ${_DISTFILES:N*.nupkg} _USES_extract+= 600:nuget-extract nuget-extract: @${MKDIR} ${_NUGET_PACKAGEDIR} ${PAKET_PACKAGEDIR} . for nupkg in ${NUGET_NUPKGS} @${MKDIR} ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|} @tar -xf ${DISTDIR}/${nupkg:C/:.*$//} -C ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|} \ -s/%2B/\+/g -s/%2B/\+/g -s/%2B/\+/g \ --exclude '\[Content_Types\].xml' \ --exclude package/ \ --exclude _rels/ @${MV} ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/${nupkg:C/^.*://:C/=.*//}.nuspec \ ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/${nupkg:tl:C/^.*://:C/=.*//}.nuspec @${CP} ${DISTDIR}/${nupkg:C/:.*$//} ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/${nupkg:tl:C/^.*://:S/=/./}.nupkg @openssl dgst -sha512 -binary ${DISTDIR}/${nupkg:C/:.*$//} | openssl enc -base64 | ${TR} -d "\n" \ > ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/${nupkg:tl:C/^.*://:S/=/./}.nupkg.sha512 . if ${NUGET_LAYOUT} == legacy @${CP} -a ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/ ${_NUGET_PACKAGEDIR}/${nupkg:C/^.*://:S|=|.|}/ @${CP} -a ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/ ${_NUGET_PACKAGEDIR}/${nupkg:C/^.*://:C|=.*||}/ . if ${nupkg} != ${nupkg:tl} @(cd ${_NUGET_PACKAGEDIR}/${nupkg:C/^.*://:C|=.*||}; \ ${MV} ${nupkg:tl:C/^.*://:C/=.*//}.nuspec ${nupkg:C/^.*://:C/=.*//}.nuspec; \ ${MV} ${nupkg:tl:C/^.*://:S/=/./}.nupkg ${nupkg:C/^.*://:S/=/./}.nupkg; \ ${MV} ${nupkg:tl:C/^.*://:S/=/./}.nupkg.sha512 ${nupkg:C/^.*://:S/=/./}.nupkg.sha512) @(cd ${_NUGET_PACKAGEDIR}/${nupkg:C/^.*://:S|=|.|}; \ ${MV} ${nupkg:tl:C/^.*://:C/=.*//}.nuspec ${nupkg:C/^.*://:C/=.*//}.nuspec; \ ${MV} ${nupkg:tl:C/^.*://:S/=/./}.nupkg ${nupkg:C/^.*://:S/=/./}.nupkg; \ ${MV} ${nupkg:tl:C/^.*://:S/=/./}.nupkg.sha512 ${nupkg:C/^.*://:S/=/./}.nupkg.sha512) . endif . elif ${NUGET_LAYOUT} == flat @${CP} -a ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}/ ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:C|=.*||}/ @${RM} -r ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|} . if ${nupkg} != ${nupkg:tl} @${CP} -a ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:C|=.*||}/ ${_NUGET_PACKAGEDIR}/${nupkg:C/^.*://:C|=.*||}/ @(cd ${_NUGET_PACKAGEDIR}/${nupkg:C/^.*://:C|=.*||}; \ ${MV} ${nupkg:tl:C/^.*://:C/=.*//}.nuspec ${nupkg:C/^.*://:C/=.*//}.nuspec; \ ${MV} ${nupkg:tl:C/^.*://:S/=/./}.nupkg ${nupkg:C/^.*://:S/=/./}.nupkg; \ ${MV} ${nupkg:tl:C/^.*://:S/=/./}.nupkg.sha512 ${nupkg:C/^.*://:S/=/./}.nupkg.sha512) . endif . endif . endfor @${RLN} ${_NUGET_PACKAGEDIR} ${NUGET_PACKAGEDIR} @${TOUCH} ${WRKDIR}/.nuget-sentinal _USES_extract+= 601:paket-extract paket-extract: . for nupkg in ${PAKET_DEPENDS} @${RLN} ${_NUGET_PACKAGEDIR}/${nupkg:tl:S|=|/|} ${PAKET_PACKAGEDIR}/${nupkg:C/=.*//} @(cd ${_NUGET_PACKAGEDIR}/${nupkg:tl:C/^.*://:S|=|/|}; \ ${CP} ${nupkg:tl:C/^.*://:C/=.*//}.nuspec ${nupkg:C/^.*://:C/=.*//}.nuspec; \ ${CP} ${nupkg:tl:C/^.*://:S/=/./}.nupkg ${nupkg:C/^.*://:S/=/./}.nupkg; \ ${CP} ${nupkg:tl:C/^.*://:S/=/./}.nupkg.sha512 ${nupkg:C/^.*://:S/=/./}.nupkg.sha512) . endfor .endif makenuget: patch @${FIND} ${WRKSRC} -name packages.config | \ ${XARGS} ${SED} -nE 's|.*.*|\1=\2|gp' | \ ${SORT} -u | \ ${SED} \ -e '1s|^|NUGET_DEPENDS= |' \ -e '2,$$s|^| |g' \ -e '$$!s|$$| \\|g' makenupkg: @${RM} ${WRKDIR}/nupkg-* @for nuspec in `${FIND} ${_NUGET_PACKAGEDIR} -name '*.nuspec'`; do \ name="`${SED} -nE 's|.*(.*).*|\1|p' $$nuspec`"; \ version="`${SED} -nE 's|.*(.*).*|\1|p' $$nuspec`"; \ echo $$name=$$version ; \ done | ${SORT} -u | ${SETENV} ${MAKENUPKG_ENV} ${XARGS} -n1 sh -c ' \ for feed in ${NUGET_FEEDS:MNUGET:tl} ${NUGET_FEEDS:NNUGET:tl}; do \ if eval [ "\$${$${feed}_VERSION}" = v2 ]; then \ eval url="\$${$${feed}_URL}package/$${0%%=*}/$${0##*=}"; \ else \ eval url="\$${$${feed}_URL}$${0%%=*}/$${0##*=}/$${0%%=*}.$${0##*=}.nupkg"; \ fi; \ if curl --output /dev/null --silent --head --fail $$url; then\ - ${ECHO} $$0 >> ${WRKDIR}/nupkg-$$feed; \ + ${ECHO_CMD} $$0 >> ${WRKDIR}/nupkg-$$feed; \ found=yes; \ break; \ fi; \ done; \ if [ -z "$$found" ]; then \ echo "$$0: no feed found"; \ exit 1; \ fi' .endif diff --git a/Mk/Uses/perl5.mk b/Mk/Uses/perl5.mk index 3309795cc044..eb1b65eee554 100644 --- a/Mk/Uses/perl5.mk +++ b/Mk/Uses/perl5.mk @@ -1,344 +1,344 @@ # Provide support to use perl5 # # 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 (major.minor without patchlevel) # # 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.14.4 would give # a PERL_LEVEL of 501404. 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: mach). # PERL_PORT - Name of the perl port that is installed # (for example: perl5.24) # SITE_PERL - Directory name where site specific perl packages go. # This value is added to PLIST_SUB. # SITE_ARCH - Directory name where arch site specific perl packages go. # This value is added to PLIST_SUB. # USE_PERL5 - If set, this port uses perl5 in one or more of the extract, # patch, build, run or test phases. # It can also have configure, modbuild and modbuildtiny when # the port needs to run Makefile.PL, Build.PL and a # Module::Build::Tiny flavor of Build.PL. # # MAINTAINER: perl@FreeBSD.org .if !defined(_INCLUDE_USES_PERL5_MK) _INCLUDE_USES_PERL5_MK= yes . if !empty(perl5_ARGS) IGNORE= Incorrect 'USES+=perl5:${perl5_ARGS}' perl5 takes no arguments . endif USE_PERL5?= run build # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. . if ${PERL5_DEFAULT} == 5.28 .include "${PORTSDIR}/lang/perl5.28/version.mk" . elif ${PERL5_DEFAULT} == 5.30 .include "${PORTSDIR}/lang/perl5.30/version.mk" . elif ${PERL5_DEFAULT} == 5.32 .include "${PORTSDIR}/lang/perl5.32/version.mk" . elif ${PERL5_DEFAULT} == 5.34 .include "${PORTSDIR}/lang/perl5.34/version.mk" . elif ${PERL5_DEFAULT} == devel .include "${PORTSDIR}/lang/perl5-devel/version.mk" # Force PERL_PORT here in case two identical PERL_VERSION. PERL_PORT?= perl5-devel . else IGNORE= Invalid perl5 version ${PERL5_DEFAULT} . endif PERL_VER?= ${PERL_VERSION:C/\.[0-9]+$//} . if !defined(PERL_LEVEL) && defined(PERL_VERSION) perl_major= ${PERL_VERSION:C|^([1-9]+).*|\1|} _perl_minor= 00${PERL_VERSION:C|^([1-9]+)\.([0-9]+).*|\2|} perl_minor= ${_perl_minor:C|^.*(...)|\1|} . if ${perl_minor} >= 100 perl_minor= ${PERL_VERSION:C|^([1-9]+)\.([0-9][0-9][0-9]).*|\2|} perl_patch= ${PERL_VERSION:C|^.*(..)|\1|} . else # ${perl_minor} < 100 _perl_patch= 0${PERL_VERSION:C|^([1-9]+)\.([0-9]+)\.*|0|} perl_patch= ${_perl_patch:C|^.*(..)|\1|} . endif # ${perl_minor} < 100 PERL_LEVEL= ${perl_major}${perl_minor}${perl_patch} . else PERL_LEVEL=0 . endif # !defined(PERL_LEVEL) && defined(PERL_VERSION) PERL_ARCH?= mach # there must always be a default to prevent dependency failures such # as "ports/lang: not found". Also, perl5-devel is taken care in the # perl5_default file, or up there in the default versions selection. # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. . if ${PERL_LEVEL} >= 503400 PERL_PORT?= perl5.34 . elif ${PERL_LEVEL} >= 503200 PERL_PORT?= perl5.32 . elif ${PERL_LEVEL} >= 503000 PERL_PORT?= perl5.30 . else # ${PERL_LEVEL} < 503000 PERL_PORT?= perl5.28 . endif SITE_PERL_REL?= lib/perl5/site_perl SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL} SITE_ARCH_REL?= ${SITE_PERL_REL}/${PERL_ARCH}/${PERL_VER} SITE_ARCH?= ${LOCALBASE}/${SITE_ARCH_REL} SITE_MAN3_REL?= ${SITE_PERL_REL}/man/man3 SITE_MAN3?= ${PREFIX}/${SITE_MAN3_REL} SITE_MAN1_REL?= ${SITE_PERL_REL}/man/man1 SITE_MAN1?= ${PREFIX}/${SITE_MAN1_REL} PERL5?= ${LOCALBASE}/bin/perl${PERL_VERSION} PERL?= ${LOCALBASE}/bin/perl CONFIGURE_ENV+= ac_cv_path_PERL=${PERL} ac_cv_path_PERL_PATH=${PERL} \ PERL_USE_UNSAFE_INC=1 MAKE_ENV+= PERL_USE_UNSAFE_INC=1 QA_ENV+= SITE_ARCH_REL=${SITE_ARCH_REL} LIBPERL=libperl.so.${PERL_VER} # Define the want perl first if defined . if ${USE_PERL5:M5*} want_perl_sign= ${USE_PERL5:M5*:C|^[0-9.]+||} want_perl_ver= ${USE_PERL5:M5*:S|${want_perl_sign}$||} want_perl_major= ${want_perl_ver:C|\..*||} _want_perl_minor= ${want_perl_ver:S|^${want_perl_major}||:S|^.||:C|\..*||} _want_perl_patch= ${want_perl_ver:S|^${want_perl_major}||:S|^.${_want_perl_minor}||:S|^.||:C|\..*||} want_perl_minor= ${_want_perl_minor:S|^|000|:C|.*(...)|\1|} want_perl_patch= ${_want_perl_patch:S|^|00|:C|.*(..)|\1|} USE_PERL5_LEVEL= ${want_perl_major}${want_perl_minor}${want_perl_patch} . endif # All but version _USE_PERL5= ${USE_PERL5:N5*} # Mask unspecified components. E.g. this way "5" will match any "5.x.x". . if empty(_want_perl_minor) masked_PERL_LEVEL= ${PERL_LEVEL:C|(.....)$|00000|} . elif empty(_want_perl_patch) masked_PERL_LEVEL= ${PERL_LEVEL:C|(..)$|00|} . else masked_PERL_LEVEL= ${PERL_LEVEL} . endif . if defined(want_perl_sign) . if ${want_perl_sign} == "+" . if ${USE_PERL5_LEVEL} > ${masked_PERL_LEVEL} USE_PERL5_REASON?= requires Perl ${want_perl_ver} or later, install lang/perl${want_perl_major}.${want_perl_minor:C|^0||} and try again IGNORE= ${USE_PERL5_REASON} . endif # ${USE_PERL5_LEVEL} > ${masked_PERL_LEVEL} . elif ${want_perl_sign} == "" . if ${USE_PERL5_LEVEL} != ${masked_PERL_LEVEL} USE_PERL5_REASON?= requires Perl ${want_perl_ver} exactly IGNORE= ${USE_PERL5_REASON} . endif # ${USE_PERL5_LEVEL} != ${masked_PERL_LEVEL} . elif ${want_perl_sign} == "-" . if ${USE_PERL5_LEVEL} <= ${masked_PERL_LEVEL} USE_PERL5_REASON?= requires a Perl version earlier than ${want_perl_ver} IGNORE= ${USE_PERL5_REASON} . endif # ${USE_PERL5_LEVEL} <= ${masked_PERL_LEVEL} . else # wrong suffix IGNORE= improper use of USE_PERL5 . endif . endif _USE_PERL5_VALID= build configure extract modbuild modbuildtiny patch run \ test _USE_PERL5_UNKNOWN= . for component in ${_USE_PERL5} . if empty(_USE_PERL5_VALID:M${component}) _USE_PERL5_UNKNOWN+= ${component} . endif . endfor . if !empty(_USE_PERL5_UNKNOWN) IGNORE= has unknown USE_PERL5 components: ${_USE_PERL5_UNKNOWN} . endif _USES_POST+= perl5 . if ${PERL_LEVEL} >= 503100 P5_POD_PARSER= p5-Pod-Parser>=0:textproc/p5-Pod-Parser . else P5_POD_PARSER= . endif .endif .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PERL5_POST_MK) _INCLUDE_USES_PERL5_POST_MK= yes PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \ PERL_VER=${PERL_VER} \ PERL5_MAN1=${SITE_MAN1_REL} \ PERL5_MAN3=${SITE_MAN3_REL} \ SITE_PERL=${SITE_PERL_REL} \ SITE_ARCH=${SITE_ARCH_REL} # handle perl5 specific manpages . for sect in 3 . if defined(P5MAN${sect}) _MANPAGES+= ${P5MAN${sect}:S%^%${PREFIX}/lib/perl5/${PERL_VER}/man/man${sect}/%} . endif . endfor MANDIRS+= ${PREFIX}/${SITE_PERL_REL}/man . if ${_USE_PERL5:Mmodbuild} || ${_USE_PERL5:Mmodbuildtiny} _USE_PERL5+= configure ALL_TARGET?= # empty CONFIGURE_ARGS+=--install_path lib="${PREFIX}/${SITE_PERL_REL}" \ --install_path arch="${PREFIX}/${SITE_ARCH_REL}" \ --install_path script="${PREFIX}/bin" \ --install_path bin="${PREFIX}/bin" \ --install_path libdoc="${MAN3PREFIX}/man/man3" \ --install_path bindoc="${MAN1PREFIX}/man/man1" CONFIGURE_SCRIPT?= Build.PL PL_BUILD?= Build CONFIGURE_ARGS+=--destdir ${STAGEDIR} DESTDIRNAME= --destdir . if ${_USE_PERL5:Mmodbuild} CONFIGURE_ARGS+=--perl="${PERL}" . if ${PORTNAME} != Module-Build BUILD_DEPENDS+= p5-Module-Build>=0.4206:devel/p5-Module-Build . endif CONFIGURE_ARGS+=--create_packlist 1 . endif . if ${_USE_PERL5:Mmodbuildtiny} . if ${PORTNAME} != Module-Build-Tiny BUILD_DEPENDS+= p5-Module-Build-Tiny>=0.039:devel/p5-Module-Build-Tiny . endif CONFIGURE_ARGS+=--create_packlist 1 . endif . elif ${_USE_PERL5:Mconfigure} CONFIGURE_ARGS+=INSTALLDIRS="site" . endif # modbuild . if ${_USE_PERL5:Mconfigure} _USE_PERL5+= build run # Disable AutoInstall from attempting to install from CPAN directly in # the case of missing dependencies. This causes the build to loop on # the build cluster asking for interactive input. CONFIGURE_ENV+= PERL_EXTUTILS_AUTOINSTALL="--skipdeps" . if defined(BATCH) && !defined(IS_INTERACTIVE) CONFIGURE_ENV+= PERL_MM_USE_DEFAULT="YES" . endif # defined(BATCH) && !defined(IS_INTERACTIVE) . endif # configure . if ${_USE_PERL5:Mextract} EXTRACT_DEPENDS+= ${PERL5_DEPEND}:lang/${PERL_PORT} . endif . if ${_USE_PERL5:Mpatch} PATCH_DEPENDS+= ${PERL5_DEPEND}:lang/${PERL_PORT} . endif . if ${_USE_PERL5:Mbuild} BUILD_DEPENDS+= ${PERL5_DEPEND}:lang/${PERL_PORT} . endif . if ${_USE_PERL5:Mrun} RUN_DEPENDS+= ${PERL5_DEPEND}:lang/${PERL_PORT} . endif . if ${_USE_PERL5:Mtest} TEST_DEPENDS+= ${PERL5_DEPEND}:lang/${PERL_PORT} . endif . if ${_USE_PERL5:Mconfigure} CONFIGURE_ARGS+= CC="${CC}" CCFLAGS="${CFLAGS}" LD="${CC}" PREFIX="${PREFIX}" \ INSTALLPRIVLIB="${PREFIX}/lib" INSTALLARCHLIB="${PREFIX}/lib" CONFIGURE_SCRIPT?= Makefile.PL MAN3PREFIX?= ${PREFIX}/${SITE_PERL_REL} MAN1PREFIX?= ${PREFIX}/${SITE_PERL_REL} .undef HAS_CONFIGURE . if !target(do-configure) do-configure: @if [ -f ${SCRIPTDIR}/configure ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/configure; \ fi @cd ${CONFIGURE_WRKSRC} && \ ${SETENV} ${CONFIGURE_ENV} \ ${PERL5} ${CONFIGURE_CMD} ${CONFIGURE_ARGS} . if !${_USE_PERL5:Mmodbuild*} @cd ${CONFIGURE_WRKSRC} && \ ${PERL5} -pi -e 's/ doc_(perl|site|\$$\(INSTALLDIRS\))_install$$//' Makefile . endif # ! modbuild . endif # !target(do-configure) . endif # configure . if ${_USE_PERL5:Mmodbuild*} . if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${ALL_TARGET} ${MAKE_ARGS}) . endif # !target(do-build) . if !${USES:Mgmake} . if !target(do-install) do-install: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${INSTALL_TARGET} ${MAKE_ARGS}) . endif # !target(do-install) . endif # ! USES=gmake . endif # modbuild PACKLIST_DIR?= ${PREFIX}/${SITE_ARCH_REL}/auto # In all those, don't use - before the command so that the user does # not wonder what has been ignored by this message "*** Error code 1 (ignored)" _USES_install+= 560:fix-perl-things fix-perl-things: # Remove STAGEDIR from .packlist and add the file to the plist. @(if [ -d ${STAGEDIR}${PACKLIST_DIR} ] ; then \ ${FIND} ${STAGEDIR}${PACKLIST_DIR} -name .packlist | while read f ; do \ ${SED} -i '' 's|^${STAGEDIR}||' "$$f"; \ - ${ECHO} $$f | ${SED} -e 's|^${STAGEDIR}||' >> ${TMPPLIST}; \ + ${ECHO_CMD} $$f | ${SED} -e 's|^${STAGEDIR}||' >> ${TMPPLIST}; \ done \ fi) || : # Starting with perl 5.20, the empty bootstrap files are not installed any more # by ExtUtils::MakeMaker. As we don't need them anyway, remove them. # Module::Build continues to install them, so remove the files unconditionally. @${FIND} ${STAGEDIR} -name '*.bs' -size 0 -delete || : # Some ports use their own way of building perl modules and generate # perllocal.pod, remove it here so that those ports don't include it # by mistake in their plists. It is sometime compressed, so use a # shell glob for the removal. Also, remove the directories that # contain it to not leave orphans directories around. @${RM} ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH}/perllocal.pod* || : @${RMDIR} -p ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH} 2>/dev/null || : # Starting at ExtUtils::MakeMaker 7.06 and Perl 5.25.1, the base README.pod is # no longer manified into a README.3, as the README.pod is installed and can be # read with perldoc, remove the README.3 files that may be generated. @[ -d "${STAGEDIR}${SITE_MAN3}" ] && \ ${FIND} ${STAGEDIR}${SITE_MAN3} -name '*::README.3' -delete || : # Starting at ExtUtils::MakeMaker 7.31_06 and Perl 5.27.1, the base README.pod is # no longer installed. So remove any that can be there. @[ -d "${STAGEDIR}${PREFIX}/${SITE_PERL_REL}" ] && \ ${FIND} ${STAGEDIR}${PREFIX}/${SITE_PERL_REL} -name README.pod -delete || : . if !target(do-test) && (!empty(USE_PERL5:Mmodbuild*) || !empty(USE_PERL5:Mconfigure)) TEST_TARGET?= test TEST_WRKSRC?= ${BUILD_WRKSRC} do-test: . if ${USE_PERL5:Mmodbuild*} @cd ${TEST_WRKSRC}/ && ${SETENV} ${TEST_ENV} ${PERL5} ${PL_BUILD} ${TEST_TARGET} ${TEST_ARGS} . elif ${USE_PERL5:Mconfigure} @cd ${TEST_WRKSRC}/ && ${SETENV} ${TEST_ENV} ${MAKE_CMD} ${TEST_ARGS} ${TEST_TARGET} . endif # USE_PERL5:Mmodbuild* . endif # do-test .endif # defined(_POSTMKINCLUDED)