aboutsummaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorMathieu Arnold <mat@FreeBSD.org>2018-01-28 08:25:06 +0000
committerMathieu Arnold <mat@FreeBSD.org>2018-01-28 08:25:06 +0000
commit1aecf7b3660adacfa99ecddec3bd5dc854bf74b0 (patch)
tree77e8c30dd6dbf00e9f1db35a56396d450a032557 /Mk
parent1dbd75825cb1cffcab772f287180a696d8ab1c7d (diff)
downloadports-1aecf7b3660adacfa99ecddec3bd5dc854bf74b0.tar.gz
ports-1aecf7b3660adacfa99ecddec3bd5dc854bf74b0.zip
Notes
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Scripts/check-desktop-entries.sh111
-rw-r--r--Mk/Scripts/desktop-categories.sh89
-rw-r--r--Mk/Scripts/install-desktop-entries.sh66
-rw-r--r--Mk/bsd.port.mk212
4 files changed, 296 insertions, 182 deletions
diff --git a/Mk/Scripts/check-desktop-entries.sh b/Mk/Scripts/check-desktop-entries.sh
new file mode 100644
index 000000000000..30025f985916
--- /dev/null
+++ b/Mk/Scripts/check-desktop-entries.sh
@@ -0,0 +1,111 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# MAINTAINER: portmgr@FreeBSD.org
+
+set -e
+
+. "${dp_SCRIPTSDIR}/functions.sh"
+
+validate_env dp_CURDIR dp_ECHO_CMD dp_ECHO_MSG dp_EXPR dp_GREP dp_PKGNAME \
+ dp_SED dp_TR dp_MAKE
+
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CHECK_DESKTOP_ENTRIES}" ] && set -x
+
+set -u
+
+# http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
+DESKTOP_CATEGORIES_MAIN='AudioVideo Audio Video Development Education Game
+Graphics Network Office Science Settings System Utility'
+DESKTOP_CATEGORIES_ADDITIONAL='Building Debugger IDE GUIDesigner Profiling
+RevisionControl Translation Calendar ContactManagement Database Dictionary
+Chart Email Finance FlowChart PDA ProjectManagement Presentation Spreadsheet
+WordProcessor 2DGraphics VectorGraphics RasterGraphics 3DGraphics Scanning OCR
+Photography Publishing Viewer TextTools DesktopSettings HardwareSettings
+Printing PackageManager Dialup InstantMessaging Chat IRCClient Feed
+FileTransfer HamRadio News P2P RemoteAccess Telephony TelephonyTools
+VideoConference WebBrowser WebDevelopment Midi Mixer Sequencer Tuner TV
+AudioVideoEditing Player Recorder DiscBurning ActionGame AdventureGame
+ArcadeGame BoardGame BlocksGame CardGame KidsGame LogicGame RolePlaying Shooter
+Simulation SportsGame StrategyGame Art Construction Music Languages
+ArtificialIntelligence Astronomy Biology Chemistry ComputerScience
+DataVisualization Economy Electricity Geography Geology Geoscience History
+Humanities ImageProcessing Literature Maps Math NumericalAnalysis
+MedicalSoftware Physics Robotics Spirituality Sports ParallelComputing
+Amusement Archiving Compression Electronics Emulator Engineering FileTools
+FileManager TerminalEmulator Filesystem Monitor Security Accessibility
+Calculator Clock TextEditor Documentation Adult Core KDE GNOME MATE XFCE GTK Qt
+Motif Java ConsoleOnly'
+DESKTOP_CATEGORIES_RESERVED='Screensaver TrayIcon Applet Shell'
+
+VALID_DESKTOP_CATEGORIES="${dp_VALID_DESKTOP_CATEGORIES} ${DESKTOP_CATEGORIES_MAIN} ${DESKTOP_CATEGORIES_ADDITIONAL} ${DESKTOP_CATEGORIES_RESERVED}"
+
+if [ "$(${dp_EXPR} $# % 6)" -ne 0 ]; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile error: the DESKTOP_ENTRIES list must contain one or more groups of 6 elements"
+ exit 1
+fi
+
+num=0
+
+while [ $# -ge 6 ]; do
+ num=$(${dp_EXPR} ${num} + 1)
+ entry="#${num}"
+
+ Name="${1}"
+ #Comment="${2}" # Not Used
+ Icon="${3}"
+ Exec="${4}"
+ Categories="${5}"
+ StartupNotify="${6}"
+
+ shift 6
+
+ if [ -n "${Exec}" ]; then
+ entry="${entry} (${Exec})"
+ elif [ -n "${Name}" ]; then
+ entry="${entry} (${Name})"
+ fi
+
+ if [ -z "${Name}" ]; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile error: in desktop entry ${entry}: field 1 (Name) is empty"
+ exit 1
+ fi
+
+ if ${dp_EXPR} '(' "${Icon}" : '.*\.xpm$' ')' '|' '(' "${Icon}" : '.*\.png$' ')' '|' '(' "${Icon}" : '.*\.svg$' ')' > /dev/null; then
+ if ! echo "${Icon}" | ${dp_GREP} -qe '^/' ; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile warning: in desktop entry ${entry}: field 3 (Icon) should be either absolute path or icon name without extension if installed icons follow Icon Theme Specification"
+ fi
+ fi
+
+ if [ -z "${Exec}" ]; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile error: in desktop entry ${entry}: field 4 (Exec) is empty"
+ exit 1
+ fi
+
+ if [ -n "${Categories}" ]; then
+ for c in $(${dp_ECHO_CMD} "${Categories}" | ${dp_TR} ';' ' '); do
+ if ! ${dp_ECHO_CMD} "${VALID_DESKTOP_CATEGORIES}" | ${dp_GREP} -wq "${c}"; then
+ ${dp_ECHO_CMD} "${dp_PKGNAME}: Makefile warning: in desktop entry ${entry}: category ${c} is not a valid desktop category"
+ fi
+ done
+
+ if ! ${dp_ECHO_CMD} "${Categories}" | ${dp_GREP} -Eq "$(${dp_ECHO_CMD} "${DESKTOP_CATEGORIES_MAIN}" | ${dp_SED} -E 's,[[:blank:]]+,\|,g')"; then
+ ${dp_ECHO_CMD} "${dp_PKGNAME}: Makefile warning: in desktop entry ${entry}: field 5 (Categories) must contain at least one main desktop category (make -VDESKTOP_CATEGORIES_MAIN)"
+ fi
+
+ if ! ${dp_EXPR} "${Categories}" : '.*;$' > /dev/null; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile error: in desktop entry ${entry}: field 5 (Categories) does not end with a semicolon"
+ exit 1
+ fi
+ else
+ if [ -z "$(cd "${dp_CURDIR}" && ${dp_MAKE} desktop-categories)" ]; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile error: in desktop entry ${entry}: field 5 (Categories) is empty and could not be deduced from the CATEGORIES variable"
+ exit 1
+ fi
+ fi
+
+ if [ "${StartupNotify}" != "true" ] && [ "${StartupNotify}" != "false" ] && [ -n "${StartupNotify}" ]; then
+ ${dp_ECHO_MSG} "${dp_PKGNAME}: Makefile error: in desktop entry ${entry}: field 6 (StartupNotify) is not \"true\", \"false\" or \"\"(empty)"
+ exit 1
+ fi
+done
diff --git a/Mk/Scripts/desktop-categories.sh b/Mk/Scripts/desktop-categories.sh
new file mode 100644
index 000000000000..7d5414b7ed12
--- /dev/null
+++ b/Mk/Scripts/desktop-categories.sh
@@ -0,0 +1,89 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# MAINTAINER: portmgr@FreeBSD.org
+
+set -e
+
+. "${dp_SCRIPTSDIR}/functions.sh"
+
+validate_env dp_CATEGORIES dp_SORT dp_TR dp_ECHO_CMD
+
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DESKTOP_CATEGORIES}" ] && set -x
+
+set -u
+
+categories=""
+for native_category in ${dp_CATEGORIES}; do
+ c=""
+ case ${native_category} in
+ accessibility) c="Utility Accessibility" ;;
+ archivers) c="Utility Archiving" ;;
+ astro) c="Education Science Astronomy" ;;
+ audio) c="AudioVideo Audio" ;;
+ benchmarks) c="System" ;;
+ biology) c="Education Science Biology" ;;
+ cad) c="Graphics Engineering" ;;
+ comms) c="Utility" ;;
+ converters) c="Utility" ;;
+ databases) c="Office Database" ;;
+ deskutils) c="Utility" ;;
+ devel) c="Development" ;;
+ dns) c="Network" ;;
+ elisp) c="Development" ;;
+ editors) c="Utility" ;;
+ emulators) c="System Emulator" ;;
+ finance) c="Office Finance" ;;
+ ftp) c="Network FileTransfer" ;;
+ games) c="Game" ;;
+ geography) c="Education Science Geography" ;;
+ gnome) c="GNOME GTK" ;;
+ graphics) c="Graphics" ;;
+ hamradio) c="HamRadio" ;;
+ haskell) c="Development" ;;
+ irc) c="Network IRCClient" ;;
+ java) c="Development Java" ;;
+ kde) c="KDE Qt" ;;
+ lang) c="Development" ;;
+ lisp) c="Development" ;;
+ mail) c="Office Email" ;;
+ mate) c="MATE GTK" ;;
+ math) c="Education Science Math" ;;
+ mbone) c="Network AudioVideo" ;;
+ multimedia) c="AudioVideo" ;;
+ net) c="Network" ;;
+ net-im) c="Network InstantMessaging" ;;
+ net-mgmt) c="Network" ;;
+ net-p2p) c="Network P2P" ;;
+ news) c="Network News" ;;
+ palm) c="Office PDA" ;;
+ parallel) c="ParallelComputing" ;;
+ pear) c="Development WebDevelopment" ;;
+ perl5) c="Development" ;;
+ python) c="Development" ;;
+ ruby) c="Development" ;;
+ rubygems) c="Development" ;;
+ scheme) c="Development" ;;
+ science) c="Science Education" ;;
+ security) c="System Security" ;;
+ shells) c="System Shell" ;;
+ sysutils) c="System" ;;
+ tcl*|tk*) c="Development" ;;
+ textproc) c="Utility TextTools" ;;
+ www) c="Network" ;;
+ x11-clocks) c="Utility Clock" ;;
+ x11-fm) c="System FileManager" ;;
+ xfce) c="GTK XFCE" ;;
+ zope) c="Development WebDevelopment" ;;
+ esac
+ if [ -n "${c}" ]; then
+ categories="${categories} ${c}"
+ fi
+done
+
+if [ -n "${categories}" ]; then
+ for c in ${categories}; do
+ ${dp_ECHO_CMD} "${c}"
+ done | ${dp_SORT} -u | ${dp_TR} '\n' ';'
+ ${dp_ECHO_CMD}
+fi
diff --git a/Mk/Scripts/install-desktop-entries.sh b/Mk/Scripts/install-desktop-entries.sh
new file mode 100644
index 000000000000..5acb4db84799
--- /dev/null
+++ b/Mk/Scripts/install-desktop-entries.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# MAINTAINER: portmgr@FreeBSD.org
+
+set -e
+
+. "${dp_SCRIPTSDIR}/functions.sh"
+
+validate_env dp_SED dp_ECHO_CMD dp_STAGEDIR dp_DESKTOPDIR
+
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_INSTALL_DESKTOP_ENTRIES}" ] && set -x
+
+set -u
+
+while [ $# -ge 6 ]; do
+
+ Name="${1}"
+ Comment="${2}"
+ Icon="${3}"
+ Exec="${4}"
+ Categories="${5}"
+ StartupNotify="${6}"
+
+ shift 6
+
+ filename="$(${dp_ECHO_CMD} "${Exec}" | ${dp_SED} -e 's,^/,,g;s,[/ ],_,g;s,[^_[:alnum:]],,g').desktop"
+
+ pathname="${dp_STAGEDIR}${dp_DESKTOPDIR}/${filename}"
+
+ ${dp_ECHO_CMD} "${dp_DESKTOPDIR}/${filename}" >> "${dp_TMPPLIST}"
+
+ {
+ ${dp_ECHO_CMD} "[Desktop Entry]"
+ ${dp_ECHO_CMD} "Type=Application"
+ ${dp_ECHO_CMD} "Version=1.0"
+ ${dp_ECHO_CMD} "Name=${Name}"
+ } > "${pathname}"
+
+ if [ -n "${Comment}" ]; then
+ comment="${Comment}"
+ else
+ comment="$(cd "${dp_CURDIR}" && ${dp_MAKE} -VCOMMENT)"
+ fi
+
+ ${dp_ECHO_CMD} "GenericName=${comment}" >> "${pathname}"
+ ${dp_ECHO_CMD} "Comment=${comment}" >> "${pathname}"
+
+ if [ -n "${Icon}" ]; then
+ ${dp_ECHO_CMD} "Icon=${Icon}" >> "${pathname}"
+ fi
+
+ ${dp_ECHO_CMD} "Exec=${Exec}" >> "${pathname}"
+
+ if [ -n "${Categories}" ]; then
+ categories="${Categories}"
+ else
+ categories="$(cd "${dp_CURDIR}" && ${dp_MAKE} desktop-categories)"
+ fi
+
+ ${dp_ECHO_CMD} "Categories=${categories}" >> "${pathname}"
+
+ if [ -n "${StartupNotify}" ]; then
+ ${dp_ECHO_CMD} "StartupNotify=${StartupNotify}" >> "${pathname}"
+ fi
+done
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 0ce7ed61b9a6..db5b23774df8 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -5078,196 +5078,44 @@ pretty-print-config:
.endif # pretty-print-config
desktop-categories:
- @categories=""; \
- for native_category in ${CATEGORIES}; do \
- c=""; \
- case $$native_category in \
- accessibility) c="Utility Accessibility" ;; \
- archivers) c="Utility Archiving" ;; \
- astro) c="Education Science Astronomy" ;; \
- audio) c="AudioVideo Audio" ;; \
- benchmarks) c="System" ;; \
- biology) c="Education Science Biology" ;; \
- cad) c="Graphics Engineering" ;; \
- comms) c="Utility" ;; \
- converters) c="Utility" ;; \
- databases) c="Office Database" ;; \
- deskutils) c="Utility" ;; \
- devel) c="Development" ;; \
- dns) c="Network" ;; \
- elisp) c="Development" ;; \
- editors) c="Utility" ;; \
- emulators) c="System Emulator" ;; \
- finance) c="Office Finance" ;; \
- ftp) c="Network FileTransfer" ;; \
- games) c="Game" ;; \
- geography) c="Education Science Geography" ;; \
- gnome) c="GNOME GTK" ;; \
- graphics) c="Graphics" ;; \
- hamradio) c="HamRadio" ;; \
- haskell) c="Development" ;; \
- irc) c="Network IRCClient" ;; \
- java) c="Development Java" ;; \
- kde) c="KDE Qt" ;; \
- lang) c="Development" ;; \
- lisp) c="Development" ;; \
- mail) c="Office Email" ;; \
- mate) c="MATE GTK" ;; \
- math) c="Education Science Math" ;; \
- mbone) c="Network AudioVideo" ;; \
- multimedia) c="AudioVideo" ;; \
- net) c="Network" ;; \
- net-im) c="Network InstantMessaging" ;; \
- net-mgmt) c="Network" ;; \
- net-p2p) c="Network P2P" ;; \
- news) c="Network News" ;; \
- palm) c="Office PDA" ;; \
- parallel) c="ParallelComputing" ;; \
- pear) c="Development WebDevelopment" ;; \
- perl5) c="Development" ;; \
- python) c="Development" ;; \
- ruby) c="Development" ;; \
- rubygems) c="Development" ;; \
- scheme) c="Development" ;; \
- science) c="Science Education" ;; \
- security) c="System Security" ;; \
- shells) c="System Shell" ;; \
- sysutils) c="System" ;; \
- tcl*|tk*) c="Development" ;; \
- textproc) c="Utility TextTools" ;; \
- www) c="Network" ;; \
- x11-clocks) c="Utility Clock" ;; \
- x11-fm) c="System FileManager" ;; \
- xfce) c="GTK XFCE" ;; \
- zope) c="Development WebDevelopment" ;; \
- esac; \
- if [ -n "$$c" ]; then \
- categories="$$categories $$c"; \
- fi; \
- done; \
- if [ -n "$$categories" ]; then \
- for c in $$categories; do ${ECHO_MSG} "$$c"; done \
- | ${SORT} -u | ${TR} '\n' ';'; \
- ${ECHO_MSG}; \
- fi
-
-# http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
-DESKTOP_CATEGORIES_MAIN= AudioVideo Audio Video Development Education \
- Game Graphics Network Office Science Settings System Utility
-DESKTOP_CATEGORIES_ADDITIONAL= Building Debugger IDE GUIDesigner Profiling \
- RevisionControl Translation Calendar ContactManagement Database \
- Dictionary Chart Email Finance FlowChart PDA ProjectManagement \
- Presentation Spreadsheet WordProcessor 2DGraphics VectorGraphics \
- RasterGraphics 3DGraphics Scanning OCR Photography Publishing Viewer \
- TextTools DesktopSettings HardwareSettings Printing PackageManager \
- Dialup InstantMessaging Chat IRCClient Feed FileTransfer HamRadio News \
- P2P RemoteAccess Telephony TelephonyTools VideoConference WebBrowser \
- WebDevelopment Midi Mixer Sequencer Tuner TV AudioVideoEditing Player \
- Recorder DiscBurning ActionGame AdventureGame ArcadeGame BoardGame \
- BlocksGame CardGame KidsGame LogicGame RolePlaying Shooter Simulation \
- SportsGame StrategyGame Art Construction Music Languages \
- ArtificialIntelligence Astronomy Biology Chemistry ComputerScience \
- DataVisualization Economy Electricity Geography Geology Geoscience \
- History Humanities ImageProcessing Literature Maps Math \
- NumericalAnalysis MedicalSoftware Physics Robotics Spirituality Sports \
- ParallelComputing Amusement Archiving Compression Electronics Emulator \
- Engineering FileTools FileManager TerminalEmulator Filesystem Monitor \
- Security Accessibility Calculator Clock TextEditor Documentation Adult \
- Core KDE GNOME MATE XFCE GTK Qt Motif Java ConsoleOnly
-DESKTOP_CATEGORIES_RESERVED= Screensaver TrayIcon Applet Shell
-
-VALID_DESKTOP_CATEGORIES+= ${DESKTOP_CATEGORIES_MAIN} \
- ${DESKTOP_CATEGORIES_ADDITIONAL} \
- ${DESKTOP_CATEGORIES_RESERVED}
+ @${SETENV} \
+ dp_CATEGORIES="${CATEGORIES}" \
+ dp_ECHO_CMD=${ECHO_CMD} \
+ dp_SCRIPTSDIR="${SCRIPTSDIR}" \
+ dp_SORT="${SORT}" \
+ dp_TR="${TR}" \
+ ${SH} ${SCRIPTSDIR}/desktop-categories.sh
.if defined(DESKTOP_ENTRIES)
check-desktop-entries:
- @set -- ${DESKTOP_ENTRIES} XXX; \
- if [ `${EXPR} \( $$# - 1 \) % 6` -ne 0 ]; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile error: the DESKTOP_ENTRIES list must contain one or more groups of 6 elements"; \
- exit 1; \
- fi; \
- num=1; \
- while [ $$# -gt 6 ]; do \
- entry="#$$num"; \
- if [ -n "$$4" ]; then \
- entry="$$entry ($$4)"; \
- elif [ -n "$$1" ]; then \
- entry="$$entry ($$1)"; \
- fi; \
- if [ -z "$$1" ]; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 1 (Name) is empty"; \
- exit 1; \
- fi; \
- if ${ECHO_CMD} "$$3" | ${EGREP} -iq '.(png|svg|xpm)$$'; then \
- if ! ${ECHO_CMD} "$$3" | ${GREP} -iq '^/'; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile warning: in desktop entry $$entry: field 3 (Icon) should be either absolute path or icon name without extension if installed icons follow Icon Theme Specification"; \
- fi; \
- fi; \
- if [ -z "$$4" ]; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 4 (Exec) is empty"; \
- exit 1; \
- fi; \
- if [ -n "$$5" ]; then \
- for c in `${ECHO_CMD} "$$5" | ${TR} ';' ' '`; do \
- if ! ${ECHO_CMD} ${VALID_DESKTOP_CATEGORIES} | ${GREP} -wq $$c; then \
- ${ECHO_CMD} "${PKGNAME}: Makefile warning: in desktop entry $$entry: category $$c is not a valid desktop category"; \
- fi; \
- done; \
- if ! ${ECHO_CMD} "$$5" | ${GREP} -q "`${ECHO_CMD} ${DESKTOP_CATEGORIES_MAIN} | ${SED} -E 's,[[:blank:]]+,\\\|,g'`"; then \
- ${ECHO_CMD} "${PKGNAME}: Makefile warning: in desktop entry $$entry: field 5 (Categories) must contain at least one main desktop category (make -VDESKTOP_CATEGORIES_MAIN)"; \
- fi; \
- if ! ${ECHO_CMD} "$$5" | ${GREP} -q ';$$'; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 5 (Categories) does not end with a semicolon"; \
- exit 1; \
- fi; \
- else \
- if [ -z "`cd ${.CURDIR} && ${MAKE} desktop-categories`" ]; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 5 (Categories) is empty and could not be deduced from the CATEGORIES variable"; \
- exit 1; \
- fi; \
- fi; \
- if [ "x$$6" != "xtrue" ] && [ "x$$6" != "xfalse" ] && [ "x$$6" != "x" ]; then \
- ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 6 (StartupNotify) is not \"true\", \"false\" or \"\"(empty)"; \
- exit 1; \
- fi; \
- shift 6; \
- num=`${EXPR} $$num + 1`; \
- done
+ @${SETENV} \
+ dp_CURDIR="${.CURDIR}" \
+ dp_ECHO_CMD=${ECHO_CMD} \
+ dp_ECHO_MSG=${ECHO_MSG} \
+ dp_EXPR="${EXPR}" \
+ dp_GREP="${GREP}" \
+ dp_MAKE="${MAKE}" \
+ dp_PKGNAME="${PKGNAME}" \
+ dp_SCRIPTSDIR="${SCRIPTSDIR}" \
+ dp_SED="${SED}" \
+ dp_VALID_DESKTOP_CATEGORIES="${VALID_DESKTOP_CATEGORIES}" \
+ dp_TR="${TR}" \
+ ${SH} ${SCRIPTSDIR}/check-desktop-entries.sh ${DESKTOP_ENTRIES}
.endif
.if !target(install-desktop-entries)
.if defined(DESKTOP_ENTRIES)
install-desktop-entries:
- @set -- ${DESKTOP_ENTRIES} XXX; \
- while [ $$# -gt 6 ]; do \
- filename="`${ECHO_CMD} "$$4" | ${SED} -e 's,^/,,g;s,[/ ],_,g;s,[^_[:alnum:]],,g'`.desktop"; \
- pathname="${STAGEDIR}${DESKTOPDIR}/$$filename"; \
- categories="$$5"; \
- if [ -z "$$categories" ]; then \
- categories="`cd ${.CURDIR} && ${MAKE} desktop-categories`"; \
- fi; \
- ${ECHO_CMD} "${DESKTOPDIR}/$$filename" >> ${TMPPLIST}; \
- ${ECHO_CMD} "[Desktop Entry]" > $$pathname; \
- ${ECHO_CMD} "Type=Application" >> $$pathname; \
- ${ECHO_CMD} "Version=1.0" >> $$pathname; \
- ${ECHO_CMD} "Name=$$1" >> $$pathname; \
- comment="$$2"; \
- if [ -z "$$2" ]; then \
- comment="`cd ${.CURDIR} && ${MAKE} -VCOMMENT`"; \
- fi; \
- ${ECHO_CMD} "GenericName=$$comment" >> $$pathname; \
- ${ECHO_CMD} "Comment=$$comment" >> $$pathname; \
- if [ -n "$$3" ]; then \
- ${ECHO_CMD} "Icon=$$3" >> $$pathname; \
- fi; \
- ${ECHO_CMD} "Exec=$$4" >> $$pathname; \
- ${ECHO_CMD} "Categories=$$categories" >> $$pathname; \
- if [ -n "$$6" ]; then \
- ${ECHO_CMD} "StartupNotify=$$6" >> $$pathname; \
- fi; \
- shift 6; \
- done
+ @${SETENV} \
+ dp_CURDIR="${.CURDIR}" \
+ dp_ECHO_CMD=${ECHO_CMD} \
+ dp_SCRIPTSDIR="${SCRIPTSDIR}" \
+ dp_STAGEDIR="${STAGEDIR}" \
+ dp_DESKTOPDIR="${DESKTOPDIR}" \
+ dp_TMPPLIST="${TMPPLIST}" \
+ dp_MAKE="${MAKE}" \
+ dp_SED="${SED}" \
+ ${SH} ${SCRIPTSDIR}/install-desktop-entries.sh ${DESKTOP_ENTRIES}
.endif
.endif