build: link each text-font backend separately
authorDavid Herrmann <dh.herrmann@googlemail.com>
Wed, 2 Jan 2013 17:00:14 +0000 (18:00 +0100)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Wed, 2 Jan 2013 17:02:10 +0000 (18:02 +0100)
We want to modularize the text-font library, so we need each backend as a
different library. This step links each of them into a different static
library so we can now link them either into the binary or into modules.

This step also makes 8x16 always compiled into the text-font backend so we
always have a working implementation even though no modules might be
loaded.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Makefile.am
configure.ac
src/text.h

index 8f07dd7..5be1549 100644 (file)
@@ -339,49 +339,62 @@ src/text_font_unifont_data.c: $(UNIFONT) genunifont$(EXEEXT)
 # It has a build-time dependency to UTERM and runtime dependencies to TSM.
 #
 
+TEXT_FONT_LIBS = libtext-font.la
+if BUILD_ENABLE_FONT_UNIFONT
+TEXT_FONT_LIBS += libtext-font-unifont.la
+endif
+if BUILD_ENABLE_FONT_FREETYPE2
+TEXT_FONT_LIBS += libtext-font-freetype2.la
+endif
+if BUILD_ENABLE_FONT_PANGO
+TEXT_FONT_LIBS += libtext-font-pango.la
+endif
+
 if BUILD_ENABLE_KMSCON
-noinst_LTLIBRARIES += libtext-font.la
+noinst_LTLIBRARIES += $(TEXT_FONT_LIBS)
 else
 if BUILD_ENABLE_WLTERM
-noinst_LTLIBRARIES += libtext-font.la
+noinst_LTLIBRARIES += $(TEXT_FONT_LIBS)
 endif
 endif
 
 libtext_font_la_SOURCES = \
-       $(SHL_DLIST) \
-       $(SHL_HASHTABLE) \
-       $(SHL_HOOK) \
        $(SHL_REGISTER) \
        src/text.h \
-       src/text_font.c
-nodist_libtext_font_la_SOURCES =
-
-libtext_font_la_CPPFLAGS = \
-       $(AM_CPPFLAGS)
+       src/text_font.c \
+       src/text_font_8x16.c
 libtext_font_la_LIBADD = \
-       -lpthread \
-       libtsm.la
-
-if BUILD_ENABLE_FONT_8X16
-libtext_font_la_SOURCES += src/text_font_8x16.c
-endif
+       -lpthread
+libtext_font_la_LDFLAGS = \
+       -rdynamic
 
-if BUILD_ENABLE_FONT_UNIFONT
-libtext_font_la_SOURCES += src/text_font_unifont.c
-nodist_libtext_font_la_SOURCES += src/text_font_unifont_data.c
-endif
+libtext_font_unifont_la_SOURCES = src/text_font_unifont.c
+nodist_libtext_font_unifont_la_SOURCES = src/text_font_unifont_data.c
 
-if BUILD_ENABLE_FONT_FREETYPE2
-libtext_font_la_SOURCES += src/text_font_freetype2.c
-libtext_font_la_CPPFLAGS += $(FREETYPE2_CFLAGS)
-libtext_font_la_LIBADD += $(FREETYPE2_LIBS)
-endif
+libtext_font_freetype2_la_SOURCES = \
+       $(SHL_DLIST) \
+       $(SHL_HASHTABLE) \
+       src/text_font_freetype2.c
+libtext_font_freetype2_la_CPPFLAGS = \
+       $(AM_CPPFLAGS) \
+       $(FREETYPE2_CFLAGS)
+libtext_font_freetype2_la_LIBADD = \
+       $(FREETYPE2_LIBS) \
+       -lpthread \
+       libtsm.la
 
-if BUILD_ENABLE_FONT_PANGO
-libtext_font_la_SOURCES += src/text_font_pango.c
-libtext_font_la_CPPFLAGS += $(PANGO_CFLAGS)
-libtext_font_la_LIBADD += $(PANGO_LIBS)
-endif
+libtext_font_pango_la_SOURCES = \
+       $(SHL_DLIST) \
+       $(SHL_HASHTABLE) \
+       src/githead.h \
+       src/text_font_pango.c
+libtext_font_pango_la_CPPFLAGS = \
+       $(AM_CPPFLAGS) \
+       $(PANGO_CFLAGS)
+libtext_font_pango_la_LIBADD = \
+       $(PANGO_LIBS) \
+       -lpthread \
+       libtsm.la
 
 #
 # Binaries
@@ -435,7 +448,7 @@ kmscon_LDADD = \
        $(XKBCOMMON_LIBS) \
        libeloop.la \
        libuterm.la \
-       libtext-font.la \
+       $(TEXT_FONT_LIBS) \
        -lpthread
 
 if BUILD_ENABLE_SESSION_DUMMY
@@ -508,7 +521,7 @@ wlterm_LDADD = \
        $(XKBCOMMON_LIBS) \
        libeloop.la \
        libtsm.la \
-       libtext-font.la \
+       $(TEXT_FONT_LIBS) \
        -lpthread
 
 #
index dd9f287..3eb0803 100644 (file)
@@ -295,23 +295,19 @@ AC_MSG_CHECKING([which font backends the user wants])
 AC_ARG_WITH([fonts],
             [AS_HELP_STRING([--with-fonts],
               [specify list of optional font backends])])
-enable_font_8x16="no"
 enable_font_unifont="no"
 enable_font_freetype2="no"
 enable_font_pango="no"
 if test "x$with_fonts" = "x" ; then
-        enable_font_8x16="yes (default)"
         enable_font_unifont="no (default)"
         enable_font_freetype2="yes (default)"
         enable_font_pango="yes (default)"
-        with_fonts="8x16,freetype2,pango (default)"
+        with_fonts="freetype2,pango (default)"
 else
         SAVEIFS="$IFS"
         IFS=","
         for i in $with_fonts ; do
-                if test "x$i" = "x8x16" ; then
-                        enable_font_8x16="yes"
-                elif test "x$i" = "xunifont" ; then
+                if test "x$i" = "xunifont" ; then
                         enable_font_unifont="yes"
                 elif test "x$i" = "xfreetype2" ; then
                         enable_font_freetype2="yes"
@@ -592,15 +588,6 @@ else
         renderer_gltex_missing="enable-renderer-gltex"
 fi
 
-# font 8x16
-font_8x16_avail=no
-font_8x16_missing=""
-if test ! "x$enable_font_8x16" = "xno" ; then
-        font_8x16_avail=yes
-else
-        font_8x16_missing="enable-font-8x16"
-fi
-
 # font unifont
 font_unifont_avail=no
 font_unifont_missing=""
@@ -835,14 +822,6 @@ if test "x$font_unifont_avail" = "xyes" ; then
         fi
 fi
 
-# font 8x16
-font_8x16_enabled=no
-if test "x$font_8x16_avail" = "xyes" ; then
-        if test "x${enable_font_8x16% *}" = "xyes" ; then
-                font_8x16_enabled=yes
-        fi
-fi
-
 # renderer gltex
 renderer_gltex_enabled=no
 if test "x$renderer_gltex_avail" = "xyes" ; then
@@ -1082,15 +1061,6 @@ fi
 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_GLTEX],
                [test "x$renderer_gltex_enabled" = "xyes"])
 
-# font 8x16
-if test "x$font_8x16_enabled" = "xyes" ; then
-        AC_DEFINE([BUILD_ENABLE_FONT_8X16], [1],
-                  [Build static 8x16 font backend])
-fi
-
-AM_CONDITIONAL([BUILD_ENABLE_FONT_8X16],
-               [test "x$font_8x16_enabled" = "xyes"])
-
 # font unifont
 if test "x$font_unifont_enabled" = "xyes" ; then
         AC_DEFINE([BUILD_ENABLE_FONT_UNIFONT], [1],
@@ -1254,7 +1224,6 @@ AC_MSG_NOTICE([Build configuration:
                   drm: $video_drm_enabled ($video_drm_avail: $video_drm_missing)
 
   Font Backends:
-                 8x16: $font_8x16_enabled ($font_8x16_avail: $font_8x16_missing)
               unifont: $font_unifont_enabled ($font_unifont_avail: $font_unifont_missing)
             freetype2: $font_freetype2_enabled ($font_freetype2_avail: $font_freetype2_missing)
                 pango: $font_pango_enabled ($font_pango_avail: $font_pango_missing)
index f099a60..e3ce346 100644 (file)
@@ -183,24 +183,9 @@ int kmscon_text_render_cb(struct tsm_screen *con, void *data);
 
 /* modularized backends */
 
-#ifdef BUILD_ENABLE_FONT_8X16
-
 int kmscon_font_8x16_load(void);
 void kmscon_font_8x16_unload(void);
 
-#else
-
-static inline int kmscon_font_8x16_load(void)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void kmscon_font_8x16_unload(void)
-{
-}
-
-#endif
-
 #ifdef BUILD_ENABLE_FONT_UNIFONT
 
 int kmscon_font_unifont_load(void);