Skip to content
Snippets Groups Projects
Commit 9ee1c035 authored by Dan Egnor's avatar Dan Egnor
Browse files

Start supporting glib 2.0

parent b80e7d8b
No related branches found
No related tags found
No related merge requests found
...@@ -6,9 +6,8 @@ ...@@ -6,9 +6,8 @@
# terms of the GNU Lesser General Public License, version 2.1 or later. # terms of the GNU Lesser General Public License, version 2.1 or later.
# See the file COPYING for details. # See the file COPYING for details.
AUTOMAKE_OPTIONS = foreign 1.2 AUTOMAKE_OPTIONS = foreign 1.7
lib_LTLIBRARIES = liboop-adns.la liboop-glib.la liboop-tcl.la liboop-www.la liboop-rl.la liboop.la lib_LTLIBRARIES = liboop-adns.la liboop-glib.la liboop-glib2.la liboop-tcl.la liboop-www.la liboop-rl.la liboop.la
INCLUDES = $(GLIB_INCLUDES) $(TCL_INCLUDES) $(WWW_INCLUDES)
# versions updated as of 0.8 # versions updated as of 0.8
liboop_la_LDFLAGS = -version-info 4:0:0 # version:revision:age liboop_la_LDFLAGS = -version-info 4:0:0 # version:revision:age
...@@ -20,14 +19,22 @@ liboop_adns_la_SOURCES = adns.c ...@@ -20,14 +19,22 @@ liboop_adns_la_SOURCES = adns.c
liboop_glib_la_LDFLAGS = -version-info 1:0:0 liboop_glib_la_LDFLAGS = -version-info 1:0:0
liboop_glib_la_LIBADD = $(GLIB_LIBS) liboop_glib_la_LIBADD = $(GLIB_LIBS)
liboop_glib_la_CFLAGS = $(GLIB_INCLUDES)
liboop_glib_la_SOURCES = glib.c liboop_glib_la_SOURCES = glib.c
liboop_glib2_la_LDFLAGS = -version-info 0:0:0
liboop_glib2_la_LIBADD = $(GLIB2_LIBS)
liboop_glib2_la_CFLAGS = $(GLIB2_CFLAGS)
liboop_glib2_la_SOURCES = glib.c
liboop_tcl_la_LDFLAGS = -version-info 0:0:0 liboop_tcl_la_LDFLAGS = -version-info 0:0:0
liboop_tcl_la_LIBADD = $(TCL_LIBS) liboop_tcl_la_LIBADD = $(TCL_LIBS)
liboop_tcl_la_CFLAGS = $(TCL_INCLUDES)
liboop_tcl_la_SOURCES = tcl.c liboop_tcl_la_SOURCES = tcl.c
liboop_www_la_LDFLAGS = -version-info 0:0:0 liboop_www_la_LDFLAGS = -version-info 0:0:0
liboop_www_la_LIBADD = $(WWW_LIBS) liboop_www_la_LIBADD = $(WWW_LIBS)
liboop_www_la_CFLAGS = $(WWW_INCLUDES)
liboop_www_la_SOURCES = www.c liboop_www_la_SOURCES = www.c
liboop_rl_la_LDFLAGS = -version-info 0:0:0 liboop_rl_la_LDFLAGS = -version-info 0:0:0
......
...@@ -52,6 +52,8 @@ fi ...@@ -52,6 +52,8 @@ fi
LIBS="$save_libs" LIBS="$save_libs"
CPPFLAGS="$save_cppflags" CPPFLAGS="$save_cppflags"
PKG_CHECK_MODULES(GLIB2,glib-2.0 >= 2.0,AC_DEFINE(HAVE_GLIB),[:])
for version in 8.4 8.3 8.2 8.1 8.0 ; do for version in 8.4 8.3 8.2 8.1 8.0 ; do
CPPFLAGS="$save_cppflags -I/usr/include/tcl$version" CPPFLAGS="$save_cppflags -I/usr/include/tcl$version"
AC_CHECK_LIB(tcl$version,Tcl_Main,[ AC_CHECK_LIB(tcl$version,Tcl_Main,[
...@@ -86,6 +88,8 @@ CFLAGS="-Wall -Wno-comment -Wmissing-prototypes -Wstrict-prototypes -Wpointer-ar ...@@ -86,6 +88,8 @@ CFLAGS="-Wall -Wno-comment -Wmissing-prototypes -Wstrict-prototypes -Wpointer-ar
AC_SUBST(PROG_LDCONFIG) AC_SUBST(PROG_LDCONFIG)
AC_SUBST(GLIB_INCLUDES) AC_SUBST(GLIB_INCLUDES)
AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB2_CFLAGS)
AC_SUBST(GLIB2_LIBS)
AC_SUBST(TCL_INCLUDES) AC_SUBST(TCL_INCLUDES)
AC_SUBST(TCL_LIBS) AC_SUBST(TCL_LIBS)
AC_SUBST(ADNS_LIBS) AC_SUBST(ADNS_LIBS)
......
...@@ -85,19 +85,18 @@ static gint on_poll(GPollFD *array,guint num,gint timeout) { ...@@ -85,19 +85,18 @@ static gint on_poll(GPollFD *array,guint num,gint timeout) {
return count; return count;
} }
#ifdef HAVE_POLL_H
static gint real_poll(GPollFD *array,guint num,gint timeout) {
assert(sizeof(GPollFD) == sizeof(struct pollfd));
return poll((struct pollfd *) array,num,timeout);
}
#endif
oop_source *oop_glib_new(void) { oop_source *oop_glib_new(void) {
if (use_count++) return oop_sys_source(sys); if (use_count++) return oop_sys_source(sys);
sys = oop_sys_new(); sys = oop_sys_new();
sel = oop_select_new(oop_sys_source(sys),on_select,NULL); sel = oop_select_new(oop_sys_source(sys),on_select,NULL);
g_main_set_poll_func(on_poll);
#if GLIB_MAJOR_VERSION >= 2
g_main_context_set_poll_func(g_main_context_default(), on_poll);
#else
g_main_set_poll_func(on_poll);
#endif
return oop_sys_source(sys); return oop_sys_source(sys);
} }
...@@ -107,6 +106,11 @@ void *oop_glib_return(void) { ...@@ -107,6 +106,11 @@ void *oop_glib_return(void) {
} }
#ifdef HAVE_POLL_H #ifdef HAVE_POLL_H
static gint real_poll(GPollFD *array,guint num,gint timeout) {
assert(sizeof(GPollFD) == sizeof(struct pollfd));
return poll((struct pollfd *) array,num,timeout);
}
void oop_glib_delete(void) { void oop_glib_delete(void) {
assert(use_count > 0 && "oop_glib_delete() called too much"); assert(use_count > 0 && "oop_glib_delete() called too much");
if (0 != --use_count) return; if (0 != --use_count) return;
...@@ -115,6 +119,8 @@ void oop_glib_delete(void) { ...@@ -115,6 +119,8 @@ void oop_glib_delete(void) {
oop_sys_delete(sys); oop_sys_delete(sys);
g_main_set_poll_func(real_poll); g_main_set_poll_func(real_poll);
} }
#else
void oop_glib_delete(void) { /* sigh */ }
#endif #endif
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment