diff --git a/Makefile.am b/Makefile.am index 64752cde936c66ddc2db98027de326ce8caae67e..5757c4eeb62b61ec6fb1a25a13f1ee0b81b05b7d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,37 +7,38 @@ # See the file COPYING for details. AUTOMAKE_OPTIONS = foreign 1.7 -lib_LTLIBRARIES = liboop-adns.la liboop-glib2.la liboop-glib.la liboop-tcl.la liboop-www.la liboop-rl.la liboop.la +lib_LTLIBRARIES = liboop.la @LIBOOP_LIBS@ +EXTRA_LTLIBRARIES = liboop-adns.la liboop-glib2.la liboop-glib.la liboop-tcl.la liboop-www.la liboop-rl.la -# versions updated as of 0.8 -liboop_la_LDFLAGS = -version-info 4:0:0 # version:revision:age +# versions updated as of 1.0 +liboop_la_LDFLAGS = -version-info 4:1:0 # version:revision:age liboop_la_SOURCES = sys.c select.c signal.c alloc.c read.c read-fd.c read-mem.c -liboop_adns_la_LDFLAGS = -version-info 2:0:0 +liboop_adns_la_LDFLAGS = -version-info 3:0:0 -rpath '$(libdir)' liboop_adns_la_LIBADD = $(ADNS_LIBS) liboop_adns_la_SOURCES = adns.c -liboop_glib_la_LDFLAGS = -version-info 1:0:0 +liboop_glib_la_LDFLAGS = -version-info 1:0:1 -rpath '$(libdir)' liboop_glib_la_LIBADD = $(GLIB_LIBS) liboop_glib_la_CFLAGS = $(GLIB_INCLUDES) liboop_glib_la_SOURCES = glib.c -liboop_glib2_la_LDFLAGS = -version-info 0:0:0 +liboop_glib2_la_LDFLAGS = -version-info 0:0:0 -rpath '$(libdir)' 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 -rpath '$(libdir)' liboop_tcl_la_LIBADD = $(TCL_LIBS) liboop_tcl_la_CFLAGS = $(TCL_INCLUDES) liboop_tcl_la_SOURCES = tcl.c -liboop_www_la_LDFLAGS = -version-info 0:0:0 +liboop_www_la_LDFLAGS = -version-info 0:0:0 -rpath '$(libdir)' liboop_www_la_LIBADD = $(WWW_LIBS) liboop_www_la_CFLAGS = $(WWW_INCLUDES) liboop_www_la_SOURCES = www.c -liboop_rl_la_LDFLAGS = -version-info 0:0:0 +liboop_rl_la_LDFLAGS = -version-info 0:0:0 -rpath '$(libdir)' liboop_rl_la_LIBADD = $(READLINE_LIBS) liboop_rl_la_SOURCES = readline.c diff --git a/configure.ac b/configure.ac index fe624f28924d4d90397d5c0c1acfda4b3ee3c3cf..dc60aa2b9cdc93bd10e67e1c97614f68b930c71a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,16 +1,18 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(INSTALL) -AM_INIT_AUTOMAKE(liboop,0.9) +AM_INIT_AUTOMAKE(liboop,1.0) AC_CANONICAL_HOST - -dnl Use libtool for shared libraries AM_PROG_LIBTOOL - -dnl Checks for programs. AC_PROG_CC AC_PROG_INSTALL PROG_LDCONFIG=: +AC_ARG_WITH(adns, AC_HELP_STRING(--without-adns,disable ADNS adapter)) +AC_ARG_WITH(readline, AC_HELP_STRING(--without-readline,disable readline adapter)) +AC_ARG_WITH(glib, AC_HELP_STRING(--without-glib,disable GLib adapter)) +AC_ARG_WITH(tcl, AC_HELP_STRING(--without-tcl,disable Tcl/Tk adapter)) +AC_ARG_WITH(libwww, AC_HELP_STRING(--with-libwww,build libwww adapter)) + dnl System type checks. case "$host" in *-linux-*) @@ -27,54 +29,74 @@ esac AC_CHECK_HEADERS(poll.h sys/select.h sys/socket.h string.h strings.h) -AC_CHECK_LIB(adns,adns_init,[ - ADNS_LIBS="-ladns" - AC_DEFINE(HAVE_ADNS) -]) - -AC_CHECK_LIB(readline,rl_callback_handler_install,[ -AC_CHECK_HEADER(readline/readline.h,[ - READLINE_LIBS="-lreadline" - AC_DEFINE(HAVE_READLINE) -])]) +if test xno != x$with_adns; then + AC_CHECK_LIB(adns,adns_init,[ + LIBOOP_LIBS="liboop-adns.la $LIBOOP_LIBS" + ADNS_LIBS="-ladns" + AC_DEFINE(HAVE_ADNS) + ]) +fi -save_libs="$LIBS" -save_cppflags="$CPPFLAGS" -AC_CHECK_PROG(PROG_GLIB_CONFIG,glib-config,glib-config) -if test -n "$PROG_GLIB_CONFIG" ; then - GLIB_INCLUDES="`glib-config --cflags`" - GLIB_LIBS="`glib-config --libs`" - LIBS="$save_libs $GLIB_LIBS" - CPPFLAGS="$save_cppflags $GLIB_INCLUDES" - AC_CHECK_FUNC(g_main_set_poll_func,[ - AC_CHECK_HEADER(glib.h,[AC_DEFINE(HAVE_GLIB)])]) +if test xno != x$with_readline; then + AC_CHECK_LIB(readline,rl_callback_handler_install,[ + AC_CHECK_HEADER(readline/readline.h,[ + LIBOOP_LIBS="liboop-rl.la $LIBOOP_LIBS" + READLINE_LIBS="-lreadline" + AC_DEFINE(HAVE_READLINE) + ])]) fi -LIBS="$save_libs" -CPPFLAGS="$save_cppflags" -PKG_CHECK_MODULES(GLIB2,glib-2.0 >= 2.0,AC_DEFINE(HAVE_GLIB),[:]) +if test xno != x$with_glib; then + save_libs="$LIBS" + save_cppflags="$CPPFLAGS" + AC_CHECK_PROG(PROG_GLIB_CONFIG,glib-config,glib-config) + if test -n "$PROG_GLIB_CONFIG" ; then + GLIB_INCLUDES="`glib-config --cflags`" + GLIB_LIBS="`glib-config --libs`" + LIBS="$save_libs $GLIB_LIBS" + CPPFLAGS="$save_cppflags $GLIB_INCLUDES" + AC_CHECK_FUNC(g_main_set_poll_func,[ + AC_CHECK_HEADER(glib.h,[ + LIBOOP_LIBS="liboop-glib.la $LIBOOP_LIBS" + AC_DEFINE(HAVE_GLIB) + ])]) + fi + LIBS="$save_libs" + CPPFLAGS="$save_cppflags" -for version in 8.4 8.3 8.2 8.1 8.0 ; do - CPPFLAGS="$save_cppflags -I/usr/include/tcl$version" - AC_CHECK_LIB(tcl$version,Tcl_Main,[ - AC_CHECK_HEADER(tcl.h,[ - AC_DEFINE(HAVE_TCL) - TCL_INCLUDES="-I/usr/include/tcl$version" - TCL_LIBS="-ltcl$version" - break - ])]) -done -CPPFLAGS="$save_cppflags" + PKG_CHECK_MODULES(GLIB2,glib-2.0 >= 2.0,[ + LIBOOP_LIBS="liboop-glib2.la $LIBOOP_LIBS" + AC_DEFINE(HAVE_GLIB) + ],[:]) +fi -AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[ - AC_DEFINE(HAVE_WWW) - # This is just a little unpleasant. - WWW_LIBS=" \ - -lwwwapp -lwwwcache -lwwwcore -lwwwdir -lwwwfile -lwwwftp -lwwwgopher \ - -lwwwhtml -lwwwhttp -lwwwinit -lwwwmime -lwwwmux -lwwwnews -lwwwstream \ - -lwwwtelnet -lwwwtrans -lwwwutils -lwwwzip -lmd5" - WWW_INCLUDES="-I/usr/include/w3c-libwww" # the libwww RPM puts headers here -],,-lwwwutils) +if test xno != x$with_tcl; then + for version in 8.4 8.3 8.2 8.1 8.0 ; do + CPPFLAGS="$save_cppflags -I/usr/include/tcl$version" + AC_CHECK_LIB(tcl$version,Tcl_Main,[ + AC_CHECK_HEADER(tcl.h,[ + LIBOOP_LIBS="liboop-tcl.la $LIBOOP_LIBS" + AC_DEFINE(HAVE_TCL) + TCL_INCLUDES="-I/usr/include/tcl$version" + TCL_LIBS="-ltcl$version" + break + ])]) + done + CPPFLAGS="$save_cppflags" +fi + +if test xyes = x$with_libwww; then + AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[ + LIBOOP_LIBS="liboop-www.la $LIBOOP_LIBS" + AC_DEFINE(HAVE_WWW) + # This is just a little unpleasant. + WWW_LIBS=" \ + -lwwwapp -lwwwcache -lwwwcore -lwwwdir -lwwwfile -lwwwftp -lwwwgopher \ + -lwwwhtml -lwwwhttp -lwwwinit -lwwwmime -lwwwmux -lwwwnews -lwwwstream \ + -lwwwtelnet -lwwwtrans -lwwwutils -lwwwzip -lmd5" + WWW_INCLUDES="-I/usr/include/w3c-libwww" # the libwww RPM puts headers here + ],,-lwwwutils) +fi if test -z "$no_wacky_libs" ; then AC_CHECK_LIB(resolv,res_query) @@ -96,4 +118,5 @@ AC_SUBST(ADNS_LIBS) AC_SUBST(WWW_INCLUDES) AC_SUBST(WWW_LIBS) AC_SUBST(READLINE_LIBS) +AC_SUBST(LIBOOP_LIBS) AC_OUTPUT(Makefile) diff --git a/glib.c b/glib.c index 6358405cf09a1cddf4d24ee45005f27c5df44d36..d2b785e86415da8eee78f5430a6d1f3b964777e0 100644 --- a/glib.c +++ b/glib.c @@ -4,8 +4,6 @@ terms of the GNU Lesser General Public License, version 2.1 or later. See the file COPYING for details. */ -#ifdef HAVE_GLIB - #include "glib.h" #include "oop-glib.h" #include "oop.h" @@ -132,5 +130,3 @@ void oop_glib_delete(void) { oop_select_delete(sel); oop_sys_delete(sys); } - -#endif