summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2006-11-29 17:02:13 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2006-11-29 17:17:24 +1100
commit2f714ca431d6e592c91d55f2c5619afdb4a3b8a1 (patch)
tree1fca19d8458d48aeb2283a9aaa6d2c56bf6b7d2e
parentce360a000076a8cd38f88ee4c4806fcae4fe02dd (diff)
Compile twin as separate libraries.
This change separates twin into a set of libraries (libtwin, libtwin-x11, libtwin-fbdev and libtwin-mouse). Also, generally improve the autoconf magic to make this all work. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--Makefile.am82
-rw-r--r--configure.ac44
-rw-r--r--twin_ttf/Makefile.am7
3 files changed, 74 insertions, 59 deletions
diff --git a/Makefile.am b/Makefile.am
index b6e9150..3f25436 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,21 +1,28 @@
-INCLUDES= @X_CFLAGS@ @WARN_CFLAGS@
+AM_CFLAGS = @WARN_CFLAGS@
+AM_LDFLAGS = -version-info @LIB_VERSION@
SUBDIRS=twin_ttf
-#libtwin_la_SOURCES = \
-# twin.h \
-# twin_draw.c \
-# twin_pixmap.c \
-# twin_primitive.c \
-# twin_screen.c \
-# twin_x11.c \
-# twinint.h
-#
-#lib_LTLIBRARIES = libtwin.la
+EXTRA_PROGRAMS = xtwin ftwin
-bin_PROGRAMS = xtwin ftwin
+bin_PROGRAMS =
+lib_LTLIBRARIES = libtwin.la
-base_SOURCES = \
+if TWIN_X11
+bin_PROGRAMS += xtwin
+lib_LTLIBRARIES += libtwin-x11.la
+endif
+
+if TWIN_FB
+bin_PROGRAMS += ftwin
+lib_LTLIBRARIES += libtwin-fbdev.la
+endif
+
+if TWIN_MOUSE
+lib_LTLIBRARIES += libtwin-mouse.la
+endif
+
+libtwin_la_SOURCES = \
twin.h \
twin_box.c \
twin_button.c \
@@ -46,33 +53,13 @@ base_SOURCES = \
twin_widget.c \
twin_window.c \
twin_work.c \
- twinint.h \
- twin_clock.c \
- twin_clock.h \
- twin_calc.c \
- twin_calc.h \
- twin_text.c \
- twin_text.h
+ twinint.h
-xtwin_SOURCES = $(base_SOURCES) \
- twin_x11.c \
- twin_x11.h \
- twin_demo.c \
- twin_demo.h \
- twin_hello.c \
- twin_hello.h \
- twin_demoline.c \
- twin_demoline.h \
- twin_demospline.c \
- twin_demospline.h \
- xtwin.c
+libtwin_mouse_la_LDFLAGS = -version-info=@PACKAGE_VERSION@
+libtwin_mouse_la_SOURCES = twin_linux_mouse.c \
+ twin_linux_mouse.h
-ftwin_SOURCES = $(base_SOURCES) \
- twin_fbdev.c \
- twin_fbdev.h \
- twin_linux_mouse.c \
- twin_linux_mouse.h \
- twin_demo.c \
+demo_sources = twin_demo.c \
twin_demo.h \
twin_hello.c \
twin_hello.h \
@@ -80,8 +67,21 @@ ftwin_SOURCES = $(base_SOURCES) \
twin_demoline.h \
twin_demospline.c \
twin_demospline.h \
- ftwin.c
+ twin_clock.c \
+ twin_clock.h \
+ twin_calc.c \
+ twin_calc.h \
+ twin_text.c \
+ twin_text.h
+
+libtwin_x11_la_SOURCES = twin_x11.c twin_x11.h
+libtwin_x11_la_CPPFLAGS = @X_CFLAGS@
+
+xtwin_SOURCES = xtwin.c $(demo_sources)
+xtwin_CPPFLAGS = @X_CFLAGS@
+xtwin_LDADD = libtwin.la libtwin-x11.la @X_LIBS@ -lm
-xtwin_LDADD = @X_LIBS@ -lm
+libtwin_fbdev_la_SOURCES = twin_fbdev.c twin_fbdev.h
-ftwin_LDADD = -lm
+ftwin_SOURCES = ftwin.c $(demo_sources)
+ftwin_LDADD = libtwin.la libtwin-fbdev.la libtwin-mouse.la -lm
diff --git a/configure.ac b/configure.ac
index e402f42..006c7f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,11 +23,18 @@ dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT(libtwin, 0.0.0, [keithp@keithp.com], libtwin)
+AC_INIT(libtwin, 0.0.1, [keithp@keithp.com], libtwin)
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE()
AM_MAINTAINER_MODE
+# Library versioning info
+LIB_VERSION_CURRENT=0
+LIB_VERSION_REVISION=1
+LIB_VERSION_AGE=0
+LIB_VERSION="$LIB_VERSION_CURRENT:$LIB_VERSION_REVISION:$LIB_VERSION_AGE"
+AC_SUBST(LIB_VERSION)
+
AM_CONFIG_HEADER(twin_def.h)
# Check for progs
@@ -44,30 +51,33 @@ fi
AC_SUBST(WARN_CFLAGS)
# Check for X
-PKG_CHECK_MODULES(X, x11,
- [x_found_with_pkgconfig=yes],
- [x_found_with_pkgconfig=no])
+PKG_CHECK_MODULES(X, x11, twin_x11="yes", twin_x11="no")
AC_SUBST(X_CFLAGS)
AC_SUBST(X_LIBS)
+# Check for linux framebuffer includes
+AC_CHECK_HEADER(linux/fb.h, twin_fb="yes", twin_fb="no")
-AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
-
-if test "$freetype_config" = "yes"; then
- AC_PATH_PROG(ft_config,freetype-config,no)
- if test "$ft_config" = "no"; then
- AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
- fi
-else
- ft_config="$freetype_config"
-fi
-
-FREETYPE_CFLAGS="`$ft_config --cflags`"
-FREETYPE_LIBS="`$ft_config --libs`"
+# linux mouse
+AC_ARG_ENABLE(linux-mouse,
+ AC_HELP_STRING([--disable-linux-mouse], [Disable linux mouse support]),
+ twin_mouse="$enableval", twin_mouse="yes")
+# Check for freetype
+PKG_CHECK_MODULES(FREETYPE, freetype2, twin_ttf="yes", twin_ttf="no")
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CFLAGS)
+AM_CONDITIONAL(TWIN_X11, test x$twin_x11 = xyes)
+AM_CONDITIONAL(TWIN_FB, test x$twin_fb = xyes)
+AM_CONDITIONAL(TWIN_TTF, test x$twin_ttf = xyes)
+AM_CONDITIONAL(TWIN_MOUSE, test x$twin_mouse = xyes)
+
+AC_MSG_NOTICE([x11 support: $twin_x11])
+AC_MSG_NOTICE([fb support: $twin_fb])
+AC_MSG_NOTICE([twin_ttf tool: $twin_ttf])
+AC_MSG_NOTICE([linux mouse: $twin_mouse])
+
AC_OUTPUT([Makefile
twin.pc
twin_ttf/Makefile])
diff --git a/twin_ttf/Makefile.am b/twin_ttf/Makefile.am
index c608c02..b9d9379 100644
--- a/twin_ttf/Makefile.am
+++ b/twin_ttf/Makefile.am
@@ -1,7 +1,12 @@
AM_CFLAGS=-g
INCLUDES= @WARN_CFLAGS@ @FREETYPE_CFLAGS@
-bin_PROGRAMS = twin_ttf
+EXTRA_PROGRAMS = twin_ttf
+bin_PROGRAMS =
+
+if TWIN_TTF
+bin_PROGRAMS += twin_ttf
+endif
twin_ttf_SOURCES = \
twin_ttf.h \