diff options
author | Mattias Andrée <maandree@kth.se> | 2023-07-01 21:12:34 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2023-07-01 21:12:34 +0200 |
commit | 03a83797438cc219e2d277f1f4b2d7695eab32dd (patch) | |
tree | fa44b82e30234de50984953782a63155295b8600 /Makefile | |
parent | Run svgcleaner on kbd-compose-{on,off,mixed} (diff) | |
download | simple-icon-theme-03a83797438cc219e2d277f1f4b2d7695eab32dd.tar.gz simple-icon-theme-03a83797438cc219e2d277f1f4b2d7695eab32dd.tar.bz2 simple-icon-theme-03a83797438cc219e2d277f1f4b2d7695eab32dd.tar.xz |
Improve makfile
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 156 |
1 files changed, 17 insertions, 139 deletions
@@ -1,150 +1,28 @@ -.NONPOSIX: +.POSIX: CONFIGFILE = config.mk include $(CONFIGFILE) -DIRS =\ - actions\ - apps\ - categories\ - devices\ - emblems\ - emotes\ - mimetypes\ - places\ - status +all: -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)" +generated-rules.mk: $(CONFIGFILE) + @test ! -e $@ || chmod -- u+w $@ + printf '# %s\n' 'This file is generated from Makefile' > $@ + printf '\n%1i$$(DIR_SUFFIX)/%%.png: scalable$$(DIR_SUFFIX)/%%.svg conv\n\t./conv $$@\n' $(SIZES) | \ + sed 's/^[0-9]\+/&x&/' >> $@ + @chmod -- a-w $@ clean: - -rm -f -- index.theme *.o *.su conv + -rm -f -- index.theme *.o *.su conv generated-rules.mk -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 -- +# These are just added so autocompletion works with them +all all-fast all-fast-icons install uninstall index.theme conv: generated-rules.mk + +@$(MAKE) -f make-stage-2.mk $@ + +.DEFAULT: + +@$(MAKE) generated-rules.mk + +@$(MAKE) -f make-stage-2.mk $@ + .PHONY: all all-fast all-fast-icons install uninstall clean |