Make libkfont public library

Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
diff --git a/.gitignore b/.gitignore
index 210e900..be3305c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,6 +60,7 @@
 src/libkeymap/syms.latin2.h
 src/libkeymap/syms.latin3.h
 src/libkeymap/syms.latin4.h
+src/libkfont/libkfont.pc
 src/loadkeys
 src/loadunimap
 src/mapscrn
diff --git a/Makefile.am b/Makefile.am
index 111c90c..efa8478 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,6 +7,7 @@
 AM_DISTCHECK_CONFIGURE_FLAGS = \
 	--disable-code-coverage \
 	--enable-libkeymap \
+	--enable-libkfont \
 	--enable-optional-progs \
 	${DISTCHECK_CONFIGURE_EXTRA_FLAGS}
 
diff --git a/configure.ac b/configure.ac
index edc85a1..ef6a84e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -132,6 +132,17 @@
 	[BUILD_LIBKEYMAP=$enableval],[BUILD_LIBKEYMAP=no])
 AM_CONDITIONAL(BUILD_LIBKEYMAP, test "$BUILD_LIBKEYMAP" = "yes")
 
+AC_ARG_ENABLE(libkfont,
+	AS_HELP_STRING(--enable-libkfont, [Build and install a libkfont]),
+	[BUILD_LIBKFONT=$enableval],[BUILD_LIBKFONT=no])
+AM_CONDITIONAL(BUILD_LIBKFONT, test "$BUILD_LIBKFONT" = "yes")
+
+BUILD_LIBKBDFILE=no
+if test "$BUILD_LIBKFONT" = "yes" -o "$BUILD_LIBKEYMAP" = "yes"; then
+	BUILD_LIBKBDFILE=yes
+fi
+AM_CONDITIONAL(BUILD_LIBKBDFILE, test "$BUILD_LIBKBDFILE" = "yes")
+
 AC_ARG_ENABLE(vlock,
 	AS_HELP_STRING(--disable-vlock, [do not build vlock]),
 	[VLOCK_PROG=$enableval],[VLOCK_PROG=yes])
@@ -207,6 +218,7 @@
 	resizecons:             ${RESIZECONS_PROGS}
 	optional progs:         ${OPTIONAL_PROGS}
 	vlock:                  ${VLOCK_PROG}
-	libkbdfile:             ${BUILD_LIBKEYMAP}
+	libkbdfile:             ${BUILD_LIBKBDFILE}
 	libkeymap:              ${BUILD_LIBKEYMAP}
+	libkfont:               ${BUILD_LIBKFONT}
 ])
diff --git a/src/libkbdfile/Makefile.am b/src/libkbdfile/Makefile.am
index 247f128..2152633 100644
--- a/src/libkbdfile/Makefile.am
+++ b/src/libkbdfile/Makefile.am
@@ -24,7 +24,7 @@
 KBDFILE_REVISION = 0
 KBDFILE_AGE      = 0
 
-if BUILD_LIBKEYMAP
+if BUILD_LIBKBDFILE
 lib_LTLIBRARIES = libkbdfile.la
 nobase_include_HEADERS = $(headers)
 libkbdfile_la_LDFLAGS = -export-symbols-regex ^kbdfile_.* -version-info $(KBDFILE_CURRENT):$(KBDFILE_REVISION):$(KBDFILE_AGE)
diff --git a/src/libkfont/Makefile.am b/src/libkfont/Makefile.am
index dbe198a..266d272 100644
--- a/src/libkfont/Makefile.am
+++ b/src/libkfont/Makefile.am
@@ -12,6 +12,9 @@
 
 AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
 
+CLEANFILES = libkfont.pc
+EXTRA_DIST = libkfont.pc.in libkfont.map
+
 LDADD = \
 	$(top_builddir)/src/libcommon/libcommon.a \
 	$(CODE_COVERAGE_LIBS)
@@ -37,6 +40,26 @@
 	setfont.c \
 	kdfontop.c
 
+libkfont_la_LIBADD = $(builddir)/../libkbdfile/libkbdfile.la
 libkfont_la_LDFLAGS = -Wl,-soname,$(KFONT_SONAME),--version-script=$(KFONT_MAPFILE),-z,defs,-stats
 
+if BUILD_LIBKFONT
+pkgconfigdir   = $(libdir)/pkgconfig
+pkgconfig_DATA = libkfont.pc
+
+nobase_include_HEADERS = kfont.h
+lib_LTLIBRARIES = libkfont.la
+else
 noinst_LTLIBRARIES = libkfont.la
+endif
+
+%.pc: %.pc.in Makefile
+	$(SED) \
+	    -e 's,[@]VERSION[@],$(VERSION),g' \
+	    -e 's,[@]prefix[@],$(prefix),g' \
+	    -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
+	    -e 's,[@]libdir[@],$(libdir),g' \
+	    -e 's,[@]includedir[@],$(includedir),g' \
+	    <$< >$(builddir)/$@
+	touch -r $< $(builddir)/$@
+	chmod 644 $(builddir)/$@
diff --git a/src/libkfont/libkfont.map b/src/libkfont/libkfont.map
index 5e0873a..0ea76d2 100644
--- a/src/libkfont/libkfont.map
+++ b/src/libkfont/libkfont.map
@@ -7,6 +7,7 @@
   global:
     kfont_activatemap;
     kfont_disactivatemap;
+    kfont_get_font;
     kfont_get_fontsize;
     kfont_get_unicodemap;
     kfont_get_uniscrnmap;
diff --git a/src/libkfont/libkfont.pc.in b/src/libkfont/libkfont.pc.in
new file mode 100644
index 0000000..98927e0
--- /dev/null
+++ b/src/libkfont/libkfont.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libkfont
+Version: @VERSION@
+Description: Library to manage the Linux console fonts
+Requires:
+Libs: -L${libdir} -lkfont -lkbdfile
+Libs.private:
+Cflags: -I${includedir}