mirror of
https://github.com/gosquared/flags.git
synced 2025-12-10 10:18:25 +00:00
137 lines
2.8 KiB
Makefile
137 lines
2.8 KiB
Makefile
# Flag-set-generating makefile
|
|
|
|
INDIR := src/flags
|
|
OUTDIR := flags
|
|
OVERLAYDIR := src/overlays
|
|
|
|
SIZES ?= 16 24 32 48 64
|
|
|
|
ICNS_SIZES := $(filter-out 24 64,$(SIZES))
|
|
|
|
FLAGS := $(shell ls $(INDIR))
|
|
SQUARE := $(filter Vatican-City Switzerland,$(FLAGS))
|
|
NEPAL := $(filter Nepal,$(FLAGS))
|
|
NORMAL := $(filter-out $(SQUARE) $(NEPAL),$(FLAGS))
|
|
|
|
PNGCRUSH_OPTIONS ?= -q -brute -rem alla
|
|
TMP_FILE := $(shell mktemp -u)
|
|
PWD := $(shell pwd)
|
|
|
|
# change to cp for testing puposes
|
|
copy_png = pngcrush ${PNGCRUSH_OPTIONS}
|
|
|
|
# a lot of the files are just renames of other generated
|
|
# files. This is the least messy way I can find to do it.
|
|
define copy_file
|
|
$1: $2
|
|
@mkdir -p $$(@D)
|
|
cp $$^ $$@
|
|
endef
|
|
|
|
define process_flag
|
|
# flat normal
|
|
$2: $1
|
|
@mkdir -p $$(@D)
|
|
$(copy_png) $$^ $$@
|
|
|
|
# shiny normal
|
|
$3: $1
|
|
@mkdir -p $$(@D)
|
|
composite ${OVERLAYDIR}/$6/$7.png $$^ $8; $(copy_png) $8 $$@
|
|
@rm -f $8
|
|
|
|
# flat iso
|
|
$(call copy_file,$4,$2)
|
|
|
|
# shiny iso
|
|
$(call copy_file,$5,$3)
|
|
|
|
FLAG_FLAT_FILES += $2
|
|
FLAG_SHINY_FILES += $3
|
|
FLAG_ISO_FLAT_FILES += $4
|
|
FLAG_ISO_SHINY_FILES += $5
|
|
endef
|
|
|
|
|
|
define define_icon
|
|
# flat normal
|
|
$1/flat/$5/$3.$5: $(addsuffix /$3.png,$(addprefix $1/flat/,$6))
|
|
@mkdir -p $$(@D)
|
|
ifeq (ico,$5)
|
|
convert $$^ $$@
|
|
else
|
|
png2icns $$@ $$^ > /dev/null
|
|
endif
|
|
|
|
# flat iso
|
|
$(call copy_file,$2/flat/$5/$4.$5,$1/flat/$5/$3.$5)
|
|
|
|
# shiny normal
|
|
$1/shiny/$5/$3.$5: $(addsuffix /$3.png,$(addprefix $1/shiny/,$6))
|
|
@mkdir -p $$(@D)
|
|
ifeq (ico,$5)
|
|
convert $$^ $$@
|
|
else
|
|
png2icns $$@ $$^ > /dev/null
|
|
endif
|
|
|
|
# shiny iso
|
|
$(call copy_file,$2/shiny/$5/$4.$5,$1/shiny/$5/$3.$5)
|
|
|
|
FLAG_FLAT_FILES += $1/flat/$5/$3.$5
|
|
FLAG_ISO_FLAT_FILES += $2/flat/$5/$4.$5
|
|
FLAG_SHINY_FILES += $1/shiny/$5/$3.$5
|
|
FLAG_ISO_SHINY_FILES += $2/shiny/$5/$4.$5
|
|
endef
|
|
|
|
define define_flag
|
|
|
|
$(foreach size,${SIZES},\
|
|
$(call process_flag,\
|
|
${INDIR}/$1/$(size).png,\
|
|
${OUTDIR}/flags/flat/$(size)/$1.png,\
|
|
${OUTDIR}/flags/shiny/$(size)/$1.png,\
|
|
${OUTDIR}/flags-iso/flat/$(size)/$2.png,\
|
|
${OUTDIR}/flags-iso/shiny/$(size)/$2.png,$3,$(size),${TMP_FILE}.$2.$(size).png))
|
|
|
|
$(call define_icon,${OUTDIR}/flags,${OUTDIR}/flags-iso,$1,$2,ico,$(SIZES))
|
|
$(call define_icon,${OUTDIR}/flags,${OUTDIR}/flags-iso,$1,$2,icns,$(ICNS_SIZES))
|
|
endef
|
|
|
|
|
|
.PHONY: all clean
|
|
|
|
all: flags.zip
|
|
|
|
|
|
|
|
$(foreach flag,${NORMAL}, \
|
|
$(eval $(call define_flag,$(flag),$(shell cat "${INDIR}/$(flag)/code"),normal)))
|
|
|
|
$(foreach flag,${SQUARE}, \
|
|
$(eval $(call define_flag,$(flag),$(shell cat "${INDIR}/$(flag)/code"),square)))
|
|
|
|
$(foreach flag,${NEPAL}, \
|
|
$(eval $(call define_flag,$(flag),$(shell cat "${INDIR}/$(flag)/code"),nepal)))
|
|
|
|
ZIPFILES = \
|
|
${FLAG_FLAT_FILES} \
|
|
${FLAG_SHINY_FILES} \
|
|
${FLAG_ISO_FLAT_FILES} \
|
|
${FLAG_ISO_SHINY_FILES} \
|
|
${OUTDIR}/LICENSE.txt \
|
|
${OUTDIR}/Hello.txt
|
|
|
|
|
|
flags.zip: ${OUTDIR} ${ZIPFILES}
|
|
$(if $(wildcard $@),rm -f $@,)
|
|
cd ${OUTDIR}; zip -q -r -9 -T ${PWD}/$@ *
|
|
|
|
${OUTDIR}: ${ZIPFILES}
|
|
|
|
${OUTDIR}/%.txt:
|
|
cp $*.txt $@
|
|
|
|
clean:
|
|
rm -fr ${OUTDIR} flags.zip
|