Changeset View
Changeset View
Standalone View
Standalone View
bsd.port.mk
Context not available. | |||||
.else | .else | ||||
# Look for ${PATCH_WRKSRC}/.../*.orig files, and (re-)create | # Look for files named "*.orig" under ${PATCH_WRKSRC} and (re-)generate | ||||
# ${FILEDIR}/patch-* files from them. | # ${FILESDIR}/patch-* files from them. By default, '_' (underscore) is | ||||
# used to replace path separators in patch file names; it can be set to | |||||
# something else via PATCH_PATH_SEPARATOR variable (note that only [-+_] | |||||
# characters are allowed). | |||||
# | |||||
# If a file name happens to contain character which is also a separator | |||||
# replacement character, it will be doubled in the resulting patch name. | |||||
# | |||||
# To minimize gratuitous patch renames, newly generated patches will be | |||||
# written under existing file names if they use any of the allowed path | |||||
# separators ([-+_]) or legacy double underscore (__). | |||||
.if !target(makepatch) | .if !target(makepatch) | ||||
PATCH_PATH_SEPARATOR?= _ | |||||
makepatch: | makepatch: | ||||
.if empty(PATCH_PATH_SEPARATOR) || ${PATCH_PATH_SEPARATOR:C/[-+_]//} | |||||
@${ECHO_MSG} "Error (${.TARGET}): PATCH_PATH_SEPARATOR must be one of the [-+_] characters." | |||||
@${FALSE} | |||||
.endif | |||||
@${MKDIR} ${FILESDIR} | @${MKDIR} ${FILESDIR} | ||||
@(cd ${PATCH_WRKSRC}; \ | @(cd ${PATCH_WRKSRC}; \ | ||||
for i in `find . -type f -name '*.orig'`; do \ | for f in `${FIND} -s . -type f -name '*.orig'`; do \ | ||||
ORG=$$i; \ | ORIG=$${f#./}; \ | ||||
NEW=$${i%.orig}; \ | NEW=$${ORIG%.orig}; \ | ||||
cmp -s $${ORG} $${NEW} && continue; \ | cmp -s $${ORIG} $${NEW} && continue; \ | ||||
OUT=${FILESDIR}`${ECHO} $${NEW} | \ | ! for _lps in `${ECHO} _ - + | ${SED} -e \ | ||||
${SED} -e 's|/|__|g' \ | 's|${PATCH_PATH_SEPARATOR}|__|'`; do \ | ||||
-e 's|^\.__|/patch-|'`; \ | PATCH=`${ECHO} $${NEW} | ${SED} -e "s|/|$${_lps}|g"`; \ | ||||
${ECHO} ${DIFF} -ud $${ORG} $${NEW} '>' $${OUT}; \ | test -f "${FILESDIR}/patch-$${PATCH}" && break; \ | ||||
${DIFF} -ud $${ORG} $${NEW} > $${OUT} || ${TRUE}; \ | done || ${ECHO} $${_SEEN} | ${GREP} -q /$${PATCH} && { \ | ||||
PATCH=`${ECHO} $${NEW} | ${SED} -e \ | |||||
's|${PATCH_PATH_SEPARATOR}|&&|g' -e \ | |||||
's|/|${PATCH_PATH_SEPARATOR}|g'`; \ | |||||
_SEEN=$${_SEEN}/$${PATCH}; \ | |||||
}; \ | |||||
OUT=${FILESDIR}/patch-$${PATCH}; \ | |||||
${ECHO} ${DIFF} -udp $${ORIG} $${NEW} '>' $${OUT}; \ | |||||
antoine: I don't like diff -u for Makefiles, it's ugly | |||||
antoineUnsubmitted Not Done Inline Actionsi can't edit my comment, i meant -p antoine: i can't edit my comment, i meant -p | |||||
TZ=UTC ${DIFF} -udp $${ORIG} $${NEW} | ${SED} -e \ | |||||
'/^---/s|\.[0-9]* +0000$$| UTC|' -e \ | |||||
'/^+++/s|\([[:blank:]][-0-9:.+]*\)*$$||' \ | |||||
> $${OUT} || ${TRUE}; \ | |||||
done \ | done \ | ||||
) | ) | ||||
.endif | .endif | ||||
Context not available. |
I don't like diff -u for Makefiles, it's ugly