From c7e0400a7a1f746ae32cd3d5f7f242b794acd380 Mon Sep 17 00:00:00 2001 From: Christian Ruppert Date: Sun, 26 Jul 2009 15:45:15 +0000 Subject: [PATCH] Prepared build-system for tint2conf. Some cleanup. --- Makefile.am | 2 +- configure.ac | 102 +++++++++++++++++++++++++++++--------- doc/Makefile.am | 1 - src/Makefile.am | 13 ++--- src/tint2conf/Makefile.am | 7 +++ 5 files changed, 91 insertions(+), 34 deletions(-) create mode 100644 src/tint2conf/Makefile.am diff --git a/Makefile.am b/Makefile.am index bc85f3d..19345a2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,7 +16,7 @@ examplesdir = dist_examples_DATA = endif -DISTCLEANFILES = configure depcomp config.guess config.sub config.h.in config.h.in~ ltmain.sh missing aclocal.m4 install-sh Makefile.in INSTALL +DISTCLEANFILES += configure depcomp config.guess config.sub config.h.in config.h.in~ ltmain.sh missing aclocal.m4 install-sh INSTALL dist-hook: find $(distdir)/ -type d -name '.svn' -exec rm -rf {} ';' diff --git a/configure.ac b/configure.ac index 81dd04c..01f1b96 100644 --- a/configure.ac +++ b/configure.ac @@ -1,17 +1,48 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_INIT([tint2], [0.7.1], [http://code.google.com/p/tint2/issues]) +AC_INIT([tint2], [9.9.9-svn], [http://code.google.com/p/tint2/issues]) -LT_INIT AM_INIT_AUTOMAKE AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([src/tint.c]) AC_CONFIG_HEADERS([config.h]) +# tint2 +AC_ARG_ENABLE([battery], + [AS_HELP_STRING([--disable-battery], [Disable battery status plugin])], + [case "${enableval}" in + yes) battery=true ;; + no) battery=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --disable-battery]) ;; + esac], [battery=true]) +AM_CONDITIONAL([ENABLE_BATTERY], [test x$battery = xtrue]) +# + +AC_ARG_ENABLE([examples], + [AS_HELP_STRING([--enable-examples], [Install additional tin2rc examples])], + [case "${enableval}" in + yes) examples=true ;; + no) examples=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-examples]) ;; + esac],[examples=false]) +AM_CONDITIONAL([INSTALL_EXAMPLES], [test x$examples = xtrue]) + +# tint2conf +AC_ARG_ENABLE([tint2conf], + [AS_HELP_STRING([--enable-tint2conf], [Build and install tint2conf, a GTK+2 configuration utility for tint2 (EXPERIMENTAL)])], + [case "${enableval}" in + yes) tint2conf=true ;; + no) tint2conf=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-tint2conf]) ;; + esac],[tint2conf=false]) +AM_CONDITIONAL([ENABLE_TINT2CONF], [test x$tint2conf = xtrue]) +# + # Checks for programs. AC_LANG([C]) AC_PROG_CC +PKG_PROG_PKG_CONFIG # Checks for libraries. PKG_CHECK_MODULES([PANGOCAIRO], [pangocairo]) @@ -54,9 +85,10 @@ LIBS=$LIBS_SAVED # Checks for header files. AC_PATH_X -AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h]) +AC_CHECK_HEADERS([fcntl.h locale.h stdlib.h string.h sys/time.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL AC_TYPE_INT16_T AC_TYPE_INT64_T AC_TYPE_INT8_T @@ -67,28 +99,50 @@ AC_FUNC_FORK AC_FUNC_MALLOC AC_CHECK_FUNCS([gettimeofday memset select setlocale strcasecmp strchr strdup]) -AC_ARG_ENABLE([battery], - [AS_HELP_STRING([--disable-battery], [Disable battery status plugin])], - [case "${enableval}" in - yes) battery=true ;; - no) battery=false ;; - *) AC_MSG_ERROR([bad value ${enableval} for --disable-battery]) ;; - esac], [battery=true]) -AM_CONDITIONAL([ENABLE_BATTERY], [test x$battery = xtrue]) - -AC_ARG_ENABLE([examples], - [AS_HELP_STRING([--enable-examples], [Install additional tin2rc examples])], - [case "${enableval}" in - yes) examples=true ;; - no) examples=false ;; - *) AC_MSG_ERROR([bad value ${enableval} for --enable-examples]) ;; - esac],[examples=false]) -AM_CONDITIONAL([INSTALL_EXAMPLES], [test x$examples = xtrue]) - -AC_CONFIG_FILES([ - Makefile +# tint2conf (experimental) +if test "x$tint2conf" = xtrue; +then + # We want just link against stuff we really need so thats why I don't use PKG_CHECK_MODULES. + # gtk/glib is a bit horrible because we have to add -I directives for various features (like cairo, pango etc.) + # even if we don't need them. + # Sorry if that might be confusing %-) + + # Save LIBS value and clear the variable, AC_CHECK_LIB will append all libs to LIBS on success. + LIBS_SAVED=$LIBS + LIBS= + + AC_CHECK_LIB([pthread], [pthread_create], [], + [AC_MSG_ERROR([libpthread is missing, usually provided by glibc])]) + AC_CHECK_LIB([glib-2.0], [g_free], [], + [AC_MSG_ERROR([glib-2.x is missing])]) + AC_CHECK_LIB([gobject-2.0], [g_signal_connect_data], [], + [AC_MSG_ERROR([libgobject-2.0 is missing, usually provided by glib-2.x])]) + AC_CHECK_LIB([gtk-x11-2.0], [gtk_main], [], + [AC_MSG_ERROR([gtk+-2.x is missing or not built with X support])]) + AC_CHECK_LIB([gthread-2.0], [g_thread_init], [], + [AC_MSG_ERROR([libgthread-2.0 is missing, usually provided by glib-2.x])]) + + TINT2CONF_LIBS="${LIBS} ${PTHREAD_LIB} ${GLIB2_LIB} ${GOBJECT2_LIB}" + LIBS=$LIBS_SAVED + + TINT2CONF_CFLAGS="$(${PKG_CONFIG} --cflags gtk+-x11-2.0 glib-2.0 gobject-2.0 gthread-2.0)" + AC_SUBST(TINT2CONF_CFLAGS) + AC_SUBST(TINT2CONF_LIBS) +fi +# + +# +AM_CFLAGS="-Wall" +AM_LDFLAGS="-Wl,--as-needed" +AC_SUBST(AM_CFLAGS) +AC_SUBST(AM_LDFLAGS) + +DISTCLEANFILES="Makefile.in" +AC_SUBST(DISTCLEANFILES) + +AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile - ]) + src/tint2conf/Makefile]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index 2eacb86..c339e79 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,4 +1,3 @@ man1_MANS = $(PACKAGE_NAME).1 EXTRA_DIST = $(man1_MANS) -DISTCLEANFILES = Makefile.in diff --git a/src/Makefile.am b/src/Makefile.am index 6b83cd4..6361366 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,8 +1,8 @@ -AM_CFLAGS = -Wall -AM_CFLAGS += @PANGOCAIRO_CFLAGS@ @PANGO_CFLAGS@ @CAIRO_CFLAGS@ @GLIB2_CFLAGS@ @GOBJECT2_CFLAGS@ @X11_CFLAGS@ @XINERAMA_CFLAGS@ @IMLIB2_CFLAGS@ - -AM_LDFLAGS = -Wl,--as-needed +if ENABLE_TINT2CONF +SUBDIRS = tint2conf +endif +AM_CFLAGS += @PANGOCAIRO_CFLAGS@ @PANGO_CFLAGS@ @CAIRO_CFLAGS@ @GLIB2_CFLAGS@ @GOBJECT2_CFLAGS@ @X11_CFLAGS@ @XINERAMA_CFLAGS@ @IMLIB2_CFLAGS@ LIBS = @PANGOCAIRO_LIBS@ @PANGO_LIBS@ @CAIRO_LIBS@ @GLIB2_LIBS@ @GOBJECT2_LIBS@ @X11_LIBS@ @XINERAMA_LIBS@ @IMLIB2_LIBS@ INCLUDES = -Iutil -Iclock -Itaskbar -Isystray @@ -29,12 +29,9 @@ tint2_SOURCES = config.c \ taskbar/task.h if ENABLE_BATTERY -AM_CFLAGS += -DENABLE_BATTERY +DEFS += -DENABLE_BATTERY INCLUDES += -Ibattery tint2_SOURCES += battery/battery.c \ battery/battery.h endif -DISTCLEANFILES = Makefile.in - - diff --git a/src/tint2conf/Makefile.am b/src/tint2conf/Makefile.am new file mode 100644 index 0000000..b7b625a --- /dev/null +++ b/src/tint2conf/Makefile.am @@ -0,0 +1,7 @@ +if ENABLE_TINT2CONF +bin_PROGRAMS = tint2conf +tint2conf_SOURCES = main.c + +AM_CFLAGS += @TINT2CONF_CFLAGS@ +LIBS += @TINT2CONF_LIBS@ +endif -- 2.45.2