summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am12
-rw-r--r--configure.ac51
-rw-r--r--libcanberra-gtk3.pc.in11
-rw-r--r--src/Makefile.am77
4 files changed, 140 insertions, 11 deletions
diff --git a/Makefile.am b/Makefile.am
index a950a3b..daa67cb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -37,12 +37,20 @@ pkgconfig_DATA = libcanberra.pc
vapidir = $(datadir)/vala/vapi
vapi_DATA = vala/libcanberra.vapi
+if HAVE_GTK_ANY
+
if HAVE_GTK
pkgconfig_DATA += libcanberra-gtk.pc
+endif
+
+if HAVE_GTK3
+pkgconfig_DATA += libcanberra-gtk3.pc
+endif
+
vapi_DATA += vala/libcanberra-gtk.vapi
-schemasdir = $(GCONF_SCHEMA_FILE_DIR)
-schemas_DATA = libcanberra.schemas
+schemasdir = $(GCONF_SCHEMA_FILE_DIR)
+schemas_DATA = libcanberra.schemas
if GCONF_SCHEMAS_INSTALL
install-data-local:
diff --git a/configure.ac b/configure.ac
index 85c3bde..6a0025c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -374,13 +374,54 @@ else
HAVE_GTK=0
fi
-
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
AC_SUBST(GTK_MODULES_DIR)
AC_SUBST(HAVE_GTK)
AM_CONDITIONAL([HAVE_GTK], [test "x$HAVE_GTK" = x1])
+AC_ARG_ENABLE([gtk3],
+ AS_HELP_STRING([--disable-gtk3], [Disable optional GTK+ 3 support]),
+ [
+ case "${enableval}" in
+ yes) gtk3=yes ;;
+ no) gtk3=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk3) ;;
+ esac
+ ],
+ [gtk3=auto])
+
+AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [false])
+if test "x${gtk3}" != xno ; then
+ PKG_CHECK_MODULES(GTK3, [ gtk+-3.0 gthread-2.0 ],
+ [
+ HAVE_GTK3=1
+ AC_DEFINE([HAVE_GTK3], 1, [Have GTK3?])
+
+ AC_PATH_PROG(GCONFTOOL, gconftool-2)
+ AM_GCONF_SOURCE_2
+
+ GTK3_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
+ GTK3_MODULES_DIR="${libdir}/gtk-3.0/modules"
+ ],
+ [
+ HAVE_GTK3=0
+ if test "x$gtk3" = xyes ; then
+ AC_MSG_ERROR([*** GTK3 not found ***])
+ fi
+ ])
+else
+ HAVE_GTK3=0
+fi
+
+AC_SUBST(GTK3_CFLAGS)
+AC_SUBST(GTK3_LIBS)
+AC_SUBST(GTK3_MODULES_DIR)
+AC_SUBST(HAVE_GTK3)
+AM_CONDITIONAL([HAVE_GTK3], [test "x$HAVE_GTK3" = x1])
+
+AM_CONDITIONAL([HAVE_GTK_ANY], [test "x$HAVE_GTK" = x1 -o "x$HAVE_GTK3" = x1])
+
#### TDB cache support (optional) ####
AC_ARG_ENABLE([tdb],
@@ -583,6 +624,7 @@ Makefile
src/Makefile
libcanberra.pc
libcanberra-gtk.pc
+libcanberra-gtk3.pc
src/canberra.h
gtkdoc/Makefile
doc/Makefile
@@ -646,6 +688,11 @@ if test "x$HAVE_GTK" = "x1" ; then
ENABLE_GTK=yes
fi
+ENABLE_GTK3=no
+if test "x$HAVE_GTK3" = "x1" ; then
+ ENABLE_GTK3=yes
+fi
+
ENABLE_TDB=no
if test "x$HAVE_TDB" = "x1" ; then
ENABLE_TDB=yes
@@ -681,6 +728,8 @@ echo "
Enable lookup cache: ${ENABLE_CACHE}
Enable GTK+: ${ENABLE_GTK}
GTK Modules Directory: ${GTK_MODULES_DIR}
+ Enable GTK3+: ${ENABLE_GTK3}
+ GTK3 Modules Directory: ${GTK3_MODULES_DIR}
"
diff --git a/libcanberra-gtk3.pc.in b/libcanberra-gtk3.pc.in
new file mode 100644
index 0000000..331f2bf
--- /dev/null
+++ b/libcanberra-gtk3.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=${prefix}
+libdir=@libdir@
+includedir=${prefix}/include
+
+Name: libcanberra-gtk3
+Description: Gtk3 Event Sound API
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lcanberra-gtk3 @PTHREAD_LIBS@
+Cflags: -D_REENTRANT -I${includedir}
+Requires: libcanberra gtk+-3.0
diff --git a/src/Makefile.am b/src/Makefile.am
index b24d9fc..90645d4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -17,6 +17,7 @@
# <http://www.gnu.org/licenses/>.
gtkmoduledir = @GTK_MODULES_DIR@
+gtk3moduledir = @GTK3_MODULES_DIR@
plugindir = $(libdir)/libcanberra-@PACKAGE_VERSION@
@@ -272,20 +273,60 @@ libcanberra_null_la_LDFLAGS = \
endif
endif
-if HAVE_GTK
+if HAVE_GTK_ANY
-lib_LTLIBRARIES += \
- libcanberra-gtk.la
+bin_PROGRAMS = \
+ canberra-gtk-play
include_HEADERS += \
canberra-gtk.h
+endif
+
+if HAVE_GTK3
+
+lib_LTLIBRARIES += \
+ libcanberra-gtk3.la
+
+gtk3module_LTLIBRARIES = \
+ libcanberra-gtk3-module.la
+
+libcanberra_gtk3_la_SOURCES = \
+ canberra-gtk.h \
+ canberra-gtk.c
+libcanberra_gtk3_la_CFLAGS = \
+ $(GTK3_CFLAGS)
+libcanberra_gtk3_la_LIBADD = \
+ $(GTK3_LIBS) \
+ libcanberra.la
+libcanberra_gtk3_la_LDFLAGS = \
+ -export-dynamic -version-info $(LIBCANBERRA_GTK_VERSION_INFO)
+
+libcanberra_gtk3_module_la_SOURCES = \
+ canberra-gtk-module.c
+libcanberra_gtk3_module_la_CFLAGS = \
+ $(GTK3_CFLAGS)
+libcanberra_gtk3_module_la_LIBADD = \
+ $(GTK3_LIBS) \
+ libcanberra.la \
+ libcanberra-gtk3.la
+libcanberra_gtk3_module_la_LDFLAGS = \
+ -avoid-version -module -export-dynamic
+
+install-exec-hook:
+ cd $(DESTDIR)$(gtk3moduledir) && \
+ $(LN_S) libcanberra-gtk3-module.so libcanberra-gtk-module.so
+
+endif
+
+if HAVE_GTK
+
+lib_LTLIBRARIES += \
+ libcanberra-gtk.la
+
gtkmodule_LTLIBRARIES = \
libcanberra-gtk-module.la
-bin_PROGRAMS = \
- canberra-gtk-play
-
libcanberra_gtk_la_SOURCES = \
canberra-gtk.h \
canberra-gtk.c
@@ -308,8 +349,20 @@ libcanberra_gtk_module_la_LIBADD = \
libcanberra_gtk_module_la_LDFLAGS = \
-avoid-version -module -export-dynamic
-canberra_gtk_play_SOURCES = \
- canberra-gtk-play.c
+endif
+
+if HAVE_GTK3
+
+canberra_gtk_play_LDADD = \
+ $(GTK3_LIBS) \
+ libcanberra.la \
+ libcanberra-gtk3.la
+canberra_gtk_play_CFLAGS = \
+ $(GTK3_CFLAGS)
+
+else
+if HAVE_GTK
+
canberra_gtk_play_LDADD = \
$(GTK_LIBS) \
libcanberra.la \
@@ -317,6 +370,14 @@ canberra_gtk_play_LDADD = \
canberra_gtk_play_CFLAGS = \
$(GTK_CFLAGS)
+endif
+endif
+
+if HAVE_GTK_ANY
+
+canberra_gtk_play_SOURCES = \
+ canberra-gtk-play.c
+
EXTRA_DIST += \
libcanberra-login-sound.desktop.in \
libcanberra-ready-sound.desktop.in \