summaryrefslogtreecommitdiff
path: root/mk/misc/uac-manifest.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/misc/uac-manifest.mk')
-rw-r--r--mk/misc/uac-manifest.mk39
1 files changed, 39 insertions, 0 deletions
diff --git a/mk/misc/uac-manifest.mk b/mk/misc/uac-manifest.mk
new file mode 100644
index 00000000000..4900fa62b5b
--- /dev/null
+++ b/mk/misc/uac-manifest.mk
@@ -0,0 +1,39 @@
+# $NetBSD: uac-manifest.mk,v 1.1 2013/02/10 13:04:08 obache Exp $
+#
+# This file generate 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 as requireing
+# privileged permissions by default (UAC).
+# If not, it must be specified with manifest file, or it will be failed to
+# execute as "Permission denied".
+#
+# Package-settable variables:
+#
+# UAC_REQD_EXECS
+# A list of files requireing 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 \ No newline at end of file