summaryrefslogtreecommitdiff
path: root/mk/plist.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/plist.mk')
-rw-r--r--mk/plist.mk659
1 files changed, 0 insertions, 659 deletions
diff --git a/mk/plist.mk b/mk/plist.mk
deleted file mode 100644
index 08256e94123..00000000000
--- a/mk/plist.mk
+++ /dev/null
@@ -1,659 +0,0 @@
-# $NetBSD: plist.mk,v 1.1.2.3 2005/02/25 14:46:51 tv Exp $
-#
-# PLIST generation logic, invoked from the "install" target in bsd.pkg.mk.
-# This file should only be ".include"d from bsd.pkg.mk.
-#
-# The following variables should be set before this is included:
-#
-## _PLIST_IGNORE_FILES (optional) - files to filter from final PLIST
-## GENERATE_PLIST (optional) - commands to generate static PLIST fragments
-## PKG_INSTALLATION_TYPE - "pkgviews" or "overwrite"
-## PLIST - filename for final PLIST
-## PLIST_SRC - source files for final PLIST
-## PLIST_SUBST - substitutions that should be made when transforming
-## PLIST_TYPE - "dynamic" or "static"
-## SHLIB_HANDLING - "YES" or "NO"
-## USE_LANGUAGES - if non-empty, implies shlib handling
-#
-# Targets defined:
-#
-## ${PLIST}
-## do-shlib-handling (internal only)
-## plist (convenience form of ${PLIST})
-## print-PLIST (user only)
-## show-shlib-type (user only)
-#
-
-.if ${PKG_INSTALLATION_TYPE} == "pkgviews"
-#
-# _PLIST_IGNORE_FILES basically mirrors the list of ignored files found
-# in pkg_views(1). It's used by the dynamic PLIST generator to skip
-# adding the named files to the PLIST.
-#
-_PLIST_IGNORE_FILES= +* # package metadata files
-_PLIST_IGNORE_FILES+= info/dir
-. if defined(INFO_DIR) && empty(INFO_DIR:Minfo)
-_PLIST_IGNORE_FILES+= ${INFO_DIR}/dir
-. endif
-_PLIST_IGNORE_FILES+= *[~\#] *.OLD *.orig *,v # scratch config files
-_PLIST_IGNORE_FILES+= ${PLIST_IGNORE_FILES}
-
-PKG_ARGS_INSTALL+= -U # don't update the pkgdb.byfile.db
-PKG_ARGS_BINPKG+= -E # create an empty views file in the binpkg
-.endif # PKG_INSTALLATION_TYPE
-
-BUILD_DEFS_FIXED+= _PLIST_IGNORE_FILES
-
-# Macro to print out the actual shared library type.
-.if !empty(USE_LANGUAGES)
-. if ${_OPSYS_SHLIB_TYPE} == "ELF/a.out"
-. if (${OBJECT_FMT} == "ELF" || ${OBJECT_FMT} == "a.out")
-_GET_SHLIB_TYPE= ${ECHO} '${OBJECT_FMT}' # speedup if already known
-. else
-_GET_SHLIB_TYPE=\
- @cd ${WRKDIR} && \
- sotype=none; \
- if [ "X${MKPIC}" != "Xno" -a "X${NOPIC}" = "X" ]; then \
- ${ECHO} "int main() { return(0); }" > a.$$$$.c; \
- ${SETENV} PATH=${PATH} \
- ${CC} ${CFLAGS} a.$$$$.c -o a.$$$$.out; \
- case `${FILE_CMD} a.$$$$.out` in \
- *ELF*dynamically*) \
- sotype=ELF ;; \
- *shared*library*|*dynamically*) \
- sotype="a.out" ;; \
- esac; \
- fi; \
- ${ECHO} "$$sotype"; \
- ${RM} -f a.$$$$.c a.$$$$.out
-. endif
-. else
-_GET_SHLIB_TYPE= ${ECHO} '${_OPSYS_SHLIB_TYPE}'
-. endif
-.endif
-_GET_SHLIB_TYPE?= ${ECHO} none
-
-# Not to be used by pkgsrc; available for human inspection only.
-show-shlib-type:
- @${_GET_SHLIB_TYPE}
-
-# Do handling of shared libs for two cases:
-#
-# SHLIB_PLIST_MODE=1: when first called via the ${PLIST} target,
-# update the PLIST to contain ELF symlink, run
-# ldconfig on a.out, etc. (used when called via
-# the ${PLIST} target). Will update ${PLIST}.
-# SHLIB_PLIST_MODE=0: when called via the real-su-install target,
-# actually generate symlinks for ELF, run ldconfig
-# for a.out, etc. Will not modify ${PLIST}.
-#
-# XXX This target could need some cleanup after it was ripped out of
-# real-su-install
-#
-_AOUT_AWK = \
- BEGIN { linkc = 1 } \
- /^@/ { lines[NR] = $$0; next } \
- function libtool_release(lib) { \
- if (gsub("-[^-]+\\.so\\.", ".so.", lib)) { \
- if (system("${TEST} -h ${PREFIX}/" lib) == 0) { \
- rels[NR] = lib; \
- } \
- } \
- } \
- /.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+\.[0-9]+$$/ { \
- libtool_release($$0); \
- lines[NR] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- if (sub("-[^-]+\\.so$$", ".so")) { \
- links[linkc++] = $$0; \
- } \
- next \
- } \
- /.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+$$/ { \
- libtool_release($$0); \
- lines[NR] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- if (sub("-[^-]+\\.so$$", ".so")) { \
- links[linkc++] = $$0; \
- } \
- next \
- } \
- { lines[NR] = $$0 } \
- END { \
- for (i = 0 ; i <= linkc ; i++) \
- for (j = 1 ; j < NR ; j++) \
- if (lines[j] == links[i]) \
- lines[j] = "@comment " lines[j]; \
- if (${SHLIB_PLIST_MODE}) \
- for (i = 1 ; i <= NR ; i++) { \
- print lines[i]; \
- if (rels[i] != "") \
- print rels[i]; \
- } \
- }
-
-_DYLIB_AWK= \
- /^@/ { lines[NR] = $$0; next } \
- function libtool_release(lib) { \
- if (gsub("\\.so\\.", ".", lib) || gsub("\\.so$$", "", lib)) { \
- lib = lib ".dylib"; \
- if (system("${TEST} -h ${PREFIX}/" lib) == 0) { \
- rels[NR] = lib; \
- } \
- } \
- } \
- /.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+\.[0-9]+$$/ { \
- libtool_release($$0); \
- lines[NR] = $$0; \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- if (sub("-[^-]+\\.so$$", ".so")) { \
- links[linkc++] = $$0; \
- } \
- next \
- } \
- /.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+$$/ { \
- libtool_release($$0); \
- lines[NR] = $$0; \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- if (sub("-[^-]+\\.so$$", ".so")) { \
- links[linkc++] = $$0; \
- } \
- next \
- } \
- /.*\/lib[^\/]+\.so\.[0-9]+$$/ { \
- libtool_release($$0); \
- lines[NR] = $$0; \
- links[linkc++] = $$0; \
- sub("\\.[0-9]+$$", ""); \
- links[linkc++] = $$0; \
- if (sub("-[^-]+\\.so$$", ".so")) { \
- links[linkc++] = $$0; \
- } \
- next \
- } \
- /.*\/lib[^\/]+\.so$$/ { \
- lines[NR] = $$0; \
- if (system("${TEST} -f ${PREFIX}/" $$0) == 0) { \
- next; \
- } \
- libtool_release($$0); \
- links[linkc++] = $$0; \
- if (sub("-[^-]+\\.so$$", ".so")) { \
- links[linkc++] = $$0; \
- } \
- next \
- } \
- { lines[NR] = $$0 } \
- END { \
- for (i = 0 ; i <= linkc ; i++) \
- for (j = 1 ; j <= NR ; j++) \
- if (lines[j] == links[i]) \
- lines[j] = "@comment " lines[j]; \
- if (${SHLIB_PLIST_MODE}) \
- for (i = 1 ; i <= NR ; i++) { \
- print lines[i]; \
- if (rels[i] != "") { \
- print rels[i]; \
- cmd = "${LS} -l ${PREFIX}/" rels[i]; \
- cmd | getline tgt; \
- close(cmd); \
- gsub(".* ", "", tgt); \
- if (tgts[tgt] == "") { \
- tgts[tgt] = tgt; \
- if (index(tgt, "/") == 1) \
- print tgt; \
- else { \
- prefix=""; \
- if (match(rels[i], ".*/") != 0) \
- prefix=substr(rels[i],1,RLENGTH); \
- print prefix tgt; \
- } \
- } \
- } \
- } \
- }
-
-# Turn lib*.so.*, lib*.so into lib*.so. Drop duplicates.
-_AIXLIB_AWK= \
- /^@/ { lines[NR] = $$0; next } \
- /.*\/lib[^\/]+\.so(\.[0-9]+)*$$/ { \
- sub("(\\.[0-9]+)*$$", ""); \
- sub("\\.so$$", ".so"); \
- lines[NR] = $$0; \
- next \
- } \
- { lines[NR] = $$0 } \
- END { \
- nlibs = 0; \
- for (i = 1; i <= NR; i++) { \
- for (j = 0; j < nlibs; j++) { \
- if (libs[j] == lines[i]) \
- break; \
- } \
- if (j >= nlibs) \
- print lines[i]; \
- if (match(lines[i], ".*/lib[^/]+\\.a$$")) { \
- libs[nlibs] = lines[i]; \
- nlibs++; \
- } \
- } \
- }
-
-# XXX tv: should somehow be a variable, not a recursive target
-.PHONY: do-shlib-handling
-do-shlib-handling:
-.if ${SHLIB_HANDLING} == "YES"
- ${_PKG_SILENT}${_PKG_DEBUG} \
- sos=`${EGREP} -h '^.*/lib[^/]+\.so$$' ${PLIST} || ${TRUE}`; \
- if [ "$$sos" != "" ]; then \
- shlib_type=`${_GET_SHLIB_TYPE}`; \
- if [ "${SHLIB_PLIST_MODE}" = "0" ]; then \
- ${ECHO_MSG} "${_PKGSRC_IN}> [Automatic $$shlib_type shared object handling]"; \
- fi; \
- case "$$shlib_type" in \
- ELF) ;; \
- "a.out") \
- ${AWK} '${_AOUT_AWK}' <${PLIST} >${PLIST}.tmp ; \
- if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
- ${MV} ${PLIST}.tmp ${PLIST}; \
- else \
- ${RM} ${PLIST}.tmp ; \
- fi ; \
- cnt=`${EGREP} -c '^@exec[ ]*${LDCONFIG}$$' ${PLIST} || ${TRUE}`; \
- if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
- if [ $$cnt -eq 0 ]; then \
- ${ECHO} "@exec ${LDCONFIG}" >> ${PLIST}; \
- ${ECHO} "@unexec ${LDCONFIG}" >> ${PLIST}; \
- fi \
- fi; \
- if [ "${SHLIB_PLIST_MODE}" = "0" ]; then \
- if [ "${PKG_VERBOSE}" != "" ]; then \
- ${ECHO_MSG} "$$sos"; \
- ${ECHO_MSG} "Running ${LDCONFIG}"; \
- fi; \
- ${LDCONFIG} || ${TRUE}; \
- fi \
- ;; \
- "dylib") \
- ${AWK} '${_DYLIB_AWK}' <${PLIST} >${PLIST}.tmp && \
- if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
- ${MV} ${PLIST}.tmp ${PLIST}; \
- else \
- ${RM} ${PLIST}.tmp ; \
- fi ; \
- ;; \
- "aixlib") \
- ${AWK} '${_AIXLIB_AWK}' <${PLIST} >${PLIST}.tmp && \
- ${MV} ${PLIST}.tmp ${PLIST}; \
- ;; \
- "*") \
- if [ "${SHLIB_PLIST_MODE}" = "0" ]; then \
- ${ECHO_MSG} "No shared libraries for ${MACHINE_ARCH}"; \
- fi ; \
- if [ "${SHLIB_PLIST_MODE}" = "1" ]; then \
- for so in $$sos; do \
- if [ X"${PKG_VERBOSE}" != X"" ]; then \
- ${ECHO_MSG} >&2 "Ignoring $$so"; \
- fi; \
- ${SED} -e "s;^$$so$$;@comment No shared objects - &;" \
- ${PLIST} >${PLIST}.tmp && ${MV} ${PLIST}.tmp ${PLIST}; \
- done; \
- fi ; \
- ;; \
- esac; \
- fi
-.endif # SHLIB_HANDLING == "YES"
-
-#
-# print-PLIST: Automatic PLIST generation
-# - files & symlinks first
-# - @dirrm statements last
-# - empty directories are handled properly
-# - dirs from mtree files are excluded
-# - substitute for platform or package specifics substrings
-#
-# Usage:
-# - make install
-# - make print-PLIST | brain >PLIST
-#
-
-_PRINT_PLIST_AWK_SUBST={ \
- gsub(/${OPSYS}/, "$${OPSYS}"); \
- gsub(/${OS_VERSION:S/./\./g}/, "$${OS_VERSION}"); \
- gsub(/${MACHINE_GNU_PLATFORM}/, "$${MACHINE_GNU_PLATFORM}"); \
- gsub(/${MACHINE_ARCH}/, "$${MACHINE_ARCH}"); \
- gsub(/${MACHINE_GNU_ARCH}/, "$${MACHINE_GNU_ARCH}");
-.if !empty(LOWER_VENDOR)
-_PRINT_PLIST_AWK_SUBST+= gsub(/${LOWER_VENDOR}/, "$${LOWER_VENDOR}");
-.endif
-_PRINT_PLIST_AWK_SUBST+= \
- gsub(/${LOWER_OS_VERSION:S/./\./g}/, "$${LOWER_OS_VERSION}"); \
- gsub(/${LOWER_OPSYS}/, "$${LOWER_OPSYS}"); \
- gsub(/${PKGNAME_NOREV}/, "$${PKGNAME}"); \
- gsub(/${PKGVERSION:S/./\./g:C/nb[0-9]*$$//}/, "$${PKGVERSION}");\
- gsub(/${PKGLOCALEDIR}\/locale/, "$${PKGLOCALEDIR}/locale"); \
-}
-
-_PRINT_PLIST_AWK_IGNORE= ($$0 ~ /emul\/linux\/proc/)
-_PRINT_PLIST_AWK_IGNORE+= || ($$0 ~ /^info\/dir$$/)
-.if defined(INFO_DIR) && empty(INFO_DIR:Minfo)
-_PRINT_PLIST_AWK_IGNORE+= || ($$0 ~ /^${INFO_DIR:S|/|\\/|g}\/dir$$/)
-.endif
-.if !empty(INFO_FILES)
-. for _f_ in ${INFO_FILES}
-_PRINT_PLIST_AWK_IGNORE+= || ($$0 ~ /^${INFO_DIR:S|/|\\/|g}\/${_f_:S|+|\+|g}(-[0-9]+)?(\.gz)?$$/)
-. endfor
-.endif
-
-# Common (system) directories not to generate @dirrm statements for
-# Reads MTREE_FILE and generate awk statements that will
-# sort out which directories NOT to include into the PLIST @dirrm list
-.if make(print-PLIST)
-_PRINT_PLIST_COMMON_DIRS!= ${AWK} 'BEGIN { \
- i=0; \
- stack[i]="${PREFIX}" ; \
- cwd=""; \
- } \
- ! ( /^\// || /^\#/ || /^$$/ ) { \
- if ( $$1 == ".." ){ \
- i=i-1; \
- cwd = stack[i]; \
- } else if ( $$1 == "." ){ \
- } else { \
- stack[i] = cwd ; \
- if ( i == 0 ){ \
- cwd = $$1 ; \
- } else { \
- cwd = cwd "\\/" $$1 ; \
- } \
- print "/^" cwd "$$$$/ { next; }"; \
- i=i+1 ; \
- } \
- } \
- END { print "{ print $$$$0; }"; } \
- ' <${MTREE_FILE}
-.endif
-
-# scan $PREFIX for any files/dirs modified since the package was extracted
-# will emit "@exec mkdir"-statements for empty directories
-# XXX will fail for data files that were copied using tar (e.g. emacs)!
-# XXX should check $LOCALBASE and $X11BASE, and add @cwd statements
-
-_PRINT_PLIST_FILES_CMD= \
- ${FIND} ${PREFIX}/. -xdev -newer ${extract_COOKIE} \! -type d -print
-_PRINT_PLIST_DIRS_CMD= \
- ${FIND} ${PREFIX}/. -xdev -newer ${extract_COOKIE} -type d -print
-_PRINT_LA_LIBNAMES= ${SETENV} ECHO=${ECHO:Q} GREP=${GREP:Q} SORT=${SORT:Q} \
- ${SH} ${.CURDIR}/../../mk/scripts/print-la-libnames
-
-.if !empty(LIBTOOLIZE_PLIST:M[yY][eE][sS])
-_PRINT_PLIST_LIBTOOLIZE_FILTER?= \
- ( \
- if ${TEST} -d ${WRKDIR}; then \
- tmpdir="${WRKDIR}"; \
- else \
- tmpdir="$${TMPDIR-/tmp}"; \
- fi; \
- fileslist="$$tmpdir/print.plist.files.$$$$"; \
- libslist="$$tmpdir/print.plist.libs.$$$$"; \
- while read file; do \
- case $$file in \
- *.la) \
- ${_PRINT_LA_LIBNAMES} $$file >> $$libslist; \
- ;; \
- esac; \
- ${ECHO} "$$file"; \
- done > $$fileslist; \
- if ${TEST} -f "$$libslist"; then \
- ${GREP} -hvxF "`${SORT} -u $$libslist`" "$$fileslist"; \
- else \
- ${CAT} "$$fileslist"; \
- fi; \
- ${RM} -f "$$fileslist" "$$libslist"; \
- )
-.else
-_PRINT_PLIST_LIBTOOLIZE_FILTER?= ${CAT}
-.endif
-
-.PHONY: print-PLIST
-print-PLIST:
- ${_PKG_SILENT}${_PKG_DEBUG}\
- ${ECHO} '@comment $$'NetBSD'$$'
- ${_PKG_SILENT}${_PKG_DEBUG}\
- shlib_type=`${_GET_SHLIB_TYPE}`; \
- case $$shlib_type in \
- "a.out") genlinks=1 ;; \
- *) genlinks=0 ;; \
- esac; \
- ${_PRINT_PLIST_FILES_CMD} \
- | ${_PRINT_PLIST_LIBTOOLIZE_FILTER} \
- | ${SORT} \
- | ${AWK} ' \
- { sub("${PREFIX}/\\./", ""); } \
- ${_PRINT_PLIST_AWK_IGNORE} { next; } \
- ${_PRINT_PLIST_AWK_SUBST} \
- /^@/ { print $$0; next } \
- /.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+\.[0-9]+$$/ { \
- print $$0; \
- sub("\\.[0-9]+$$", ""); \
- if ('$$genlinks') print $$0; \
- sub("\\.[0-9]+$$", ""); \
- if ('$$genlinks') print $$0; \
- sub("\\.[0-9]+$$", ""); \
- if ('$$genlinks') print $$0; \
- next; \
- } \
- /.*\/lib[^\/]+\.so\.[0-9]+\.[0-9]+$$/ { \
- print $$0; \
- sub("\\.[0-9]+$$", ""); \
- if ('$$genlinks') print $$0; \
- sub("\\.[0-9]+$$", ""); \
- if ('$$genlinks') print $$0; \
- next; \
- } \
- ${PRINT_PLIST_AWK} \
- { print $$0; }'
- ${_PKG_SILENT}${_PKG_DEBUG}\
- for i in `${_PRINT_PLIST_DIRS_CMD} \
- | ${SORT} -r \
- | ${AWK} ' \
- /emul\/linux\/proc/ { next; } \
- /${PREFIX:S|/|\\/|g}\/\.$$/ { next; } \
- { sub("${PREFIX}/\\\\./", ""); } \
- ${_PRINT_PLIST_COMMON_DIRS}'` ; \
- do \
- if [ `${LS} -la ${PREFIX}/$$i | ${WC} -l` = 3 ]; then \
- ${ECHO} @exec \$${MKDIR} %D/$$i | ${AWK} ' \
- ${PRINT_PLIST_AWK} \
- { print $$0; }' ; \
- fi ; \
- ${ECHO} @dirrm $$i | ${AWK} ' \
- ${PRINT_PLIST_AWK} \
- { print $$0; }' ; \
- done \
- | ${AWK} '${_PRINT_PLIST_AWK_SUBST} { print $$0; }'
-
-#
-# generate ${PLIST} from ${PLIST_SRC} by:
-# - substituting for PLIST_SUBST entries
-# - fixing list of man-pages according to MANZ, MANINSTALL.
-# - adding symlinks for shared libs (ELF) or ldconfig calls (a.out).
-#
-
-# plist awk pattern-action statement to handle MANINSTALL
-_PLIST_AWK_MANINSTALL= \
-{ \
- if (!"${MANINSTALL:Mmaninstall}" && \
- match($$0, "^([^/]*/)*man/([^/]*/)?man[1-9ln]") ) { \
- next; \
- } \
- if (!"${MANINSTALL:Mcatinstall}" && \
- match($$0, "^([^/]*/)*man/([^/]*/)?cat[1-9ln]") ) { \
- next; \
- } \
-}
-
-# plist awk pattern-action statement to strip '.gz' from man
-# entries
-_PLIST_AWK_STRIP_MANZ= \
-/^([^\/]*\/)*man\/([^\/]*\/)?(man[1-9ln]\/.*[1-9ln]|cat[1-9ln]\/.*0)\.gz$$/ { \
- $$0 = substr($$0, 1, length($$0) - 3); \
-}
-
-# plist awk pattern-action statement to add '.gz' to man entries
-_PLIST_AWK_ADD_MANZ= \
-/^([^\/]*\/)*man\/([^\/]*\/)?(man[1-9ln]\/.*[1-9ln]|cat[1-9ln]\/.*0)$$/ { \
- $$0 = $$0 ".gz"; \
-}
-
-# plist awk pattern-action statement to handle PLIST_SUBST substitutions
-# BEWARE: the awk script quote is closed and reopened around the
-# string argument of gsub() calls so historic quoting semantic of
-# PLIST_SUBST is preserved.
-# XXX `_str_quote_{start,end}_' is a gross hack to work around weird word
-# splitting.
-_PLIST_AWK_SUBST= { ${PLIST_SUBST:S|=|\\}/,_str_quote_start_|:S|$|_str_quote_end_);|:S|^|gsub(/\\\$\\{|:S|_str_quote_start_|"'|g:S|_str_quote_end_|'"|g} }
-
-# plist awk pattern-action statement to rewrite "imake installed" catman pages
-# as plain manpages.
-_PLIST_AWK_IMAKE_MAN= \
-/^([^\/]*\/)*man\/([^\/]*\/)?cat[1-9ln]\/.*0$$/ { \
- n = match($$0, "/cat[1-9ln]"); \
- sect = sprintf(".%s", substr($$0, n + 4, 1)); \
- sub("/cat", "/man"); \
- sub("\\.0$$", sect); \
-}
-
-# plist awk pattern-action statement to handle info files:
-# generate list of files matching
-# ${PREFIX}/${INFO_DIR}/filename(-[0-9]+)?(.gz)?
-# for `filename' being each word of INFO_FILES in turn.
-# Notes:
-# - first the filenames matching ${PREFIX}/${INFO_DIR}/filename*
-# are generated with ls then they are filtered by the exact pattern.
-# - ${PREFIX}/${INFO_DIR}/filename is single quoted and single quote
-# escaped
-# XXX When all info file entries will be removed from PLIST files
-# the non-BEGIN pattern-action statements generated below will be retired.
-_PLIST_AWK_INFO=
-.if ${PLIST_TYPE} == "static"
-. if !empty(INFO_FILES)
-. for _f_ in ${INFO_FILES}
-_PLIST_AWK_INFO+= \
-BEGIN { \
- cmd="${_f_}"; gsub("'\''", "\\'\''", cmd); \
- sub("^", "${LS} '\''${PREFIX}/${INFO_DIR}/", cmd); \
- sub("$$", "'\''*", cmd); \
- while ((cmd | getline l) > 0) { \
- if (match(l, ".*/${_f_:S|+|\\\+|g}(-[0-9]+)?(\\.gz)?$$")) { \
- sub("^${PREFIX}/", "", l); \
- print l; \
- } \
- } \
- close(cmd); \
-} \
-/^${INFO_DIR:S|/|\\/|g}\/${_f_}(-[0-9]+)?$$/ { next; }
-. endfor
-. endif
-.endif
-
-# plist awk pattern-action statement to expand libtool archives into
-# shared and/or static libraries.
-#
-.if ${PLIST_TYPE} == "dynamic"
-_PLIST_AWK_LIBTOOL?= # empty
-.elif empty(LIBTOOLIZE_PLIST:M[yY][eE][sS])
-BROKEN+= "USE_LIBTOOL requires LIBTOOLIZE_PLIST=yes for proper PLIST generation"
-.else
-_PLIST_AWK_LIBTOOL?= \
-/^[^@].*\.la$$/ { \
- system("cd ${PREFIX} && ${_PRINT_LA_LIBNAMES} " $$0) \
-}
-.endif
-
-# _PLIST_AWK_SCRIPT hold the complete awk script for plist target.
-#
-_PLIST_AWK_SCRIPT= '
-# Do the substitutions
-# See comments above about _PLIST_AWK_SUBST: it contains single quotes!
-# So _PLIST_AWK_SCRIPT is intended to be single quoted.
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_SUBST}
-# Generated entries for info files
-.if !empty(INFO_FILES)
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_INFO}
-.endif
-# Expand libtool archives
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_LIBTOOL}
-# Strip the '.gz' suffixes on man entries
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_STRIP_MANZ}
-# Deal with MANINSTALL and man entries
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_MANINSTALL}
-# Deal with "imake installed" catman pages
-.if defined(USE_IMAKE) && ${_PREFORMATTED_MAN_DIR} == "man"
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_IMAKE_MAN}
-.endif
-# Add '.gz' suffixes on man entries if needed
-.if defined(MANZ)
-_PLIST_AWK_SCRIPT+= ${_PLIST_AWK_ADD_MANZ}
-.endif
-# Print the entry
-_PLIST_AWK_SCRIPT+= { print $$0; }
-#
-_PLIST_AWK_SCRIPT+= '
-
-# GENERATE_PLIST is a sequence of commands, terminating in a semicolon,
-# that outputs contents for a PLIST to stdout and is appended to
-# the contents of ${PLIST_SRC}.
-#
-GENERATE_PLIST?= ${TRUE};
-.if ${PLIST_TYPE} == "dynamic"
-_PLIST_IGNORE_CMD= \
- ( while read i; do \
- ignore=no; \
- for p in ${_PLIST_IGNORE_FILES}; do \
- case "$$i" in \
- $$p) ignore=yes; break ;; \
- esac; \
- done; \
- [ "$$ignore" = "yes" ] || ${ECHO} "$$i"; \
- done )
-_GENERATE_PLIST= \
- ${FIND} ${PREFIX} \! -type d -print | ${SORT} | \
- ${SED} -e "s|^${PREFIX}/||" | \
- ${_PLIST_IGNORE_CMD}; \
- ${FIND} ${PREFIX} -type d -print | ${SORT} -r | \
- ${GREP} -v "^${PREFIX}$$" | \
- ${_PLIST_IGNORE_CMD} | \
- ${SED} -e "s|^${PREFIX}/|@unexec ${RMDIR} -p %D/|" \
- -e "s,$$, 2>/dev/null || ${TRUE},";
-.else
-_GENERATE_PLIST= ${CAT} ${PLIST_SRC}; ${GENERATE_PLIST}
-.endif
-
-.if ${PLIST_TYPE} == "static"
-${PLIST}: ${PLIST_SRC}
-.endif
-${PLIST}:
- ${_PKG_SILENT}${_PKG_DEBUG} \
- { ${_GENERATE_PLIST} } | ${AWK} ${_PLIST_AWK_SCRIPT} \
- > ${PLIST}; \
- ${MAKE} ${MAKEFLAGS} do-shlib-handling \
- SHLIB_PLIST_MODE=1