.NONPOSIX:
CONFIGFILE = config.mk
include $(CONFIGFILE)
DIRS =\
actions\
apps\
categories\
devices\
emblems\
emotes\
mimetypes\
places\
status
include icons.mk
ALL_PNG_ICONS = $(foreach S,$(SIZES),$(foreach I,$(ICONS),$(S)x$(S)$(DIR_SUFFIX)/$(I).png))
all: index.theme $(ALL_PNG_ICONS)
all-fast: index.theme all-fast-icons
index.theme: Makefile
set -e;\
printf '%s\n' \
'[Icon Theme]'\
'Name=$(THEME_NAME)'\
'Comment=$(THEME_DESC)'\
'Example=folder'\
''\
'# KDE specific stuff'\
'DisplayDepth=32'\
'LinkOverlay=link_overlay'\
'LockOverlay=lock_overlay'\
'ZipOverlay=zip_overlay'\
'DesktopDefault=48'\
'DesktopSizes='$$(printf ',%s' $(SIZES) | sed 's/^,//')\
'ToolbarDefault=22'\
'ToolbarSizes=8,16,22,32,48'\
'MainToolbarDefault=22'\
'MainToolbarSizes=8,16,22,32,48'\
'SmallDefault=16'\
'SmallSizes=16'\
'PanelDefault=32'\
'PanelSizes='$$(printf ',%s' $(SIZES) | sed 's/^,//')\
''\
> index.theme
printf 'Directories=' >> index.theme
set -e;\
for s in $(SIZES); do\
for d in $(DIRS); do\
printf ',%sx%s/%s' $$s $$s $$d;\
done;\
done | sed 's/^,//' >> index.theme
set -e;\
for d in $(DIRS); do\
printf ',scalable/%s' $$d;\
done >> index.theme
printf '\n' >> index.theme
set -e;\
for s in $(SIZES) scalable; do\
for d in $(DIRS); do\
printf '\n';\
./make-dir-info $$s $$d;\
done;\
done >> index.theme
all-fast-icons: $(ICONS:=.x)
scalable-$(DIR_SUFFIX_)/%.svg: scalable/%.svg
@mkdir -p -- "$$(dirname "$@")"
if ! test "$@" = "scalable/$*.svg"; then\
if test -L "scalable/$*.svg"; then\
ln -s "$$(readlink -- "scalable/$*.svg")" $@;\
else\
sed < scalable/$*.svg > $@\
-e 's/#[bB][eE][bB][eE][bB][eE]/#$(BASE_COLOUR)/g'\
-e 's/#[eE][fF]2929/#$(ALARM_RED)/g'\
-e 's/#[fF]57900/#$(ALARM_ORANGE)/g'\
-e 's/#[cC][dD]656[cC]/#$(RED)/g'\
-e 's/#[dD]69553/#$(ORANGE)/g'\
-e 's/#[cC][cC][aA][dD]47/#$(YELLOW)/g'\
-e 's/#32[aA]679/#$(GREEN)/g'\
-e 's/#00[aA]09[fF]/#$(CYAN)/g'\
-e 's/#2495[bB][eE]/#$(BLUE)/g'\
-e 's/#[aA]46[eE][bB]0/#$(MAGENTA)/g'\
-e 's/#000000/#$(OUTLINE)/g';\
fi;\
fi
%.x: conv
@if test -n "$(DIR_SUFFIX)"; then make scalable$(DIR_SUFFIX)/$*.svg; fi
@ # Does work as a dependeny in GNU make for some reason,
@ # additionally, this lets us avoid starting make once
@ # extra for every icon
./conv scalable$(DIR_SUFFIX)/$*.svg $(SIZES)
conv: conv.c
$(CC) -o $@ $< $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
8x8$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
16x16$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
22x22$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
24x24$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
32x32$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
36x36$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
48x48$(DIR_SUFFIX)/%.png: scalable$(DIR_SUFFIX)/%.svg conv
./conv $@
install: index.theme $(ALL_PNG_ICONS)
mkdir -p -- "$(DESTDIR)$(ICONPREFIX)"
set -e;\
for d in $(DIRS); do\
for s in $(SIZES); do\
mkdir -p -- "$(DESTDIR)$(ICONPREFIX)/$(THEME_DIR)/$${s}x$${s}/$${d}";\
done;\
mkdir -p -- "$(DESTDIR)$(ICONPREFIX)/$(THEME_DIR)/scalable/$${d}";\
done
set -e;\
for i in $(ICONS); do\
for s in $(SIZES); do\
cp -P -- "$${s}x$${s}$(DIR_SUFFIX)/$${i}.png" "$(DESTDIR)$(ICONPREFIX)/$(THEME_DIR)/$${s}x$${s}/$${i}.png";\
done;\
cp -P -- "scalable$(DIR_SUFFIX)/$${i}.svg" "$(DESTDIR)$(ICONPREFIX)/$(THEME_DIR)/scalable/$${i}.svg";\
done
cp -- index.theme "$(DESTDIR)$(ICONPREFIX)/$(THEME_DIR)/index.theme"
uninstall:
rm -rf -- "$(DESTDIR)$(ICONPREFIX)/$(THEME_DIR)"
clean:
-rm -f -- index.theme *.o *.su conv
-if test -n "$(DIR_SUFFIX)"; then rm -rf -- scalable$(DIR_SUFFIX); fi
-for s in $(SIZES); do printf "$${s}x$${s}$(DIR_SUFFIX)\n"; done | xargs rm -rf --
.PHONY: all all-fast all-fast-icons install uninstall clean