marseymoji/Makefile

108 lines
3.3 KiB
Makefile

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
EMOJI = NotoColorEmoji
font: $(EMOJI).ttf
CFLAGS = -std=c99 -Wall -Wextra `pkg-config --cflags --libs cairo`
LDFLAGS = `pkg-config --libs cairo`
PNGQUANTDIR := $(abspath `pwd`/../third_party/pngquant)
PNGQUANT := $(PNGQUANTDIR)/pngquant
PNGQUANTFLAGS = --speed 1 --skip-if-larger --ext '.png' --force
"$(PNGQUANT)":
cd "$(PNGQUANTDIR)" && make
waveflag: waveflag.c
$(CC) $< -o $@ $(CFLAGS) $(LDFLAGS)
LIMITED_FLAGS = CN DE ES FR GB IT JP KR RU US
FLAGS = AD AE AF AG AI AL AM AO AR AS AT AU AW AX AZ \
BA BB BD BE BF BG BH BI BJ BM BN BO BR BS BT BW BY BZ \
CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ \
DE DJ DK DM DO DZ \
EC EE EG ER ES ET EU \
FI FJ FM FO FR \
GA GB GD GE GG GH GI GL GM GN GQ GR GT GU GW GY \
HK HN HR HT HU \
ID IE IL IM IN IO IQ IR IS IT \
JE JM JO JP \
KE KG KH KI KM KN KP KR KW KY KZ \
LA LB LC LI LK LR LS LT LU LV LY \
MA MC MD ME MG MH MK ML MM MN MO MP MR MS MT MU MV MW MX MY MZ \
NA NE NF NG NI NL NO NP NR NU NZ \
OM \
PA PE PF PG PH PK PL PN PR PS PT PW PY \
QA \
RO RS RU RW \
SA SB SC SD SE SG SI SK SL SM SN SO SR SS ST SV SX SY SZ \
TC TD TG TH TJ TK TL TM TN TO TR TT TV TW TZ \
UA UG US UY UZ \
VA VC VE VG VI VN VU \
WS \
YE \
ZA ZM ZW
FLAGS_SRC_DIR = third_party/region-flags/png
FLAGS_DIR = ./flags
GLYPH_NAMES := $(shell ./flag_glyph_name.py $(FLAGS))
WAVED_FLAGS := $(foreach flag,$(FLAGS),$(FLAGS_DIR)/$(flag).png)
PNG128_FLAGS := $(foreach glyph_name,$(GLYPH_NAMES),$(addprefix ./png/128/emoji_$(glyph_name),.png))
$(FLAGS_DIR)/%.png: $(FLAGS_SRC_DIR)/%.png ./waveflag "$(PNGQUANT)"
mkdir -p $(FLAGS_DIR)
./waveflag "$<" "$@"
optipng -quiet -o7 "$@"
"$(PNGQUANT)" $(PNGQUANTFLAGS) "$@"
flag-symlinks: $(WAVED_FLAGS)
$(subst ^, , \
$(join \
$(FLAGS:%=ln^-fs^../../flags/%.png^), \
$(GLYPH_NAMES:%=./png/128/emoji_%.png;) \
) \
)
$(PNG128_FLAGS): flag-symlinks
EMOJI_PNG128 = ./png/128/emoji_u
EMOJI_BUILDER = third_party/color_emoji/emoji_builder.py
ADD_GLYPHS = third_party/color_emoji/add_glyphs.py
PUA_ADDER = map_pua_emoji.py
VS_ADDER = add_vs_cmap.py
%.ttx: %.ttx.tmpl $(ADD_GLYPHS) $(UNI) flag-symlinks
python $(ADD_GLYPHS) "$<" "$@" "$(EMOJI_PNG128)"
%.ttf: %.ttx
@rm -f "$@"
ttx "$<"
$(EMOJI).ttf: $(EMOJI).tmpl.ttf $(EMOJI_BUILDER) $(PUA_ADDER) $(VS_ADDER) \
$(EMOJI_PNG128)*.png flag-symlinks
python $(EMOJI_BUILDER) -V $< "$@" $(EMOJI_PNG128)
python $(PUA_ADDER) "$@" "$@-with-pua"
$(VS_ADDER) --dstdir '.' -o "$@-with-pua-varsel" "$@-with-pua"
mv "$@-with-pua-varsel" "$@"
rm "$@-with-pua"
clean:
rm -f $(EMOJI).ttf $(EMOJI).tmpl.ttf $(EMOJI).tmpl.ttx
rm -f waveflag
rm -rf $(FLAGS_DIR)
rm -f `find -type l -name "*.png"`