summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2014-07-18 17:34:03 +0200
committerDavid Herrmann <dh.herrmann@gmail.com>2014-07-18 17:45:33 +0200
commit86db5dfb6d334e583ea4161191754522ce850eed (patch)
tree5abc777472cb907b954f63e8523e95dfa494e974 /Makefile.am
parent545149a2fc3523bbcbf3703fae3ae1ca5312f8c8 (diff)
terminal: add unifont font-handling
The unifont layer of libsystemd-terminal provides a fallback font for situations where no system-fonts are available, or if you don't want to deal with traditional font-formats for some reasons. The unifont API mmaps a pre-compiled bitmap font that was generated out of GNU-Unifont font-data. This guarantees, that all users of the font will share the pages in memory. Furthermore, the layout of the binary file allows accessing glyph data in O(1) without pre-rendering glyphs etc. That is, the OS can skip loading pages for glyphs that we never access. Note that this is currently a test-run and we want to include the binary file in the GNU-Unifont package. However, until it was considered stable and accepted by the maintainers, we will ship it as part of systemd. So far it's only enabled with the experimental --enable-terminal, anyway.
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am26
1 files changed, 24 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 012e2e9905..f0482cfe72 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2838,9 +2838,15 @@ noinst_LTLIBRARIES += \
noinst_PROGRAMS += \
systemd-subterm
+unifontdatadir=$(datadir)/unifont
+
+dist_unifontdata_DATA = \
+ src/libsystemd-terminal/unifont-glyph-array.bin
+
tests += \
test-term-page \
- test-term-parser
+ test-term-parser \
+ test-unifont
endif
libsystemd_terminal_la_CFLAGS = \
@@ -2852,7 +2858,9 @@ libsystemd_terminal_la_SOURCES = \
src/libsystemd-terminal/term-page.c \
src/libsystemd-terminal/term-parser.c \
src/libsystemd-terminal/term-screen.c \
- src/libsystemd-terminal/term-wcwidth.c
+ src/libsystemd-terminal/term-wcwidth.c \
+ src/libsystemd-terminal/unifont-internal.h \
+ src/libsystemd-terminal/unifont.c
libsystemd_terminal_la_LIBADD = \
libsystemd-internal.la \
@@ -2882,6 +2890,20 @@ test_term_parser_LDADD = \
libsystemd-internal.la \
libsystemd-shared.la
+test_unifont_SOURCES = \
+ src/libsystemd-terminal/test-unifont.c
+
+test_unifont_LDADD = \
+ libsystemd-terminal.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
+update-unifont:
+ $(AM_V_GEN)cat $(top_srcdir)/src/libsystemd-terminal/unifont.hex | $(PYTHON) $(top_srcdir)/tools/compile-unifont.py >$(top_srcdir)/src/libsystemd-terminal/unifont-glyph-array.bin
+ @echo "unifont-glyph-array.bin has been regenerated"
+
+.PHONY: update-unifont
+
# ------------------------------------------------------------------------------
if ENABLE_GTK_DOC
SUBDIRS += \