pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk mk/subst.mk: document variables used in the file, r...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a8b5dfbd8f3b
branches:  trunk
changeset: 400952:a8b5dfbd8f3b
user:      rillig <rillig%pkgsrc.org@localhost>
date:      Sun Sep 08 09:06:06 2019 +0000

description:
mk/subst.mk: document variables used in the file, remove SUBST_TARGETS

All variables that are used or defined in the file are now listed in the
_VARGROUPS section.

The "is text file" command variable has been renamed since pkglint
thought the former variable name would specify a filename, not a shell
command.

The "is text file" command has been rewritten to only rely on tr(1)
instead of both tr(1) and wc(1). This makes it both simpler and maybe
also a little faster, since the file only has to be read once.

The SUBST_TARGETS variable has been removed since it is used nowhere
else. To get the list of all subst targets (should that ever be
necessary), use the expression ${SUBST_CLASSES:S,^,subst-,}.

diffstat:

 mk/subst.mk |  26 +++++++++++---------------
 1 files changed, 11 insertions(+), 15 deletions(-)

diffs (64 lines):

diff -r 2c89bcab0bc4 -r a8b5dfbd8f3b mk/subst.mk
--- a/mk/subst.mk       Sun Sep 08 09:01:04 2019 +0000
+++ b/mk/subst.mk       Sun Sep 08 09:06:06 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: subst.mk,v 1.60 2019/04/28 12:31:15 rillig Exp $
+# $NetBSD: subst.mk,v 1.61 2019/09/08 09:06:06 rillig Exp $
 #
 # The subst framework replaces text in one or more files in the WRKSRC
 # directory. Packages can define several ``classes'' of replacements.
@@ -73,19 +73,17 @@
 _PKG_VARS.subst+=      ${pv}.${c}
 .  endfor
 .endfor
+_DEF_VARS.subst=       ECHO_SUBST_MSG
+_USE_VARS.subst=       WRKDIR WRKSRC
+_IGN_VARS.subst=       _SUBST_IS_TEXT_FILE_CMD
 _SORTED_VARS.subst=    SUBST_CLASSES SUBST_FILES.* SUBST_VARS.*
 _LISTED_VARS.subst=    SUBST_SED.* SUBST_FILTER_CMD.*
 
 ECHO_SUBST_MSG?=       ${STEP_MSG}
 
-# _SUBST_IS_TEXT_FILE returns 0 if $${file} is a text file.
-_SUBST_IS_TEXT_FILE?= \
-       { nchars=`${WC} -c < "$$file"`;                                 \
-         notnull=`LC_ALL=C ${TR} -d '\\0' < "$$file" | ${WC} -c`;      \
-         [ "$$nchars" = "$$notnull" ] || ${FALSE} ;                    \
-       }
-
-_SUBST_BACKUP_SUFFIX=  .subst.sav
+# _SUBST_IS_TEXT_FILE_CMD returns 0 if $$file is a text file.
+_SUBST_IS_TEXT_FILE_CMD?= \
+       [ -z "`${TR} -cd '\\0' < "$$file" | ${TR} '\\0' 'x'`" ]
 
 .for _class_ in ${SUBST_CLASSES}
 _SUBST_COOKIE.${_class_}=      ${WRKDIR}/.subst_${_class_}_done
@@ -103,13 +101,11 @@
 SUBST_SKIP_TEXT_CHECK.${_class_}?=     no
 
 .if !empty(SUBST_SKIP_TEXT_CHECK.${_class_}:M[Yy][Ee][Ss])
-_SUBST_IS_TEXT_FILE.${_class_}=        ${TRUE}
+_SUBST_IS_TEXT_FILE_CMD.${_class_}=    ${TRUE}
 .else
-_SUBST_IS_TEXT_FILE.${_class_}=        ${_SUBST_IS_TEXT_FILE}
+_SUBST_IS_TEXT_FILE_CMD.${_class_}=    ${_SUBST_IS_TEXT_FILE_CMD}
 .endif
 
-SUBST_TARGETS+=                        subst-${_class_}
-
 .  if defined(SUBST_STAGE.${_class_})
 ${SUBST_STAGE.${_class_}}: subst-${_class_}
 .  else
@@ -128,10 +124,10 @@
        files=${SUBST_FILES.${_class_}:Q};                              \
        for file in $$files; do                                         \
                case $$file in /*) ;; *) file="./$$file";; esac;        \
-               tmpfile="$$file"${_SUBST_BACKUP_SUFFIX:Q};              \
+               tmpfile="$$file.subst.sav";                             \
                if [ ! -f "$$file" ]; then                              \
                        ${WARNING_MSG} "[subst.mk:${_class_}] Ignoring non-existent file \"$$file\"."; \
-               elif ${_SUBST_IS_TEXT_FILE.${_class_}}; then            \
+               elif ${_SUBST_IS_TEXT_FILE_CMD.${_class_}}; then        \
                        ${SUBST_FILTER_CMD.${_class_}}                  \
                        < "$$file"                                      \
                        > "$$tmpfile";                                  \



Home | Main Index | Thread Index | Old Index