]> The Tcpdump Group git mirrors - libpcap/commitdiff
Moving DAG support to 'pcap-config' method for external dependencies.
authorStephen Donnelly <[email protected]>
Wed, 16 Feb 2011 02:00:45 +0000 (15:00 +1300)
committerStephen Donnelly <[email protected]>
Wed, 16 Feb 2011 02:05:04 +0000 (15:05 +1300)
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.

configure.in

index 01c65c7d17bd2739d4e70710032bdc9226a851b9..061fb5c25ad7f8a041c666c5619982127abfd7f0 100644 (file)
@@ -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