aboutsummaryrefslogtreecommitdiffstats
path: root/x11-themes/slim-themes/Makefile
blob: 7be55a859ea121cb59ff235ea93c6567e09f66b4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Created by: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
# $FreeBSD$

PORTNAME=   slim-themes
PORTVERSION=    1.0.1
CATEGORIES= x11-themes
MASTER_SITES=   ${MASTER_SITE_BERLIOS:S/$/:old_themes/g} \
        http://slim.berlios.de/themes/:new_themes
MASTER_SITE_SUBDIR= slim/:old_themes
DISTFILES=

MAINTAINER= rea@FreeBSD.org
COMMENT=    Theme pack for SLiM login app

# But that's not all, see below.
OPTIONS_DEFINE= ALL_THEMES
OPTIONS_DEFAULT=    ALL_THEMES
ALL_THEMES_DESC=    Include all themes

NO_BUILD=   yes
NO_WRKSUBDIR=   yes
SHAREMODE=  644
THEMEDIR_REL=   share/slim/themes
THEMEDIR=   ${PREFIX}/${THEMEDIR_REL}
PLIST_SUB+= THEMEDIR=${THEMEDIR_REL}

# Format is 'variable name%description%archive name%unpacked dir%dest
# dir%master site tag'
# I am substituting ' ' -> '+' because make in 6.x isn't able to properly
# catch quoted strings with spaces.  7.x and 8.x are fine with this, so
# once 6.x will be deorbited, we could switch just to spaces.
THEMELIST=  GENTOO_SIMPLE%Gentoo+simple+theme%slim-gentoo-simple.tar.bz2%slim-gentoo-simple%gentoo-simple%old_themes \
        ARCHLINUX_SIMPLE%ArchLinux+simple+theme%slim-archlinux-simple.tar.gz%slim-archlinux-simple%archlinux-simple%old_themes \
        DEBIAN_MOREBLUE%Debian+moreblue+theme%slim-debian-moreblue.tar.bz2%debian-moreblue%debian-moreblue%old_themes \
        FINGERPRINT%Fingerprint+theme%slim-fingerprint.tar.gz%fingerprint%fingerprint%old_themes \
        FLAT%Flat+theme%slim-flat.tar.gz%flat%flat%old_themes \
        LAKE%Lake+theme%slim-lake.tar.gz%lake%lake%old_themes \
        RAINBOW%Rainbow+theme%slim-rainbow.tar.gz%rainbow%rainbow%old_themes \
        REAR_WINDOW%Rear+Window+theme%slim-rear-window.tar.gz%rear-window%rear-window%old_themes \
        SCOTLAND_ROAD%Scotland+Road+theme%slim-scotland-road.tar.gz%scotland-road%scotland-road%old_themes \
        SUBWAY%Subway+theme%slim-subway.tar.gz%subway%subway%old_themes \
        WAVE%Wave+theme%slim-wave.tar.gz%wave%wave%old_themes \
        LUNAR_LINUX%Lunar+Linux+theme%slim-lunar-0.4.tar.bz2%slim-lunar-0.4%lunar%old_themes \
        ZENWALK%Zenwalk+theme%slim-zenwalk.tar.gz%Zenwalk%zenwalk%old_themes \
        PARALLEL_DIMS%Parallel+Dimensions+theme%slim-parallel-dimensions.tar.gz%parallel-dimensions%parallel-dimensions%old_themes \
        CAPERNOITED%Capernoited+theme%slim-capernoited.tar.gz%capernoited%capernoited%old_themes \
        MINDLOCK%Mindlock+theme%slim-mindlock.tar.gz%mindlock%mindlock%old_themes \
        FLOWER2%Flower2+theme%slim-flower2.tar.gz%flower2%flower2%old_themes \
        FREEBSD%FreeBSD+theme%fbsd-slim-theme.tar.bz2%fbsd%fbsd%new_themes \
        GNEWSENSE%gNewSense+theme%slim-gnewsense-1.1.tar.bz2%slim-gnewsense-1.1%gnewsense%new_themes

# Pollute OPTIONS and DISTFILES.  Cool magic ;))
# We're using immediate assignment and two variables, because there is
# no addition (+=) operator with immediate assignment.

.for t in ${THEMELIST}
n=  ${t:C/^([^%]*)%.*$/\\1/1}
d=  ${t:C/^[^%]*%[^%]*%([^%]*)%.*$/\\1/1}
desc=   ${t:C/^[^%]*%([^%]*)%.*$/\\1/1:C/\+/ /g}
sdir=   ${t:C/^[^%]*%[^%]*%[^%]*%([^%]*)%.*$/\\1/1}
ddir=   ${t:C/^[^%]*%[^%]*%[^%]*%[^%]*%([^%]*)%.*$/\\1/1}
mtag=   ${t:C/^[^%]*%[^%]*%[^%]*%[^%]*%[^%]*%([^%]*)$/\\1/1}
.if ${mtag} == ""
${n}_DIST:= ${d}
.else
${n}_DIST:= ${d}:${mtag}
.endif
${n}_SDIR:= ${sdir}
${n}_DDIR:= ${ddir}
OPTIONS_DEFINE:=    ${OPTIONS_DEFINE} ${n}
A+=     ${n}
${n}_DESC:= ${desc}
NEWTHEMES:= ${ALLTHEMES}    ${n}
ALLTHEMES:= ${NEWTHEMES}
.endfor # t in ${THEMELIST}

.include <bsd.port.pre.mk>

.for n in ${ALLTHEMES}
.if ${PORT_OPTIONS:MALL_THEMES} || ${PORT_OPTIONS:M${n}}
.if ! ${PORT_OPTIONS:M${n}}
PORT_OPTIONS+=  ${n}
.endif
NEWDISTFILES:=  ${DISTFILES}    ${${n}_DIST}
DISTFILES:= ${NEWDISTFILES}
SEEN_THEMES=    yes
NEW_PLIST_SUB:= ${PLIST_SUB}    ${n}=""
PLIST_SUB:= ${NEW_PLIST_SUB}
.else
NEW_PLIST_SUB:= ${PLIST_SUB}    ${n}="@comment "
PLIST_SUB:= ${NEW_PLIST_SUB}
.endif # ${PORT_OPTIONS:MALL_THEMES} || ${PORT_OPTIONS:M${n}}
.endfor # n in ${THEMELIST}

.if !defined(SEEN_THEMES)
IGNORE=     at least one theme must be selected
.endif

.if ${PORT_OPTIONS:MPARALLEL_DIMS}
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-parallel-dimensions-slim.theme

post-patch:
    @${RM} ${WRKSRC}/parallel-dimensions/slim.theme.orig
.endif # ${PORT_OPTIONS:MPARALLEL_DIMS}

# Install selected themes.  Another regexp voodoo, yay! \o/
do-install:
    ${MKDIR} ${STAGEDIR}${THEMEDIR}
.for n in ${ALLTHEMES}
.if ${PORT_OPTIONS:M${n}}
    ${MKDIR} ${STAGEDIR}${THEMEDIR}/${${n}_DDIR}
    cd "${WRKSRC}/${${n}_SDIR}" && \
      ${COPYTREE_SHARE} . ${STAGEDIR}${THEMEDIR}/${${n}_DDIR}
.endif # ${PORT_OPTIONS:M${n}}
.endfor # t in ${THEMELIST}

.include <bsd.port.post.mk>