From: Stephen Donnelly Date: Wed, 16 Feb 2011 02:00:45 +0000 (+1300) Subject: Moving DAG support to 'pcap-config' method for external dependencies. X-Git-Tag: libpcap-1.2.1~84^2 X-Git-Url: https://git.tcpdump.org/libpcap/commitdiff_plain/cd2eeba800fa5835d16aa95e398b4cd3ed9a3a82 Moving DAG support to 'pcap-config' method for external dependencies. This avoids using ADDLARCHIVEOBJS to add compiled objects from other libraries. Programs statically linking against (libpcap compiled with DAG support) MUST use pcap-config to get the correct additional library dependencies. --- diff --git a/configure.in b/configure.in index 01c65c7d..061fb5c2 100644 --- a/configure.in +++ b/configure.in @@ -753,7 +753,7 @@ if test "$want_dag" != no; then if test -z "$dag_tools_dir"; then dag_tools_dir="$dag_root/tools" - fi + fi if test -r $dag_include_dir/dagapi.h; then ac_cv_lbl_dag_api=yes @@ -761,131 +761,9 @@ if test "$want_dag" != no; then AC_MSG_RESULT([$ac_cv_lbl_dag_api ($dag_include_dir)]) fi -if test $ac_cv_lbl_dag_api = yes; then - - AC_MSG_CHECKING([dagapi.o]) - dagapi_obj=no - if test -r $dag_tools_dir/dagapi.o; then - # 2.4.x. - dagapi_obj=$dag_tools_dir/dagapi.o - elif test -r $dag_lib_dir/dagapi.o; then - # 2.5.x. - dagapi_obj=$dag_lib_dir/dagapi.o - elif test -r $dag_lib_dir/libdag.a; then - # 2.5.x. - ar x $dag_lib_dir/libdag.a dagapi.o 2>/dev/null - if test -r ./dagapi.o; then - dagapi_obj=./dagapi.o - else - ar x $dag_lib_dir/libdag.a libdag_la-dagapi.o 2>/dev/null - if test -r ./libdag_la-dagapi.o; then - dagapi_obj=./libdag_la-dagapi.o - fi - fi - fi - - if test $dagapi_obj = no; then - AC_MSG_RESULT([no (checked $dag_lib_dir $dag_tools_dir $dag_lib_dir/libdag.a)]) - ac_cv_lbl_dag_api=no - else - AC_MSG_RESULT([yes ($dagapi_obj)]) - fi -fi - -if test $ac_cv_lbl_dag_api = yes; then - - AC_MSG_CHECKING([dagopts.o]) - dagopts_obj=no - if test -r $dag_tools_dir/dagopts.o; then - # 2.4.x. - dagopts_obj=$dag_tools_dir/dagopts.o - elif test -r $dag_lib_dir/dagopts.o; then - # 2.5.x. - dagopts_obj=$dag_lib_dir/dagopts.o - elif test -r $dag_lib_dir/libdag.a; then - # 2.5.x. - ar x $dag_lib_dir/libdag.a dagopts.o 2>/dev/null - if test -r ./dagopts.o; then - dagopts_obj=./dagopts.o - else - ar x $dag_lib_dir/libdag.a libdag_la-dagopts.o 2>/dev/null - if test -r ./libdag_la-dagopts.o; then - dagopts_obj=./libdag_la-dagopts.o - fi - fi - fi - - if test $dagopts_obj = no; then - AC_MSG_RESULT([no (checked $dag_lib_dir $dag_tools_dir $dag_lib_dir/libdag.a)]) - ac_cv_lbl_dag_api=no - else - AC_MSG_RESULT([yes ($dagopts_obj)]) - fi -fi - -if test $ac_cv_lbl_dag_api = yes; then - # Under 2.5.x only we need to add dagreg.o. - if test -r $dag_include_dir/dagreg.h; then - AC_MSG_CHECKING([dagreg.o]) - dagreg_obj=no - if test -r $dag_lib_dir/dagreg.o; then - # Object file is ready and waiting. - dagreg_obj=$dag_lib_dir/dagreg.o - elif test -r $dag_lib_dir/libdag.a; then - # Extract from libdag.a. - ar x $dag_lib_dir/libdag.a dagreg.o 2>/dev/null - if test -r ./dagreg.o; then - dagreg_obj=./dagreg.o - else - ar x $dag_lib_dir/libdag.a libdag_la-dagreg.o 2>/dev/null - if test -r ./libdag_la-dagreg.o; then - dagreg_obj=./libdag_la-dagreg.o - fi - fi - fi - - if test $dagreg_obj = no; then - AC_MSG_RESULT([no (checked $dag_lib_dir $dag_lib_dir/libdag.a)]) - ac_cv_lbl_dag_api=no - else - AC_MSG_RESULT([yes ($dagreg_obj)]) - fi - fi -fi - -if test $ac_cv_lbl_dag_api = yes; then - # Under 2.5.x only we need to add dagutil.o. - if test -r $dag_include_dir/dagutil.h; then - AC_MSG_CHECKING([dagutil.o]) - dagutil_obj=no - if test -r $dag_lib_dir/dagutil.o; then - # Object file is ready and waiting. - dagutil_obj=$dag_lib_dir/dagutil.o - elif test -r $dag_lib_dir/libdag.a; then - # Extract from libdag.a. - ar x $dag_lib_dir/libdag.a dagutil.o 2>/dev/null - if test -r ./dagutil.o; then - dagutil_obj=./dagutil.o - else - ar x $dag_lib_dir/libdag.a libdag_la-dagutil.o 2>/dev/null - if test -r ./libdag_la-dagutil.o; then - dagutil_obj=./libdag_la-dagutil.o - fi - fi - fi - - if test $dagutil_obj = no; then - AC_MSG_RESULT([no (checked $dag_lib_dir $dag_lib_dir/libdag.a)]) - ac_cv_lbl_dag_api=no - else - AC_MSG_RESULT([yes ($dagutil_obj)]) - fi - fi -fi - if test $ac_cv_lbl_dag_api = yes; then V_INCLS="$V_INCLS -I$dag_include_dir" - ADDLARCHIVEOBJS="$ADDLARCHIVEOBJS $dagapi_obj $dagopts_obj $dagreg_obj $dagutil_obj" + if test $V_PCAP != dag ; then SSRC="pcap-dag.c" fi @@ -900,13 +778,20 @@ if test $ac_cv_lbl_dag_api = yes; then AC_DEFINE(HAVE_DAG_GET_ERF_TYPES, 1, [define if you have dag_get_erf_types()])]) AC_CHECK_LIB([dag],[dag_get_stream_erf_types], [ AC_DEFINE(HAVE_DAG_GET_STREAM_ERF_TYPES, 1, [define if you have dag_get_stream_erf_types()])]) - LDFLAGS=$saved_ldflags if test "$dag_streams" = 1; then AC_DEFINE(HAVE_DAG_STREAMS_API, 1, [define if you have streams capable DAG API]) LIBS="$LIBS -ldag" + + AC_CHECK_LIB([vdag],[vdag_set_device_info], [ac_dag_have_vdag="1"], [ac_dag_have_vdag="0"]) + if test "$ac_dag_have_vdag" = 1; then + AC_DEFINE(HAVE_DAG_VDAG, 1, [define if you have vdag_set_device_info()]) + LIBS="$LIBS -lpthread" + fi fi + LDFLAGS=$saved_ldflags + AC_DEFINE(HAVE_DAG_API, 1, [define if you have the DAG API]) fi