SFLAGS += -Ikandinsky/include kandinsky_src += $(addprefix kandinsky/src/,\ color.cpp \ context.cpp \ context_circle.cpp \ context_line.cpp \ context_pixel.cpp \ context_polygon.cpp \ context_rect.cpp \ context_text.cpp \ font.cpp \ framebuffer.cpp \ framebuffer_context.cpp \ ion_context.cpp \ point.cpp \ postprocess_context.cpp \ postprocess_gamma_context.cpp \ postprocess_invert_context.cpp \ postprocess_zoom_context.cpp \ rect.cpp \ ) simple_kandinsky_src := $(kandinsky_src) default_kandinsky_src := $(kandinsky_src) tests_src += $(addprefix kandinsky/test/,\ color.cpp\ font.cpp\ rect.cpp\ ) code_points = kandinsky/fonts/code_points.h RASTERIZER_CFLAGS := -std=c99 $(shell pkg-config freetype2 --cflags) RASTERIZER_LDFLAGS := $(shell pkg-config freetype2 --libs) HAS_LIBPNG := $(shell pkg-config libpng --exists && echo 1) ifeq ($(HAS_LIBPNG),1) RASTERIZER_CFLAGS += $(shell pkg-config libpng --cflags) -DGENERATE_PNG=1 RASTERIZER_LDFLAGS += $(shell pkg-config libpng --libs) endif $(eval $(call rule_for, \ HOSTCC, \ kandinsky/fonts/rasterizer, \ kandinsky/fonts/rasterizer.c $(addprefix ion/src/external/lz4/, lz4.c lz4hc.c), \ $$(HOSTCC) $$(RASTERIZER_CFLAGS) $$^ $$(RASTERIZER_LDFLAGS) -o $$@, \ global \ )) RASTERIZER := $(BUILD_DIR)/kandinsky/fonts/rasterizer # Define a rasterizing recipe. Parameters : font source, font name, size, packed_width, packed_height define raster_font $(call rule_for, \ RASTER, \ kandinsky/fonts/$(2).cpp, \ kandinsky/fonts/$(1).ttf $$(RASTERIZER), \ $$(RASTERIZER) $$< $(3) $(4) $(4) $(5) $(6) $(1) $$@ $(if $(HAS_LIBPNG),$$(basename $$@).png), \ global \ ) endef ifdef HAS_READER kandinsky_src += $(addprefix kandinsky/fonts/, \ LargeFontExtended.ttf \ ItalicLargeFontExtended.ttf \ SmallFontExtended.ttf \ ItalicSmallFontExtended.ttf \ LargeFontSimple.ttf \ SmallFontSimple.ttf \ ) default_kandinsky_src += $(addprefix kandinsky/fonts/, \ LargeFontExtended.ttf \ ItalicLargeFontExtended.ttf \ SmallFontExtended.ttf \ ItalicSmallFontExtended.ttf \ ) simple_kandinsky_src += $(addprefix kandinsky/fonts/, \ LargeFontSimple.ttf \ SmallFontSimple.ttf \ ) $(eval $(call raster_font,SmallFont,SmallFontExtended,1,12,7,14)) $(eval $(call raster_font,LargeFont,LargeFontExtended,1,16,10,18)) $(eval $(call raster_font,ItalicSmallFont,ItalicSmallFontExtended,1,12,7,14)) $(eval $(call raster_font,ItalicLargeFont,ItalicLargeFontExtended,1,16,10,18)) $(eval $(call raster_font,SmallFont,SmallFontSimple,0,12,7,14)) $(eval $(call raster_font,LargeFont,LargeFontSimple,0,16,10,18)) else kandinsky_src += $(addprefix kandinsky/fonts/, \ LargeFont.ttf \ ItalicLargeFont.ttf \ SmallFont.ttf \ ItalicSmallFont.ttf \ ) default_kandinsky_src = $(kandinsky_src) simple_kandinsky_src = $(kandinsky_src) $(eval $(call raster_font,SmallFont,SmallFontSimple,0,12,7,14)) $(eval $(call raster_font,LargeFont,LargeFontSimple,0,16,10,18)) $(eval $(call raster_font,ItalicSmallFont,ItalicSmallFontSimple,0,12,7,14)) $(eval $(call raster_font,ItalicLargeFont,ItalicLargeFontSimple,0,16,10,18)) endif