Refactor autotools scripts
* Add --disable-tls * Check for libxml2 if expat is not found * Single coding style
This commit is contained in:
14
Makefile.am
14
Makefile.am
@@ -9,7 +9,7 @@ PARSER_LIBS=@PARSER_LIBS@
|
|||||||
SSL_CFLAGS = @openssl_CFLAGS@
|
SSL_CFLAGS = @openssl_CFLAGS@
|
||||||
SSL_LIBS = @openssl_LIBS@
|
SSL_LIBS = @openssl_LIBS@
|
||||||
|
|
||||||
DIST_LIBS = @DIST_LIBS@
|
RESOLV_LIBS = @RESOLV_LIBS@
|
||||||
|
|
||||||
STROPHE_FLAGS = -I$(top_srcdir)
|
STROPHE_FLAGS = -I$(top_srcdir)
|
||||||
STROPHE_LIBS = libstrophe.la
|
STROPHE_LIBS = libstrophe.la
|
||||||
@@ -18,18 +18,24 @@ STROPHE_LIBS = libstrophe.la
|
|||||||
lib_LTLIBRARIES = libstrophe.la
|
lib_LTLIBRARIES = libstrophe.la
|
||||||
|
|
||||||
libstrophe_la_CFLAGS = $(SSL_CFLAGS) $(STROPHE_FLAGS) $(PARSER_CFLAGS)
|
libstrophe_la_CFLAGS = $(SSL_CFLAGS) $(STROPHE_FLAGS) $(PARSER_CFLAGS)
|
||||||
libstrophe_la_LDFLAGS = $(SSL_LIBS) $(PARSER_LIBS) $(DIST_LIBS) -no-undefined
|
libstrophe_la_LDFLAGS = $(SSL_LIBS) $(PARSER_LIBS) $(RESOLV_LIBS) -no-undefined
|
||||||
# Export only public API
|
# Export only public API
|
||||||
libstrophe_la_LDFLAGS += -export-symbols-regex '^xmpp_'
|
libstrophe_la_LDFLAGS += -export-symbols-regex '^xmpp_'
|
||||||
libstrophe_la_SOURCES = src/auth.c src/conn.c src/ctx.c \
|
libstrophe_la_SOURCES = src/auth.c src/conn.c src/ctx.c \
|
||||||
src/event.c src/handler.c src/hash.c src/jid.c src/md5.c \
|
src/event.c src/handler.c src/hash.c src/jid.c src/md5.c \
|
||||||
src/resolver.c src/sasl.c src/scram.c src/sha1.c \
|
src/resolver.c src/sasl.c src/scram.c src/sha1.c \
|
||||||
src/snprintf.c src/sock.c src/stanza.c \
|
src/snprintf.c src/sock.c src/stanza.c src/util.c \
|
||||||
src/tls_openssl.c src/util.c src/rand.c src/uuid.c \
|
src/rand.c src/uuid.c \
|
||||||
src/common.h src/hash.h src/md5.h src/ostypes.h src/parser.h \
|
src/common.h src/hash.h src/md5.h src/ostypes.h src/parser.h \
|
||||||
src/resolver.h src/sasl.h src/scram.h src/sha1.h src/snprintf.h \
|
src/resolver.h src/sasl.h src/scram.h src/sha1.h src/snprintf.h \
|
||||||
src/sock.h src/tls.h src/util.h src/rand.h
|
src/sock.h src/tls.h src/util.h src/rand.h
|
||||||
|
|
||||||
|
if DISABLE_TLS
|
||||||
|
libstrophe_la_SOURCES += src/tls_dummy.c
|
||||||
|
else
|
||||||
|
libstrophe_la_SOURCES += src/tls_openssl.c
|
||||||
|
endif
|
||||||
|
|
||||||
if PARSER_EXPAT
|
if PARSER_EXPAT
|
||||||
libstrophe_la_SOURCES += src/parser_expat.c
|
libstrophe_la_SOURCES += src/parser_expat.c
|
||||||
else
|
else
|
||||||
|
|||||||
173
configure.ac
173
configure.ac
@@ -9,108 +9,117 @@ PKG_PROG_PKG_CONFIG
|
|||||||
|
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AS_CASE([$host_os],
|
AS_CASE([$host_os],
|
||||||
[freebsd*], [PLATFORM="bsd"],
|
[freebsd*], [PLATFORM="bsd"],
|
||||||
[openbsd*], [PLATFORM="bsd"],
|
[openbsd*], [PLATFORM="bsd"],
|
||||||
[netbsd*], [PLATFORM="bsd"],
|
[netbsd*], [PLATFORM="bsd"],
|
||||||
[*nto*|*qnx*], [PLATFORM="qnx"],
|
[*nto*|*qnx*], [PLATFORM="qnx"],
|
||||||
[*solaris*], [PLATFORM="solaris"],
|
[*solaris*], [PLATFORM="solaris"],
|
||||||
[PLATFORM="nix"])
|
[PLATFORM="nix"])
|
||||||
|
|
||||||
PKG_CHECK_MODULES([openssl], [openssl], [PC_REQUIRES="openssl ${PC_REQUIRES}"],
|
|
||||||
[AC_CHECK_HEADER([openssl/ssl.h],
|
|
||||||
[
|
|
||||||
openssl_LIBS="-lssl -lcrypto"
|
|
||||||
PC_LIBS="${openssl_LIBS} ${PC_LIBS}"
|
|
||||||
],
|
|
||||||
[AC_MSG_ERROR([openssl not found; openssl required])]
|
|
||||||
)])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES([check], [check >= 0.9.4], [], [AC_MSG_WARN([libcheck not found; unit tests will not be compilable])])
|
|
||||||
|
|
||||||
AC_ARG_WITH([libxml2],
|
AC_ARG_WITH([libxml2],
|
||||||
[AS_HELP_STRING([--with-libxml2], [use libxml2 for XML parsing])],
|
[AS_HELP_STRING([--with-libxml2], [use libxml2 for XML parsing, expat is the default])])
|
||||||
[], [with_libxml2=no])
|
AC_ARG_ENABLE([tls],
|
||||||
|
[AS_HELP_STRING([--disable-tls], [disable TLS support])])
|
||||||
|
|
||||||
if test "x$with_libxml2" != xno; then
|
PKG_CHECK_MODULES([check], [check >= 0.9.4],
|
||||||
PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7],
|
[], [AC_MSG_WARN([libcheck not found; unit tests will not be compilable])])
|
||||||
[
|
|
||||||
with_libxml2=yes
|
if test "x$enable_tls" != xno; then
|
||||||
PC_REQUIRES="libxml-2.0 ${PC_REQUIRES}"
|
PKG_CHECK_MODULES([openssl], [openssl],
|
||||||
],
|
[PC_REQUIRES="openssl ${PC_REQUIRES}"],
|
||||||
[
|
[AC_CHECK_HEADER([openssl/ssl.h],
|
||||||
old_CFLAGS=$CFLAGS
|
[
|
||||||
CFLAGS="-I${includedir}/libxml2"
|
openssl_LIBS="-lssl -lcrypto"
|
||||||
AC_CHECK_HEADER([libxml/parser.h],
|
PC_LIBS="${openssl_LIBS} ${PC_LIBS}"
|
||||||
[
|
],
|
||||||
with_libxml2=yes
|
[AC_MSG_ERROR([openssl not found; openssl required])]
|
||||||
libxml2_CFLAGS="-I${includedir}/libxml2"
|
)])
|
||||||
libxml2_LIBS="-lxml2"
|
|
||||||
PC_LIBS="${libxml2_LIBS} ${PC_LIBS}"
|
|
||||||
PC_CFLAGS="${libxml2_CFLAGS} ${PC_CFLAGS}"
|
|
||||||
],
|
|
||||||
[AC_MSG_ERROR([libxml2 not found.])])
|
|
||||||
CFLAGS=$old_CFLAGS
|
|
||||||
])
|
|
||||||
else
|
|
||||||
PKG_CHECK_MODULES([expat], [expat >= 2.0.0],
|
|
||||||
[PC_REQUIRES="expat ${PC_REQUIRES} "],
|
|
||||||
[AC_CHECK_HEADER([expat.h],
|
|
||||||
[
|
|
||||||
expat_LIBS="-lexpat"
|
|
||||||
PC_LIBS="${expat_LIBS} ${PC_LIBS}"
|
|
||||||
],
|
|
||||||
[AC_MSG_ERROR([expat not found; expat required.])]
|
|
||||||
)
|
|
||||||
])
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$with_libxml2" = xyes; then
|
with_parser=""
|
||||||
with_parser=libxml2
|
if test "x$with_libxml2" != xyes; then
|
||||||
PARSER_CFLAGS=$libxml2_CFLAGS
|
PKG_CHECK_MODULES([expat], [expat >= 2.0.0],
|
||||||
PARSER_LIBS=$libxml2_LIBS
|
[
|
||||||
|
with_parser="expat"
|
||||||
|
PC_REQUIRES="expat ${PC_REQUIRES}"
|
||||||
|
],
|
||||||
|
[AC_CHECK_HEADER([expat.h],
|
||||||
|
[
|
||||||
|
with_parser="expat"
|
||||||
|
expat_LIBS="-lexpat"
|
||||||
|
PC_LIBS="${expat_LIBS} ${PC_LIBS}"
|
||||||
|
])
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
if test "x$with_libxml2" != xno -a "x$with_parser" = x; then
|
||||||
|
PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7],
|
||||||
|
[
|
||||||
|
with_parser="libxml2"
|
||||||
|
PC_REQUIRES="libxml-2.0 ${PC_REQUIRES}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
old_CFLAGS=$CFLAGS
|
||||||
|
CFLAGS="-I${includedir}/libxml2"
|
||||||
|
AC_CHECK_HEADER([libxml/parser.h],
|
||||||
|
[
|
||||||
|
with_parser="libxml2"
|
||||||
|
libxml2_CFLAGS="-I${includedir}/libxml2"
|
||||||
|
libxml2_LIBS="-lxml2"
|
||||||
|
PC_LIBS="${libxml2_LIBS} ${PC_LIBS}"
|
||||||
|
PC_CFLAGS="${libxml2_CFLAGS} ${PC_CFLAGS}"
|
||||||
|
])
|
||||||
|
CFLAGS=$old_CFLAGS
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$with_parser" = xlibxml2; then
|
||||||
|
PARSER_CFLAGS=$libxml2_CFLAGS
|
||||||
|
PARSER_LIBS=$libxml2_LIBS
|
||||||
|
elif test "x$with_parser" = xexpat; then
|
||||||
|
PARSER_CFLAGS=$expat_CFLAGS
|
||||||
|
PARSER_LIBS=$expat_LIBS
|
||||||
else
|
else
|
||||||
with_parser=expat
|
AC_MSG_ERROR([no XML parser was found, libstrophe requires expat or libxml2])
|
||||||
PARSER_CFLAGS=$expat_CFLAGS
|
|
||||||
PARSER_LIBS=$expat_LIBS
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_NOTICE([libstrophe will use the $with_parser XML parser])
|
AC_MSG_NOTICE([libstrophe will use the $with_parser XML parser])
|
||||||
|
|
||||||
AC_SEARCH_LIBS([socket], [socket])
|
AC_SEARCH_LIBS([socket], [socket])
|
||||||
|
|
||||||
DIST_LIBS=""
|
|
||||||
AS_CASE([$PLATFORM],
|
AS_CASE([$PLATFORM],
|
||||||
[bsd], [DIST_LIBS="${DIST_LIBS}"],
|
[bsd], [RESOLV_LIBS=""],
|
||||||
[qnx], [DIST_LIBS="-lsocket ${DIST_LIBS}"],
|
[qnx], [RESOLV_LIBS="-lsocket"],
|
||||||
[solaris], [DIST_LIBS="-lresolv -lsocket -lnsl ${DIST_LIBS}"],
|
[solaris], [RESOLV_LIBS="-lresolv -lsocket -lnsl"],
|
||||||
[DIST_LIBS="-lresolv ${DIST_LIBS}"])
|
[RESOLV_LIBS="-lresolv"])
|
||||||
|
|
||||||
LIBS_TMP="${LIBS}"
|
LIBS_TMP="${LIBS}"
|
||||||
LIBS="${DIST_LIBS}"
|
LIBS="${RESOLV_LIBS}"
|
||||||
AC_LINK_IFELSE([AC_LANG_SOURCE([
|
AC_LINK_IFELSE([AC_LANG_SOURCE([
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/nameser.h>
|
#include <arpa/nameser.h>
|
||||||
#include <resolv.h>
|
#include <resolv.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
(void)res_query(NULL, 0, 0, NULL, 0);
|
(void)res_query(NULL, 0, 0, NULL, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
])],
|
])],
|
||||||
[],
|
[],
|
||||||
[AC_MSG_ERROR([res_query() not found with LIBS="${LIBS}"])])
|
[AC_MSG_ERROR([res_query() not found with LIBS="${LIBS}"])])
|
||||||
LIBS="${LIBS_TMP}"
|
LIBS="${LIBS_TMP}"
|
||||||
PC_LIBS="${DIST_LIBS} ${PC_LIBS}"
|
PC_LIBS="${RESOLV_LIBS} ${PC_LIBS}"
|
||||||
|
|
||||||
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR],
|
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR],
|
||||||
[AC_ARG_WITH([pkgconfigdir],
|
[AC_ARG_WITH([pkgconfigdir],
|
||||||
[AS_HELP_STRING([--with-pkgconfigdir],
|
[AS_HELP_STRING([--with-pkgconfigdir],
|
||||||
[install directory for libstrophe.pc pkg-config file])],
|
[install directory for libstrophe.pc pkg-config file])],
|
||||||
[],[with_pkgconfigdir='$(libdir)/pkgconfig'])
|
[], [with_pkgconfigdir='$(libdir)/pkgconfig'])
|
||||||
AC_SUBST([pkgconfigdir], [${with_pkgconfigdir}])])
|
AC_SUBST([pkgconfigdir], [${with_pkgconfigdir}])])
|
||||||
|
|
||||||
AM_CONDITIONAL([PARSER_EXPAT], [test x$with_parser != xlibxml2])
|
AM_CONDITIONAL([PARSER_EXPAT], [test x$with_parser != xlibxml2])
|
||||||
|
AM_CONDITIONAL([DISABLE_TLS], [test x$enable_tls = xno])
|
||||||
|
|
||||||
AC_SUBST([PC_REQUIRES], [${PC_REQUIRES}])
|
AC_SUBST([PC_REQUIRES], [${PC_REQUIRES}])
|
||||||
AC_SUBST([PC_CFLAGS], [${PC_CFLAGS}])
|
AC_SUBST([PC_CFLAGS], [${PC_CFLAGS}])
|
||||||
@@ -118,6 +127,6 @@ AC_SUBST([PC_LIBS], [${PC_LIBS}])
|
|||||||
|
|
||||||
AC_SUBST(PARSER_CFLAGS)
|
AC_SUBST(PARSER_CFLAGS)
|
||||||
AC_SUBST(PARSER_LIBS)
|
AC_SUBST(PARSER_LIBS)
|
||||||
AC_SUBST(DIST_LIBS)
|
AC_SUBST(RESOLV_LIBS)
|
||||||
AC_CONFIG_FILES([Makefile libstrophe.pc])
|
AC_CONFIG_FILES([Makefile libstrophe.pc])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
Reference in New Issue
Block a user