Changeset View
Changeset View
Standalone View
Standalone View
Mk/bsd.sites.mk
Show First 20 Lines • Show All 286 Lines • ▼ Show 20 Lines | |||||
. if defined(GH_TAGNAME) && ${GH_TAGNAME} == master | . if defined(GH_TAGNAME) && ${GH_TAGNAME} == master | ||||
IGNORE?= Using master as GH_TAGNAME is invalid. \ | IGNORE?= Using master as GH_TAGNAME is invalid. \ | ||||
Must use a tag or commit hash so the upstream does \ | Must use a tag or commit hash so the upstream does \ | ||||
not "reroll" as soon as the branch is updated | not "reroll" as soon as the branch is updated | ||||
. endif | . endif | ||||
. if defined(GH_TUPLE) | . if defined(GH_TUPLE) | ||||
. for _tuple in ${GH_TUPLE} | . for _tuple in ${GH_TUPLE} | ||||
_t_tmp=${_tuple} | _t_tmp=${_tuple} | ||||
. if ${_t_tmp:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\4@:S/://:C/[a-zA-Z0-9_]//g} | . if ${_t_tmp:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\4@:S/://:C/[a-zA-Z0-9_.+-]//g} | ||||
check-makevars:: | check-makevars:: | ||||
@${ECHO_MSG} "The ${_tuple} GH_TUPLE line has" | @${ECHO_MSG} "The ${_tuple} GH_TUPLE line has" | ||||
@${ECHO_MSG} "a tag containing something else than [a-zA-Z0-9_]" | @${ECHO_MSG} "a tag containing something else than [a-zA-Z0-9_.+-]" | ||||
@${FALSE} | @${FALSE} | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
GH_ACCOUNT+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\1\4@} | GH_ACCOUNT+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\1\4@} | ||||
GH_PROJECT+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\2\4@} | GH_PROJECT+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\2\4@} | ||||
GH_TAGNAME+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\3\4@} | GH_TAGNAME+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\3\4@} | ||||
GH_SUBDIR+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\6\4@:M/*:S/^\///} | GH_SUBDIR+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\6\4@:M/*:S/^\///} | ||||
. endif | . endif | ||||
▲ Show 20 Lines • Show All 117 Lines • ▼ Show 20 Lines | |||||
. endfor | . endfor | ||||
. endif | . endif | ||||
convert-to-gh-tuple: | convert-to-gh-tuple: | ||||
@${ECHO_MSG} ${GH_ACCOUNT}:${GH_PROJECT}:${GH_TAGNAME} ${_GH_TUPLE_OUT:S/\/$//} | @${ECHO_MSG} ${GH_ACCOUNT}:${GH_PROJECT}:${GH_TAGNAME} ${_GH_TUPLE_OUT:S/\/$//} | ||||
WWW?= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/ | WWW?= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/ | ||||
. endif # defined(USE_GITHUB) | . endif # defined(USE_GITHUB) | ||||
.endif # !defined(IGNORE_MASTER_SITE_GITHUB) | .endif # !defined(IGNORE_MASTER_SITE_GITHUB) | ||||
# Keep this before USE_GITLAB | |||||
.if !empty(MASTER_SITES:M*//*/*/*/-/archive/${DISTVERSIONFULL}/) | |||||
DEV_WARNING+= "MASTER_SITES contains ${MASTER_SITES:M*//*/*/*/-/archive/${DISTVERSIONFULL}/}, please use USE_GITLAB instead." | |||||
.endif | |||||
.if !defined(IGNORE_MASTER_SITE_GITLAB) | .if !defined(IGNORE_MASTER_SITE_GITLAB) | ||||
# | # | ||||
# In order to use GitLab your port must define USE_GITLAB and the following | # In order to use GitLab your port must define USE_GITLAB and the following | ||||
# variables: | # variables: | ||||
# | # | ||||
# GL_SITE - site URL hosting GitLab and the project | # GL_SITE - site URL hosting GitLab and the project | ||||
# default: https://gitlab.com | # default: https://gitlab.com | ||||
# | # | ||||
# GL_ACCOUNT - account name of the GitLab user hosting the project | # GL_ACCOUNT - account name of the GitLab user hosting the project | ||||
# default: ${PORTNAME} | # default: ${PORTNAME} | ||||
# | # | ||||
# GL_PROJECT - name of the project on GitLab | # GL_PROJECT - name of the project on GitLab | ||||
# default: ${PORTNAME} | # default: ${PORTNAME} | ||||
# | # | ||||
# GL_COMMIT - the commit hash of the repository, must be the full hash and | # GL_TAGNAME - name of the tag to download (2.0.1, hash, ...) | ||||
# is a required variable for GitLab. | # Using the name of a branch here is incorrect. It is | ||||
# possible to do GL_TAGNAME= GIT_HASH to do a snapshot. | |||||
# default: ${DISTVERSIONFULL} | |||||
# | # | ||||
# GL_SUBDIR - directory relative to WRKSRC where to move this distfile's | # GL_SUBDIR - directory relative to WRKSRC where to move this distfile's | ||||
# content after extracting. | # content after extracting. | ||||
# | # | ||||
# GL_TUPLE - above shortened to [site[:port][/webroot]:]account:project:commit:group[/subdir] | # GL_TUPLE - above shortened to [site[:port][/webroot]:]account:project:tagname:group[/subdir] | ||||
# | # | ||||
. if defined(USE_GITLAB) | . if defined(USE_GITLAB) | ||||
. if defined(GL_TUPLE) | . if defined(GL_TUPLE) | ||||
. for _tuple in ${GL_TUPLE} | . for _tuple in ${GL_TUPLE} | ||||
. if ${_tuple:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7@:S/^://:C/[a-f0-9]{40}//g} | . if ${_tuple:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7@:S/^://:C/[a-zA-Z0-9_.+-]//g} | ||||
check-makevars:: | check-makevars:: | ||||
@${ECHO_MSG} "The ${_tuple}" | @${ECHO_MSG} "The ${_tuple}" | ||||
@${ECHO_MSG} "GL_TUPLE is improperly formatted or, the commit" | @${ECHO_MSG} "GL_TUPLE is improperly formatted or, the tagname" | ||||
@${ECHO_MSG} "section contains something other than [a-f0-9]" | @${ECHO_MSG} "section contains something other than [a-zA-Z0-9_.+-]" | ||||
@${FALSE} | @${FALSE} | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
GL_SITE+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\1\8@:S@::@:@} | GL_SITE+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\1\8@:S@::@:@} | ||||
GL_ACCOUNT+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\5\8@} | GL_ACCOUNT+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\5\8@} | ||||
GL_PROJECT+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\6\8@} | GL_PROJECT+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\6\8@} | ||||
GL_COMMIT+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7\8@} | GL_TAGNAME+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7\8@} | ||||
GL_SUBDIR+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\9\8@:M/*:S/^\///} | GL_SUBDIR+= ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\9\8@:M/*:S/^\///} | ||||
. endif | . endif | ||||
. if empty(USE_GITLAB:Mnodefault) | . if empty(USE_GITLAB:Mnodefault) | ||||
MASTER_SITES+= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/archive/${GL_COMMIT}.tar.gz?dummy=/ | MASTER_SITES+= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/archive/${GL_TAGNAME:C@^[a-f0-9]{40}$@\0.tar.gz?dummy=@}/ | ||||
. endif | . endif | ||||
GL_SITE_DEFAULT= https://gitlab.com | GL_SITE_DEFAULT= https://gitlab.com | ||||
GL_SITE?= ${GL_SITE_DEFAULT} | GL_SITE?= ${GL_SITE_DEFAULT} | ||||
GL_ACCOUNT_DEFAULT= ${PORTNAME} | GL_ACCOUNT_DEFAULT= ${PORTNAME} | ||||
GL_ACCOUNT?= ${GL_ACCOUNT_DEFAULT} | GL_ACCOUNT?= ${GL_ACCOUNT_DEFAULT} | ||||
GL_PROJECT_DEFAULT= ${PORTNAME} | GL_PROJECT_DEFAULT= ${PORTNAME} | ||||
GL_PROJECT?= ${GL_PROJECT_DEFAULT} | GL_PROJECT?= ${GL_PROJECT_DEFAULT} | ||||
GL_TAGNAME_DEFAULT= ${DISTVERSIONFULL} | |||||
GL_TAGNAME?= ${GL_TAGNAME_DEFAULT} | |||||
_GITLAB_GROUPS= DEFAULT | _GITLAB_GROUPS= DEFAULT | ||||
. for _gl_v in GL_SITE GL_ACCOUNT GL_PROJECT GL_COMMIT GL_SUBDIR | . for _gl_v in GL_SITE GL_ACCOUNT GL_PROJECT GL_TAGNAME GL_SUBDIR | ||||
. for _v_ex in ${${_gl_v}} | . for _v_ex in ${${_gl_v}} | ||||
_GL_GROUPS= ${_v_ex:S/^${_v_ex:C@:[^/:]+$@@}//:S/^://} | _GL_GROUPS= ${_v_ex:S/^${_v_ex:C@:[^/:]+$@@}//:S/^://} | ||||
. if !empty(_GL_GROUPS) | . if !empty(_GL_GROUPS) | ||||
. for _group in ${_GL_GROUPS:S/,/ /g} | . for _group in ${_GL_GROUPS:S/,/ /g} | ||||
. if ${_group} == all || ${_group} == ALL || ${_group} == default | . if ${_group} == all || ${_group} == ALL || ${_group} == default | ||||
check-makevars:: | check-makevars:: | ||||
@${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" | @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" | ||||
@${ECHO_MSG} "used in group definitions. Please fix your ${_gl_v}" | @${ECHO_MSG} "used in group definitions. Please fix your ${_gl_v}" | ||||
@${FALSE} | @${FALSE} | ||||
. endif | . endif | ||||
. if !${_GITLAB_GROUPS:M${_group}} | . if !${_GITLAB_GROUPS:M${_group}} | ||||
_GITLAB_GROUPS+= ${_group} | _GITLAB_GROUPS+= ${_group} | ||||
. endif | . endif | ||||
${_gl_v}_${_group}= ${_v_ex:C@^(.*):[^/:]+$@\1@} | ${_gl_v}_${_group}= ${_v_ex:C@^(.*):[^/:]+$@\1@} | ||||
. endfor | . endfor | ||||
. else | . else | ||||
${_gl_v}_DEFAULT= ${_v_ex:C@^(.*):[^/:]+$@\1@} | ${_gl_v}_DEFAULT= ${_v_ex:C@^(.*):[^/:]+$@\1@} | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
. endfor | . endfor | ||||
GL_SITE:= ${GL_SITE_DEFAULT} | GL_SITE:= ${GL_SITE_DEFAULT} | ||||
GL_ACCOUNT:= ${GL_ACCOUNT_DEFAULT} | GL_ACCOUNT:= ${GL_ACCOUNT_DEFAULT} | ||||
GL_PROJECT:= ${GL_PROJECT_DEFAULT} | GL_PROJECT:= ${GL_PROJECT_DEFAULT} | ||||
GL_COMMIT:= ${GL_COMMIT_DEFAULT} | GL_TAGNAME:= ${GL_TAGNAME_DEFAULT} | ||||
GL_SUBDIR:= ${GL_SUBDIR_DEFAULT} | GL_SUBDIR:= ${GL_SUBDIR_DEFAULT} | ||||
_GITLAB_REV= 0 | _GITLAB_REV= 0 | ||||
_GITLAB_EXTRACT_SUFX= .tar.gz | _GITLAB_EXTRACT_SUFX= .tar.gz | ||||
_GITLAB_TAG_EXTRACT_SUFX= .tar.bz2 | |||||
_GITLAB_CLONE_DIR?= ${WRKDIR}/git-clone | _GITLAB_CLONE_DIR?= ${WRKDIR}/git-clone | ||||
_PORTS_DIRECTORIES+= ${_GITLAB_CLONE_DIR} | _PORTS_DIRECTORIES+= ${_GITLAB_CLONE_DIR} | ||||
. if !${USE_GITLAB:Mnodefault} | . if !${USE_GITLAB:Mnodefault} | ||||
DISTNAME:= ${GL_ACCOUNT}-${GL_PROJECT}-${GL_COMMIT}_GL${_GITLAB_REV} | . if ${GL_TAGNAME:C/^[a-f0-9]{40}$//} | ||||
DISTNAME:= ${GL_PROJECT}-${GL_TAGNAME} | |||||
DISTFILES+= ${DISTNAME}${_GITLAB_TAG_EXTRACT_SUFX} | |||||
. else | |||||
DISTNAME:= ${GL_ACCOUNT}-${GL_PROJECT}-${GL_TAGNAME}_GL${_GITLAB_REV} | |||||
DISTFILES+= ${DISTNAME}${_GITLAB_EXTRACT_SUFX} | DISTFILES+= ${DISTNAME}${_GITLAB_EXTRACT_SUFX} | ||||
. endif | |||||
git-clone: git-clone-DEFAULT | git-clone: git-clone-DEFAULT | ||||
git-clone-DEFAULT: ${_GITLAB_CLONE_DIR} | git-clone-DEFAULT: ${_GITLAB_CLONE_DIR} | ||||
@git clone ${GL_SITE_DEFAULT}/${GL_ACCOUNT_DEFAULT}/${GL_PROJECT_DEFAULT}.git ${_GITLAB_CLONE_DIR}/${GL_PROJECT_DEFAULT} | @git clone ${GL_SITE_DEFAULT}/${GL_ACCOUNT_DEFAULT}/${GL_PROJECT_DEFAULT}.git ${_GITLAB_CLONE_DIR}/${GL_PROJECT_DEFAULT} | ||||
@${ECHO_MSG} "Cloned the default GitLab repository into ${_GITLAB_CLONE_DIR}/${GL_PROJECT_DEFAULT}" | ${FMT_80} | @${ECHO_MSG} "Cloned the default GitLab repository into ${_GITLAB_CLONE_DIR}/${GL_PROJECT_DEFAULT}" | ${FMT_80} | ||||
. endif | . endif | ||||
. if !empty(GL_SUBDIR) | . if !empty(GL_SUBDIR) | ||||
_SITES_extract:= 69${GL_SUBDIR_${_group}:C=[^/]+= =g:[#]}:post-extract-gl-DEFAULT | _SITES_extract:= 69${GL_SUBDIR_${_group}:C=[^/]+= =g:[#]}:post-extract-gl-DEFAULT | ||||
post-extract-gl-DEFAULT: | post-extract-gl-DEFAULT: | ||||
@${RMDIR} ${WRKSRC}/${GL_SUBDIR_DEFAULT} 2>/dev/null || : | @${RMDIR} ${WRKSRC}/${GL_SUBDIR_DEFAULT} 2>/dev/null || : | ||||
@${MKDIR} ${WRKSRC}/${GL_SUBDIR_DEFAULT:H} 2>/dev/null || : | @${MKDIR} ${WRKSRC}/${GL_SUBDIR_DEFAULT:H} 2>/dev/null || : | ||||
@${LN} -s ${GL_SUBDIR_DEFAULT:C/[^\/]//g:C/\//..\//g:S/^$/./} ${WRKSRC}/${GL_SUBDIR_DEFAULT} | @${LN} -s ${GL_SUBDIR_DEFAULT:C/[^\/]//g:C/\//..\//g:S/^$/./} ${WRKSRC}/${GL_SUBDIR_DEFAULT} | ||||
. endif | . endif | ||||
. if !empty(_GITLAB_GROUPS:NDEFAULT) | . if !empty(_GITLAB_GROUPS:NDEFAULT) | ||||
. for _group in ${_GITLAB_GROUPS:NDEFAULT} | . for _group in ${_GITLAB_GROUPS:NDEFAULT} | ||||
# We set GL_SITE earlier, we need to verify it's not empty | # We set GL_SITE earlier, we need to verify it's not empty | ||||
. if empty(GL_SITE_${_group}) | . if empty(GL_SITE_${_group}) | ||||
GL_SITE_${_group}= ${GL_SITE_DEFAULT} | GL_SITE_${_group}= ${GL_SITE_DEFAULT} | ||||
. endif | . endif | ||||
GL_ACCOUNT_${_group}?= ${GL_ACCOUNT_DEFAULT} | GL_ACCOUNT_${_group}?= ${GL_ACCOUNT_DEFAULT} | ||||
GL_PROJECT_${_group}?= ${GL_PROJECT_DEFAULT} | GL_PROJECT_${_group}?= ${GL_PROJECT_DEFAULT} | ||||
_GL_TUPLE_OUT:= ${_GL_TUPLE_OUT} ${GL_SITE_${_group}}:${GL_ACCOUNT_${_group}}:${GL_PROJECT_${_group}}:${GL_COMMIT_${_group}}:${_group}/${GL_SUBDIR_${_group}} | _GL_TUPLE_OUT:= ${_GL_TUPLE_OUT} ${GL_SITE_${_group}}:${GL_ACCOUNT_${_group}}:${GL_PROJECT_${_group}}:${GL_TAGNAME_${_group}}:${_group}/${GL_SUBDIR_${_group}} | ||||
DISTNAME_${_group}:= ${GL_ACCOUNT_${_group}}-${GL_PROJECT_${_group}}-${GL_COMMIT_${_group}}_GL${_GITLAB_REV} | . if ${GL_TAGNAME_${_group}:C/^[a-f0-9]{40}$//} | ||||
DISTNAME_${_group}:= ${GL_PROJECT_${_group}}-${GL_TAGNAME_${_group}} | |||||
DISTFILE_${_group}:= ${DISTNAME_${_group}}${_GITLAB_TAG_EXTRACT_SUFX} | |||||
MASTER_SITES:= ${MASTER_SITES} ${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}/-/archive/${GL_TAGNAME_${_group}}/:${_group} | |||||
. else | |||||
DISTNAME_${_group}:= ${GL_ACCOUNT_${_group}}-${GL_PROJECT_${_group}}-${GL_TAGNAME_${_group}}_GL${_GITLAB_REV} | |||||
DISTFILE_${_group}:= ${DISTNAME_${_group}}${_GITLAB_EXTRACT_SUFX} | DISTFILE_${_group}:= ${DISTNAME_${_group}}${_GITLAB_EXTRACT_SUFX} | ||||
MASTER_SITES:= ${MASTER_SITES} ${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}/-/archive/${GL_TAGNAME_${_group}}.tar.gz?dummy=/:${_group} | |||||
. endif | |||||
DISTFILES:= ${DISTFILES} ${DISTFILE_${_group}}:${_group} | DISTFILES:= ${DISTFILES} ${DISTFILE_${_group}}:${_group} | ||||
MASTER_SITES:= ${MASTER_SITES} ${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}/-/archive/${GL_COMMIT_${_group}}.tar.gz?dummy=/:${_group} | WRKSRC_${_group}:= ${WRKDIR}/${GL_PROJECT_${_group}}-${GL_TAGNAME_${_group}} | ||||
WRKSRC_${_group}:= ${WRKDIR}/${GL_PROJECT_${_group}}-${GL_COMMIT_${_group}} | |||||
. if !empty(GL_SUBDIR_${_group}) | . if !empty(GL_SUBDIR_${_group}) | ||||
_SITES_extract:= ${_SITES_extract} 690:post-extract-gl-${_group} | _SITES_extract:= ${_SITES_extract} 690:post-extract-gl-${_group} | ||||
post-extract-gl-${_group}: | post-extract-gl-${_group}: | ||||
@${RMDIR} ${WRKSRC}/${GL_SUBDIR_${_group}} 2>/dev/null || : | @${RMDIR} ${WRKSRC}/${GL_SUBDIR_${_group}} 2>/dev/null || : | ||||
@${MKDIR} ${WRKSRC}/${GL_SUBDIR_${_group}:H} 2>/dev/null || : | @${MKDIR} ${WRKSRC}/${GL_SUBDIR_${_group}:H} 2>/dev/null || : | ||||
@${MV} ${WRKSRC_${_group}} ${WRKSRC}/${GL_SUBDIR_${_group}} | @${MV} ${WRKSRC_${_group}} ${WRKSRC}/${GL_SUBDIR_${_group}} | ||||
@${LN} -s ${WRKSRC:T}/${GL_SUBDIR_${_group}} ${WRKSRC_${_group}} | @${LN} -s ${WRKSRC:T}/${GL_SUBDIR_${_group}} ${WRKSRC_${_group}} | ||||
. endif | . endif | ||||
▲ Show 20 Lines • Show All 667 Lines • Show Last 20 Lines |