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

Make the build more robust, and allow packages to be disabled

parent 60d3959c
Branches
No related tags found
No related merge requests found
...@@ -7,37 +7,38 @@ ...@@ -7,37 +7,38 @@
# See the file COPYING for details. # See the file COPYING for details.
AUTOMAKE_OPTIONS = foreign 1.7 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 # versions updated as of 1.0
liboop_la_LDFLAGS = -version-info 4:0:0 # version:revision:age 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_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_LIBADD = $(ADNS_LIBS)
liboop_adns_la_SOURCES = adns.c 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_LIBADD = $(GLIB_LIBS)
liboop_glib_la_CFLAGS = $(GLIB_INCLUDES) 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_LDFLAGS = -version-info 0:0:0 -rpath '$(libdir)'
liboop_glib2_la_LIBADD = $(GLIB2_LIBS) liboop_glib2_la_LIBADD = $(GLIB2_LIBS)
liboop_glib2_la_CFLAGS = $(GLIB2_CFLAGS) liboop_glib2_la_CFLAGS = $(GLIB2_CFLAGS)
liboop_glib2_la_SOURCES = glib.c 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_LIBADD = $(TCL_LIBS)
liboop_tcl_la_CFLAGS = $(TCL_INCLUDES) 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 -rpath '$(libdir)'
liboop_www_la_LIBADD = $(WWW_LIBS) liboop_www_la_LIBADD = $(WWW_LIBS)
liboop_www_la_CFLAGS = $(WWW_INCLUDES) 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 -rpath '$(libdir)'
liboop_rl_la_LIBADD = $(READLINE_LIBS) liboop_rl_la_LIBADD = $(READLINE_LIBS)
liboop_rl_la_SOURCES = readline.c liboop_rl_la_SOURCES = readline.c
......
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
AC_INIT(INSTALL) AC_INIT(INSTALL)
AM_INIT_AUTOMAKE(liboop,0.9) AM_INIT_AUTOMAKE(liboop,1.0)
AC_CANONICAL_HOST AC_CANONICAL_HOST
dnl Use libtool for shared libraries
AM_PROG_LIBTOOL AM_PROG_LIBTOOL
dnl Checks for programs.
AC_PROG_CC AC_PROG_CC
AC_PROG_INSTALL AC_PROG_INSTALL
PROG_LDCONFIG=: 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. dnl System type checks.
case "$host" in case "$host" in
*-linux-*) *-linux-*)
...@@ -27,17 +29,24 @@ esac ...@@ -27,17 +29,24 @@ esac
AC_CHECK_HEADERS(poll.h sys/select.h sys/socket.h string.h strings.h) AC_CHECK_HEADERS(poll.h sys/select.h sys/socket.h string.h strings.h)
if test xno != x$with_adns; then
AC_CHECK_LIB(adns,adns_init,[ AC_CHECK_LIB(adns,adns_init,[
LIBOOP_LIBS="liboop-adns.la $LIBOOP_LIBS"
ADNS_LIBS="-ladns" ADNS_LIBS="-ladns"
AC_DEFINE(HAVE_ADNS) AC_DEFINE(HAVE_ADNS)
]) ])
fi
if test xno != x$with_readline; then
AC_CHECK_LIB(readline,rl_callback_handler_install,[ AC_CHECK_LIB(readline,rl_callback_handler_install,[
AC_CHECK_HEADER(readline/readline.h,[ AC_CHECK_HEADER(readline/readline.h,[
LIBOOP_LIBS="liboop-rl.la $LIBOOP_LIBS"
READLINE_LIBS="-lreadline" READLINE_LIBS="-lreadline"
AC_DEFINE(HAVE_READLINE) AC_DEFINE(HAVE_READLINE)
])]) ])])
fi
if test xno != x$with_glib; then
save_libs="$LIBS" save_libs="$LIBS"
save_cppflags="$CPPFLAGS" save_cppflags="$CPPFLAGS"
AC_CHECK_PROG(PROG_GLIB_CONFIG,glib-config,glib-config) AC_CHECK_PROG(PROG_GLIB_CONFIG,glib-config,glib-config)
...@@ -47,17 +56,26 @@ if test -n "$PROG_GLIB_CONFIG" ; then ...@@ -47,17 +56,26 @@ if test -n "$PROG_GLIB_CONFIG" ; then
LIBS="$save_libs $GLIB_LIBS" LIBS="$save_libs $GLIB_LIBS"
CPPFLAGS="$save_cppflags $GLIB_INCLUDES" CPPFLAGS="$save_cppflags $GLIB_INCLUDES"
AC_CHECK_FUNC(g_main_set_poll_func,[ AC_CHECK_FUNC(g_main_set_poll_func,[
AC_CHECK_HEADER(glib.h,[AC_DEFINE(HAVE_GLIB)])]) AC_CHECK_HEADER(glib.h,[
LIBOOP_LIBS="liboop-glib.la $LIBOOP_LIBS"
AC_DEFINE(HAVE_GLIB)
])])
fi 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),[:]) PKG_CHECK_MODULES(GLIB2,glib-2.0 >= 2.0,[
LIBOOP_LIBS="liboop-glib2.la $LIBOOP_LIBS"
AC_DEFINE(HAVE_GLIB)
],[:])
fi
if test xno != x$with_tcl; then
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,[
AC_CHECK_HEADER(tcl.h,[ AC_CHECK_HEADER(tcl.h,[
LIBOOP_LIBS="liboop-tcl.la $LIBOOP_LIBS"
AC_DEFINE(HAVE_TCL) AC_DEFINE(HAVE_TCL)
TCL_INCLUDES="-I/usr/include/tcl$version" TCL_INCLUDES="-I/usr/include/tcl$version"
TCL_LIBS="-ltcl$version" TCL_LIBS="-ltcl$version"
...@@ -65,8 +83,11 @@ for version in 8.4 8.3 8.2 8.1 8.0 ; do ...@@ -65,8 +83,11 @@ for version in 8.4 8.3 8.2 8.1 8.0 ; do
])]) ])])
done done
CPPFLAGS="$save_cppflags" CPPFLAGS="$save_cppflags"
fi
if test xyes = x$with_libwww; then
AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[ AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[
LIBOOP_LIBS="liboop-www.la $LIBOOP_LIBS"
AC_DEFINE(HAVE_WWW) AC_DEFINE(HAVE_WWW)
# This is just a little unpleasant. # This is just a little unpleasant.
WWW_LIBS=" \ WWW_LIBS=" \
...@@ -75,6 +96,7 @@ AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[ ...@@ -75,6 +96,7 @@ AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[
-lwwwtelnet -lwwwtrans -lwwwutils -lwwwzip -lmd5" -lwwwtelnet -lwwwtrans -lwwwutils -lwwwzip -lmd5"
WWW_INCLUDES="-I/usr/include/w3c-libwww" # the libwww RPM puts headers here WWW_INCLUDES="-I/usr/include/w3c-libwww" # the libwww RPM puts headers here
],,-lwwwutils) ],,-lwwwutils)
fi
if test -z "$no_wacky_libs" ; then if test -z "$no_wacky_libs" ; then
AC_CHECK_LIB(resolv,res_query) AC_CHECK_LIB(resolv,res_query)
...@@ -96,4 +118,5 @@ AC_SUBST(ADNS_LIBS) ...@@ -96,4 +118,5 @@ AC_SUBST(ADNS_LIBS)
AC_SUBST(WWW_INCLUDES) AC_SUBST(WWW_INCLUDES)
AC_SUBST(WWW_LIBS) AC_SUBST(WWW_LIBS)
AC_SUBST(READLINE_LIBS) AC_SUBST(READLINE_LIBS)
AC_SUBST(LIBOOP_LIBS)
AC_OUTPUT(Makefile) AC_OUTPUT(Makefile)
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
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. */
#ifdef HAVE_GLIB
#include "glib.h" #include "glib.h"
#include "oop-glib.h" #include "oop-glib.h"
#include "oop.h" #include "oop.h"
...@@ -132,5 +130,3 @@ void oop_glib_delete(void) { ...@@ -132,5 +130,3 @@ void oop_glib_delete(void) {
oop_select_delete(sel); oop_select_delete(sel);
oop_sys_delete(sys); oop_sys_delete(sys);
} }
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment