Changeset View
Changeset View
Standalone View
Standalone View
Mk/Uses/uniquefiles.mk
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | |||||
UNIQUE_PREFIX?= ${PKGNAMEPREFIX} | UNIQUE_PREFIX?= ${PKGNAMEPREFIX} | ||||
UNIQUE_SUFFIX?= ${PKGNAMESUFFIX} | UNIQUE_SUFFIX?= ${PKGNAMESUFFIX} | ||||
UNIQUE_PREFIX_FILES?= # empty | UNIQUE_PREFIX_FILES?= # empty | ||||
UNIQUE_SUFFIX_FILES?= # empty | UNIQUE_SUFFIX_FILES?= # empty | ||||
UNIQUE_SUFFIX_TYPES+= SUFFIX | UNIQUE_SUFFIX_TYPES+= SUFFIX | ||||
.if ${uniquefiles_ARGS:Mdirs} | . if ${uniquefiles_ARGS:Mdirs} | ||||
DOCSDIR= ${PREFIX}/share/doc/${UNIQUE_PREFIX}${PORTNAME} | DOCSDIR= ${PREFIX}/share/doc/${UNIQUE_PREFIX}${PORTNAME} | ||||
EXAMPLESDIR= ${PREFIX}/share/examples/${UNIQUE_PREFIX}${PORTNAME} | EXAMPLESDIR= ${PREFIX}/share/examples/${UNIQUE_PREFIX}${PORTNAME} | ||||
DATADIR= ${PREFIX}/share/${UNIQUE_PREFIX}${PORTNAME} | DATADIR= ${PREFIX}/share/${UNIQUE_PREFIX}${PORTNAME} | ||||
WWWDIR= ${PREFIX}/www/${UNIQUE_PREFIX}${PORTNAME} | WWWDIR= ${PREFIX}/www/${UNIQUE_PREFIX}${PORTNAME} | ||||
ETCDIR= ${PREFIX}/etc/${UNIQUE_PREFIX}${PORTNAME} | ETCDIR= ${PREFIX}/etc/${UNIQUE_PREFIX}${PORTNAME} | ||||
.endif | . endif | ||||
UNIQUE_DEFAULT_LINKS?= no | UNIQUE_DEFAULT_LINKS?= no | ||||
UNIQUE_FIND_PREFIX_FILES?= # empty | UNIQUE_FIND_PREFIX_FILES?= # empty | ||||
UNIQUE_FIND_SUFFIX_FILES?= # empty | UNIQUE_FIND_SUFFIX_FILES?= # empty | ||||
_USES_POST+= uniquefiles | _USES_POST+= uniquefiles | ||||
.endif # _INCLUDE_USES_UNIQUEFILES_MK | .endif # _INCLUDE_USES_UNIQUEFILES_MK | ||||
.if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_UNIQUEFILES_POST_MK) | .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_UNIQUEFILES_POST_MK) | ||||
_INCLUDE_USES_UNIQUEFILES_POST_MK= yes | _INCLUDE_USES_UNIQUEFILES_POST_MK= yes | ||||
_UNIQUEPKGLIST= ${WRKDIR}/.PLIST.uniquefiles | _UNIQUEPKGLIST= ${WRKDIR}/.PLIST.uniquefiles | ||||
.if ${UNIQUE_DEFAULT_LINKS} == yes | . if ${UNIQUE_DEFAULT_LINKS} == yes | ||||
_DO_CONDITIONAL_SYMLINK= \ | _DO_CONDITIONAL_SYMLINK= \ | ||||
if [ ! -e ${STAGEDIR}${PREFIX}/$${fname} -a ! -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | if [ ! -e ${STAGEDIR}${PREFIX}/$${fname} -a ! -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | ||||
${ECHO_MSG} "Link: @$${fname} --> $${newf}"; \ | ${ECHO_MSG} "Link: @$${fname} --> $${newf}"; \ | ||||
${RLN} ${STAGEDIR}${PREFIX}/$${newf} ${STAGEDIR}${PREFIX}/$${fname}; \ | ${RLN} ${STAGEDIR}${PREFIX}/$${newf} ${STAGEDIR}${PREFIX}/$${fname}; \ | ||||
${ECHO_CMD} LINKED:$${newf}%%EXTRA_EXT%%:$${fname}%%EXTRA_EXT%% >> ${_UNIQUEPKGLIST}; \ | ${ECHO_CMD} LINKED:$${newf}%%EXTRA_EXT%%:$${fname}%%EXTRA_EXT%% >> ${_UNIQUEPKGLIST}; \ | ||||
fi | fi | ||||
.else | . else | ||||
# We are not symlinking the renamed binary. | # We are not symlinking the renamed binary. | ||||
_DO_CONDITIONAL_SYMLINK= ${DO_NADA} | _DO_CONDITIONAL_SYMLINK= ${DO_NADA} | ||||
.endif | . endif | ||||
_USES_stage+= 775:move-uniquefiles | _USES_stage+= 775:move-uniquefiles | ||||
move-uniquefiles: | move-uniquefiles: | ||||
.if ${UNIQUE_PREFIX_FILES} || ${UNIQUE_FIND_PREFIX_FILES} | . if ${UNIQUE_PREFIX_FILES} || ${UNIQUE_FIND_PREFIX_FILES} | ||||
@${ECHO_MSG} "===> Creating unique files: Move files needing PREFIX"; | @${ECHO_MSG} "===> Creating unique files: Move files needing PREFIX"; | ||||
.endif | . endif | ||||
.for entry in ${UNIQUE_PREFIX_FILES} | . for entry in ${UNIQUE_PREFIX_FILES} | ||||
@fname=${entry}; \ | @fname=${entry}; \ | ||||
if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | ||||
newf=$${fname%/*}/${UNIQUE_PREFIX}$${fname##*/} ; \ | newf=$${fname%/*}/${UNIQUE_PREFIX}$${fname##*/} ; \ | ||||
${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \ | ${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \ | ||||
${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ||||
${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ | ${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ | ||||
${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \ | ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \ | ||||
else \ | else \ | ||||
${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \ | ${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \ | ||||
${FALSE}; \ | ${FALSE}; \ | ||||
fi; | fi; | ||||
.endfor | . endfor | ||||
.if ${UNIQUE_FIND_PREFIX_FILES} | . if ${UNIQUE_FIND_PREFIX_FILES} | ||||
@for fname in `${UNIQUE_FIND_PREFIX_FILES}`; do \ | @for fname in `${UNIQUE_FIND_PREFIX_FILES}`; do \ | ||||
if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | ||||
newf=$${fname%/*}/${UNIQUE_PREFIX}$${fname##*/} ; \ | newf=$${fname%/*}/${UNIQUE_PREFIX}$${fname##*/} ; \ | ||||
${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \ | ${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \ | ||||
${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ||||
${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ | ${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \ | ||||
${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \ | ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \ | ||||
else \ | else \ | ||||
${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \ | ${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \ | ||||
${FALSE}; \ | ${FALSE}; \ | ||||
fi; \ | fi; \ | ||||
done; | done; | ||||
.endif | . endif | ||||
.for sufxtype in ${UNIQUE_SUFFIX_TYPES} | . for sufxtype in ${UNIQUE_SUFFIX_TYPES} | ||||
. if (defined(UNIQUE_${sufxtype}_FILES) && ${UNIQUE_${sufxtype}_FILES}) || \ | . if (defined(UNIQUE_${sufxtype}_FILES) && ${UNIQUE_${sufxtype}_FILES}) || \ | ||||
(defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES}) | (defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES}) | ||||
. if defined(UNIQUE_${sufxtype}_WITH_EXT) && ${UNIQUE_${sufxtype}_WITH_EXT} | . if defined(UNIQUE_${sufxtype}_WITH_EXT) && ${UNIQUE_${sufxtype}_WITH_EXT} | ||||
@${ECHO_MSG} "===> Creating unique files: Move ${sufxtype:S|SUFFIX_||} files needing SUFFIX"; | @${ECHO_MSG} "===> Creating unique files: Move ${sufxtype:S|SUFFIX_||} files needing SUFFIX"; | ||||
. else | . else | ||||
@${ECHO_MSG} "===> Creating unique files: Move files needing SUFFIX"; | @${ECHO_MSG} "===> Creating unique files: Move files needing SUFFIX"; | ||||
. endif | . endif | ||||
. endif | . endif | ||||
. for entry in ${UNIQUE_${sufxtype}_FILES} | . for entry in ${UNIQUE_${sufxtype}_FILES} | ||||
@fname=${entry}; \ | @fname=${entry}; \ | ||||
if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \ | if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \ | ||||
fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \ | fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \ | ||||
fi; \ | fi; \ | ||||
if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | ||||
ofname=$${fname##*/}; \ | ofname=$${fname##*/}; \ | ||||
newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \ | newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \ | ||||
${ECHO_MSG} "Move: $${fname} --> $${newf}"; \ | ${ECHO_MSG} "Move: $${fname} --> $${newf}"; \ | ||||
${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ||||
${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \ | ${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \ | ||||
${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \ | ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \ | ||||
else \ | else \ | ||||
${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \ | ${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \ | ||||
${FALSE}; \ | ${FALSE}; \ | ||||
fi; | fi; | ||||
. endfor | . endfor | ||||
. if defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES} | . if defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES} | ||||
@for fname in `${UNIQUE_FIND_${sufxtype}_FILES}`; do \ | @for fname in `${UNIQUE_FIND_${sufxtype}_FILES}`; do \ | ||||
if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \ | if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \ | ||||
fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \ | fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \ | ||||
fi; \ | fi; \ | ||||
if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \ | ||||
ofname=$${fname##*/}; \ | ofname=$${fname##*/}; \ | ||||
newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \ | newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \ | ||||
${ECHO_MSG} "Move: $${fname} --> $${newf}"; \ | ${ECHO_MSG} "Move: $${fname} --> $${newf}"; \ | ||||
${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \ | ||||
${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \ | ${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \ | ||||
${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \ | ${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \ | ||||
else \ | else \ | ||||
${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \ | ${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \ | ||||
${FALSE}; \ | ${FALSE}; \ | ||||
fi; \ | fi; \ | ||||
done; | done; | ||||
. endif | . endif | ||||
.endfor | . endfor | ||||
# Using .if exists(${_UNIQUEPKGPLIST} below instead of the sh test | # Using .if exists(${_UNIQUEPKGPLIST} below instead of the sh test | ||||
# does not work in poudriere. It works fine on the CLI, though... | # does not work in poudriere. It works fine on the CLI, though... | ||||
_USES_stage+= 950:move-uniquefiles-plist | _USES_stage+= 950:move-uniquefiles-plist | ||||
move-uniquefiles-plist: | move-uniquefiles-plist: | ||||
@if [ -e ${_UNIQUEPKGLIST} ]; then \ | @if [ -e ${_UNIQUEPKGLIST} ]; then \ | ||||
orgIFS=$$IFS; IFS=":"; while read command entry newentry; do \ | orgIFS=$$IFS; IFS=":"; while read command entry newentry; do \ | ||||
IFS=$$orgIFS; \ | IFS=$$orgIFS; \ | ||||
Show All 17 Lines |