modified autotool to dynamically link libpcre

pull/69/head
Kevin Lin 11 years ago
parent 0f9ce68529
commit d9a7c276ab
  1. 2
      clamav-milter/Makefile.am
  2. 2
      clambc/Makefile.am
  3. 2
      clamconf/Makefile.am
  4. 2
      clamd/Makefile.am
  5. 2
      clamdscan/Makefile.am
  6. 2
      clamdtop/Makefile.am
  7. 2
      clamscan/Makefile.am
  8. 10
      configure.ac
  9. 2
      freshclam/Makefile.am
  10. 16
      libclamav/Makefile.am
  11. 6
      libclamav/c++/Makefile.am
  12. 92
      m4/reorganization/libs/pcre.m4
  13. 3
      m4/reorganization/substitutions.m4
  14. 2
      sigtool/Makefile.am
  15. 6
      unit_tests/Makefile.am

@ -47,5 +47,5 @@ endif
DEFS = @DEFS@ -DCL_NOLIBCLAMAV
LIBS = $(top_builddir)/libclamav/libclamav_internal_utils.la @CLAMAV_MILTER_LIBS@ @THREAD_LIBS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ -I$(top_srcdir)/clamd -I$(top_srcdir)/libclamav -I$(top_srcdir)/shared -I$(top_srcdir) @JSON_CPPFLAGS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ -I$(top_srcdir)/clamd -I$(top_srcdir)/libclamav -I$(top_srcdir)/shared -I$(top_srcdir) @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
CLEANFILES=*.gcda *.gcno

@ -8,7 +8,7 @@ clambc_SOURCES = \
$(top_srcdir)/shared/misc.h \
bcrun.c
AM_CFLAGS=@WERR_CFLAGS@ @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
AM_CFLAGS=@WERR_CFLAGS@ @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav
LIBS = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@
CLEANFILES=*.gcda *.gcno

@ -31,7 +31,7 @@ AM_CFLAGS=@WERR_CFLAGS@ @SSL_CPPFLAGS@
DEFS = @DEFS@ -DCL_NOTHREADS
AM_CPPFLAGS = @CLAMCONF_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav\
@JSON_CPPFLAGS@\
@JSON_CPPFLAGS@ @PCRE_CPPFLAGS@\
-DBUILD_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILD_CFLAGS="\"$(CFLAGS)\""\
-DBUILD_CXXFLAGS="\"$(CXXFLAGS)\"" -DBUILD_LDFLAGS="\"$(LDFLAGS)\""\
-DBUILD_CONFIGURE_FLAGS="\"$(BUILD_CONFIGURE_FLAGS)\""

@ -53,7 +53,7 @@ AM_CFLAGS=@WERR_CFLAGS@
endif
LIBS = $(top_builddir)/libclamav/libclamav.la @CLAMD_LIBS@ @THREAD_LIBS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav
# it does support --help and --version but with the default config file
# it outputs an error message which tells us to edit the config files

@ -44,7 +44,7 @@ endif
DEFS = @DEFS@ -DCL_NOTHREADS -DCL_NOLIBCLAMAV
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/clamscan -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @CLAMDSCAN_CPPFLAGS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/clamscan -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @CLAMDSCAN_CPPFLAGS@
LIBS = $(top_builddir)/libclamav/libclamav_internal_utils_nothreads.la @CLAMDSCAN_LIBS@
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT=clamdscan$(EXEEXT)

@ -11,7 +11,7 @@ clamdtop_SOURCES = \
clamdtop.c
AM_CFLAGS=@WERR_CFLAGS@
AM_CPPFLAGS = -I$(top_srcdir) @CURSES_CPPFLAGS@ @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
AM_CPPFLAGS = -I$(top_srcdir) @CURSES_CPPFLAGS@ @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
clamdtop_LDADD = @CURSES_LIBS@ @SSL_LDFLAGS@ @SSL_LIBS@ $(top_builddir)/libclamav/libclamav_internal_utils_nothreads.la
endif
DEFS = @DEFS@ -DCL_NOTHREADS -DCL_NOLIBCLAMAV

@ -38,6 +38,6 @@ clamscan_SOURCES = \
AM_CFLAGS=@WERR_CFLAGS@
DEFS = @DEFS@ -DCL_NOTHREADS
LIBS = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@ @CLAMSCAN_LIBS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @CLAMSCAN_CPPFLAGS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @CLAMSCAN_CPPFLAGS@
CLEANFILES=*.gcda *.gcno

@ -81,6 +81,7 @@ dnl libclamav dependencies
m4_include([m4/reorganization/libs/xml.m4])
m4_include([m4/reorganization/libs/openssl.m4])
m4_include([m4/reorganization/libs/json.m4])
m4_include([m4/reorganization/libs/pcre.m4])
AM_MAINTAINER_MODE
m4_include([m4/reorganization/libs/libz.m4])
@ -222,7 +223,14 @@ AC_MSG_NOTICE([Summary of engine detection features])
CL_MSG_STATUS([bzip2 ],[$bzip_check],[$want_bzip2])
CL_MSG_STATUS([zlib ],[$ZLIB_HOME],[yes])
CL_MSG_STATUS([unrar ],[$want_unrar],[$want_unrar])
CL_MSG_STATUS([preclass ],[$LIBJSON_HOME],[$have_json])
if test "x$LIBJSON_HOME" != "x"; then
CL_MSG_STATUS([preclass ],[$LIBJSON_HOME],[$have_json])
fi
if test "x$PCRE_HOME" = "x"; then
CL_MSG_STATUS([pcre ],[no],[$have_pcre])
else
CL_MSG_STATUS([pcre ],[$PCRE_HOME],[$have_pcre])
fi
if test "x$XML_LIBS" = "x"; then
CL_MSG_STATUS([dmg and xar ],[no],[])
else

@ -51,7 +51,7 @@ freshclam_SOURCES = \
AM_CFLAGS=@WERR_CFLAGS@
DEFS = @DEFS@ -DCL_NOTHREADS
AM_CPPFLAGS = @SSL_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @FRESHCLAM_CPPFLAGS@ @JSON_CPPFLAGS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @FRESHCLAM_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
LIBS = @SSL_LDFLAGS@ @SSL_LIBS@ $(top_builddir)/libclamav/libclamav.la @FRESHCLAM_LIBS@ @THREAD_LIBS@
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT=freshclam$(EXEEXT)

@ -94,8 +94,8 @@ libclamav_internal_utils_la_SOURCES=str.c\
regex/utils.h
libclamav_internal_utils_la_LDFLAGS=-static @SSL_LDFLAGS@ @JSON_LDFLAGS@
libclamav_internal_utils_la_CFLAGS=$(AM_CFLAGS) -fPIC -DPIC @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
libclamav_internal_utils_la_LIBADD=@SSL_LIBS@ @JSON_LIBS@
libclamav_internal_utils_la_CFLAGS=$(AM_CFLAGS) -fPIC -DPIC @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
libclamav_internal_utils_la_LIBADD=@SSL_LIBS@ @JSON_LIBS@ @PCRE_LIBS@
libclamav_internal_utils_nothreads_la_SOURCES=str.c\
conv.c \
@ -120,8 +120,8 @@ libclamav_internal_utils_nothreads_la_SOURCES=str.c\
regex/utils.h
libclamav_internal_utils_nothreads_la_LDFLAGS=-static @SSL_LDFLAGS@ @JSON_LDFLAGS@
libclamav_internal_utils_nothreads_la_CFLAGS=$(AM_CFLAGS) -DCL_NOTHREADS @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
libclamav_internal_utils_nothreads_la_LIBADD=@SSL_LIBS@ @JSON_LIBS@
libclamav_internal_utils_nothreads_la_CFLAGS=$(AM_CFLAGS) -DCL_NOTHREADS @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
libclamav_internal_utils_nothreads_la_LIBADD=@SSL_LIBS@ @JSON_LIBS@ @PCRE_LIBS@
if ENABLE_LLVM
LLVMLIBADD=c++/libclamavcxx.la -lstdc++ -lm
@ -136,11 +136,11 @@ distclean-recursive distdir maintainer-clean-recursive: c++/Makefile
endif
libclamav_nocxx_la_SOURCES = bytecode_nojit.c
libclamav_nocxx_la_CFLAGS=$(AM_CFLAGS) @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
libclamav_nocxx_la_CFLAGS=$(AM_CFLAGS) @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
libclamav_la_LIBADD = @SSL_LIBS@ @JSON_LIBS@ @LIBCLAMAV_LIBS@ @LIBLTDL@ $(IFACELIBADD) $(LLVMLIBADD) libclamav_internal_utils.la @THREAD_LIBS@ @LIBM@
libclamav_la_LIBADD = @SSL_LIBS@ @JSON_LIBS@ @PCRE_LIBS@ @LIBCLAMAV_LIBS@ @LIBLTDL@ $(IFACELIBADD) $(LLVMLIBADD) libclamav_internal_utils.la @THREAD_LIBS@ @LIBM@
libclamav_la_DEPENDENCIES = @LTDLDEPS@ $(IFACEDEP) $(LLVMDEP) libclamav_internal_utils.la
libclamav_la_CFLAGS =$(AM_CFLAGS) $(XML_CPPFLAGS) -DSEARCH_LIBDIR=\"$(libdir)\" @LIBCLAMAV_CPPFLAGS@ @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
libclamav_la_CFLAGS =$(AM_CFLAGS) $(XML_CPPFLAGS) -DSEARCH_LIBDIR=\"$(libdir)\" @LIBCLAMAV_CPPFLAGS@ @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
libclamav_la_LDFLAGS = @SSL_LDFLAGS@ @TH_SAFE@ @JSON_LDFLAGS@ $(XML_LIBS) -version-info @LIBCLAMAV_VERSION@ -no-undefined
if VERSIONSCRIPT
@ -408,6 +408,8 @@ libclamav_la_SOURCES = \
prtn_intxn.h \
json_api.c\
json_api.h\
pcre_api.c\
pcre_api.h\
xz_iface.c \
xz_iface.h \
sf_base64decode.c \

@ -34,9 +34,9 @@ if BUILD_EXTERNAL_LLVM
# we know this will be built with GNU make, so its safe to use GNU make specific
# $(shell ...)
#LLVM_DEPS=$(shell $(LLVM_CONFIG) --libfiles jit nativecodegen)
libclamavcxx_la_CXXFLAGS = $(AM_CPPFLAGS) @LLVMCONFIG_CXXFLAGS@ -fexceptions -DLLVM_VERSION=${LLVM_VERSION} @JSON_CPPFLAGS@
libclamavcxx_la_CXXFLAGS = $(AM_CPPFLAGS) @LLVMCONFIG_CXXFLAGS@ -fexceptions -DLLVM_VERSION=${LLVM_VERSION} @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
libclamavcxx_la_LDFLAGS = @LLVMCONFIG_LDFLAGS@ @LLVMCONFIG_LIBS@ @LLVMCONFIG_LDFLAGS@ @JSON_LDFLAGS@
libclamavcxx_la_DEPENDENCIES = @LLVMCONFIG_LIBFILES@ @JSON_LIBS@
libclamavcxx_la_DEPENDENCIES = @LLVMCONFIG_LIBFILES@ @JSON_LIBS@ @PCRE_LIBS@
noinst_LTLIBRARIES = libclamavcxx.la
libclamavcxx_la_SOURCES += PointerTracking.cpp
libclamavcxx_la_SOURCES += PointerTracking.h
@ -48,7 +48,7 @@ noinst_LTLIBRARIES = libclamavcxx.la libllvmsystem.la\
libclamavcxx_la_LIBADD=libllvmjit.la
libclamavcxx_la_DEPENDENCIES=libllvmjit.la libllvmcodegen.la libllvmsystem.la
libclamavcxx_la_LDFLAGS=-no-undefined
libclamavcxx_la_CXXFLAGS = $(LLVM_CXXFLAGS) -DLLVM_VERSION=${LLVM_VERSION} @JSON_CPPFLAGS@
libclamavcxx_la_CXXFLAGS = $(LLVM_CXXFLAGS) -DLLVM_VERSION=${LLVM_VERSION} @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@
if BUILD_X86

@ -0,0 +1,92 @@
dnl Check for PCRE
dnl determine the home of pcre
PCRE_HOME=""
AC_ARG_WITH([pcre],
[ --with-pcre=DIR path to directory containing libpcre library (default=
/usr/local or /usr if not found in /usr/local)],
[
AC_MSG_CHECKING([for libpcre installation])
dnl --with-pcre=no
if test "X$withval" = "Xno"; then
AC_MSG_RESULT([no])
else
dnl --with-pcre=yes
if test "X$withval" = "Xyes"; then
PCRE_HOME=/usr/local
if test ! -x "$PCRE_HOME/bin/pcre-config"; then
PCRE_HOME=/usr
if test ! -x "$PCRE_HOME/bin/pcre-config"; then
PCRE_HOME=""
fi
fi
dnl --with-pcre=something
elif test "$withval"; then
PCRE_HOME="$withval"
if test ! -x "$PCRE_HOME/bin/pcre-config"; then
PCRE_HOME=""
AC_MSG_ERROR([cannot locate libpcre at $withval])
fi
dnl --with-pcre=""
else
AC_MSG_ERROR([cannot assign blank value to --with-pcre])
fi
if test "x$PCRE_HOME" != "x"; then
AC_MSG_RESULT([using $PCRE_HOME])
else
AC_MSG_RESULT([not found])
AC_MSG_WARN([cannot locate libpcre at /usr/local or /usr])
fi
fi
],[
dnl --with-pcre not specified
PCRE_HOME=""
])
dnl if pcre has a home, then check if it is valid and get flags
found_pcre="no"
PCRECONF_VERSION=""
PCRE_CPPFLAGS=""
PCRE_LIBS=""
if test "x$PCRE_HOME" != "x"; then
AC_MSG_CHECKING([pcre-config version])
PCRECONF_VERSION="`$PCRE_HOME/bin/pcre-config --version`"
if test "x%PCRECONF_VERSION" != "x"; then
AC_MSG_RESULT([$PCRECONF_VERSION"])
found_pcre="yes"
PCRE_CPPFLAGS="`$PCRE_HOME/bin/pcre-config --cflags`"
PCRE_LIBS="`$PCRE_HOME/bin/pcre-config --libs`"
else
AC_MSG_ERROR([pcre-config failed])
fi
fi
have_pcre="no"
if test "x$found_pcre" != "xno"; then
AC_MSG_CHECKING([for pcre.h in $PCRE_HOME])
if test ! -f "$XML_HOME/include/pcre.h"; then
AC_MSG_RESULT([not found])
else
AC_MSG_RESULT([found])
save_LIBS="$LIBS"
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $PCRE_CPPFLAGS"
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $PCRE_LIBS"
AC_CHECK_LIB([pcre], [pcre_compile], [have_pcre="yes"], [have_pcre="no"])
CPPFLAGS="$save_CPPFLAGS"
LDFLAGS="$save_LDFLAGS"
LIBS="$save_LIBS"
fi
fi
if test "x$have_pcre" = "xyes"; then
AC_DEFINE([HAVE_PCRE],1,[Define to 1 if you have the 'libpcre' library (-lpcre).])
AC_MSG_NOTICE([Compiling and linking with libpcre from $PCRE_HOME])
fi
dnl AM_CONDITIONAL([HAVE_PCRE], test "x$HAVE_PCRE" = "xyes")

@ -12,6 +12,7 @@ AC_SUBST([CLAMBC_CPPFLAGS])
AC_SUBST([LIBCLAMSHARED_CPPFLAGS])
AC_SUBST([SSL_CPPFLAGS])
AC_SUBST([JSON_CPPFLAGS])
AC_SUBST([PCRE_CPPFLAGS])
AC_SUBST([LIBCLAMAV_LIBS])
AC_SUBST([CLAMD_LIBS])
@ -25,8 +26,10 @@ AC_SUBST([THREAD_LIBS])
AC_SUBST([CLAMDTOP_LIBS])
AC_SUBST([CLAMBC_LIBS])
AC_SUBST([CLAMCONF_LIBS])
AC_SUBST([PCRE_LIBS])
AC_SUBST([SSL_LIBS])
AC_SUBST([SSL_LDFLAGS])
AC_SUBST([JSON_LIBS])
AC_SUBST([JSON_LDFLAGS])

@ -37,6 +37,6 @@ sigtool_SOURCES = \
AM_CFLAGS=@WERR_CFLAGS@
DEFS = @DEFS@ -DCL_NOTHREADS
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @SIGTOOL_CPPFLAGS@
AM_CPPFLAGS = @SSL_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @SIGTOOL_CPPFLAGS@
LIBS = @SSL_LDFLAGS@ @SSL_LIBS@ $(top_builddir)/libclamav/libclamav.la @FRESHCLAM_LIBS@ @THREAD_LIBS@
CLEANFILES=*.gcda *.gcno

@ -35,12 +35,12 @@ check_clamav_SOURCES = check_clamav.c checks.h checks_common.h $(top_builddir)/l
check_jsnorm.c check_str.c check_regex.c\
check_disasm.c check_uniq.c check_matchers.c\
check_htmlnorm.c check_bytecode.c
check_clamav_CPPFLAGS = -I$(top_srcdir) @CHECK_CPPFLAGS@ @JSON_CPPFLAGS@ -DSRCDIR=\"$(abs_srcdir)\" -DOBJDIR=\"$(abs_builddir)\"
check_clamav_CPPFLAGS = -I$(top_srcdir) @CHECK_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -DSRCDIR=\"$(abs_srcdir)\" -DOBJDIR=\"$(abs_builddir)\"
check_clamav_LDADD = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@ @CHECK_LIBS@
check_clamav_LDFLAGS = $(XML_LIBS)
check_clamav_CFLAGS = $(AM_CFLAGS) $(XML_CPPFLAGS)
check_clamd_SOURCES = check_clamd.c checks_common.h
check_clamd_CPPFLAGS = -I$(top_srcdir) @CHECK_CPPFLAGS@ @JSON_CPPFLAGS@ -DSRCDIR=\"$(abs_srcdir)\" -DBUILDDIR=\"$(abs_builddir)\"
check_clamd_CPPFLAGS = -I$(top_srcdir) @CHECK_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -DSRCDIR=\"$(abs_srcdir)\" -DBUILDDIR=\"$(abs_builddir)\"
check_clamd_LDADD = @CHECK_LIBS@ @CLAMD_LIBS@
else
check_clamd_SOURCES = check_clamav_skip.c
@ -48,7 +48,7 @@ check_clamav_SOURCES = check_clamav_skip.c
endif
check_fpu_endian_SOURCES = check_fpu_endian.c
check_fpu_endian_CPPFLAGS = -I$(top_srcdir) @CHECK_CPPFLAGS@ @JSON_CPPFLAGS@ -DSRCDIR=\"$(abs_srcdir)\" -DOBJDIR=\"$(abs_builddir)\"
check_fpu_endian_CPPFLAGS = -I$(top_srcdir) @CHECK_CPPFLAGS@ @JSON_CPPFLAGS@ @PCRE_CPPFLAGS@ -DSRCDIR=\"$(abs_srcdir)\" -DOBJDIR=\"$(abs_builddir)\"
check_fpu_endian_LDADD = $(top_builddir)/libclamav/libclamav.la
check_clamav.c: $(top_builddir)/test/clam.exe clamav.hdb

Loading…
Cancel
Save