pkgsrc/mk/misc/uac-manifest.mk
2013-08-31 20:54:07 +00:00

40 lines
No EOL
1.3 KiB
Makefile

# $NetBSD: uac-manifest.mk,v 1.2 2013/08/31 20:54:07 rillig Exp $
#
# This file generates manifest files for Windows.
#
# For Windows Vista or later, executable files including special keywords
# (install, update, patch, and so on) in its name are expected to require
# privileged permissions by default (UAC). If not, it must be specified
# with a manifest file, or it will fail to execute with a "Permission
# denied" error message.
#
# Package-settable variables:
#
# UAC_REQD_EXECS
# A list of files requiring manifest file for UAC.
# Paths are relative to PREFIX.
#
# Default value: not defined
#
GENERATE_PLIST+= ${UAC_MANIFEST_GENERATE_PLIST}
UAC_MANIFEST_GENERATE_PLIST= \
${ECHO} "@comment The following lines are automatically generated." && \
( cd ${DESTDIR}${PREFIX}; \
for file in ${UAC_REQD_EXECS}; do \
${TEST} $${file} -ef $${file}.exe && file=$${file}.exe; \
${ECHO} $${file}.manifest; \
done)
.PHONY: generate-uac-manifests
post-install: generate-uac-manifests
generate-uac-manifests:
.for file in ${UAC_REQD_EXECS}
${RUN} progname=`basename ${file} .exe`; \
filename=${file}; \
cd ${DESTDIR}${PREFIX}; \
${TEST} ${file} -ef ${file}.exe && filename=${file}.exe; \
${SED} -e s,@PKGNAME@,${PKGBASE}, -e s,@PROGNAME@,$${progname}, \
${PKGSRCDIR}/mk/misc/uac-manifest \
> $${filename}.manifest
.endfor