From fc480550b024daa706112fca45f6b42be92e9284 Mon Sep 17 00:00:00 2001 From: Santiago Alessandri Date: Mon, 5 Sep 2011 14:42:55 -0300 Subject: [PATCH] Autoconf and Automake files for compiling and installing the library --- Makefile.in | 14 +++++-- configure | 102 ++++++++++++++++++++++++++++++++++++++++++++++++--- configure.ac | 5 ++- 3 files changed, 110 insertions(+), 11 deletions(-) diff --git a/Makefile.in b/Makefile.in index 08ee260..ff89f4f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,11 +1,11 @@ CXX=@CXX@ -CFLAGS=-c -Wall @CFLAGS@ -DTINS_VERSION=@PACKAGE_VERSION@ -LDFLAGS=-lpcap +CFLAGS=-c -Wall -fPIC @CFLAGS@ -DTINS_VERSION=@PACKAGE_VERSION@ +LDFLAGS=-lpcap -shared -Wl,-soname,libtins.so SOURCES=$(wildcard src/*.cpp) OBJECTS=$(SOURCES:.cpp=.o) -INCLUDE = -Iinclude/ -EXECUTABLE=client +INCLUDE=-Iinclude/ +EXECUTABLE=libtins.so all: $(SOURCES) $(EXECUTABLE) @@ -21,3 +21,9 @@ $(EXECUTABLE): $(OBJECTS) clean: rm $(OBJECTS) $(EXECUTABLE) + +install: + rm -r /usr/include/tins + mkdir /usr/include/tins + cp include/*.h /usr/include/tins/ + cp $(EXECUTABLE) /usr/lib/ diff --git a/configure b/configure index 0bafc8d..9d12c98 100755 --- a/configure +++ b/configure @@ -1586,6 +1586,52 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_cxx_check_header_compile + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -2854,19 +2900,65 @@ fi done -for ac_header +for ac_header in pcap.h do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + ac_fn_cxx_check_header_mongrel "$LINENO" "pcap.h" "ac_cv_header_pcap_h" "$ac_includes_default" +if test "x$ac_cv_header_pcap_h" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_PCAP_H 1 _ACEOF fi done +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_loop in -lpcap" >&5 +$as_echo_n "checking for pcap_loop in -lpcap... " >&6; } +if test "${ac_cv_lib_pcap_pcap_loop+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpcap $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pcap_loop (); +int +main () +{ +return pcap_loop (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_cv_lib_pcap_pcap_loop=yes +else + ac_cv_lib_pcap_pcap_loop=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcap_pcap_loop" >&5 +$as_echo "$ac_cv_lib_pcap_pcap_loop" >&6; } +if test "x$ac_cv_lib_pcap_pcap_loop" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPCAP 1 +_ACEOF + + LIBS="-lpcap $LIBS" + +else + as_fn_error $? "pcap library is needed!" "$LINENO" 5 +fi + ac_config_files="$ac_config_files Makefile" diff --git a/configure.ac b/configure.ac index 2597c81..bf89377 100644 --- a/configure.ac +++ b/configure.ac @@ -3,13 +3,14 @@ AC_INIT(myconfig, 0.1) AC_PROG_CXX() AC_LANG(C++) -if test -n "$debug" +if test -n "$debug" then CFLAGS="-DDEBUG -g" else CFLAGS="-O3" fi -AC_CHECK_HEADERS([]) +AC_CHECK_HEADERS([pcap.h]) +AC_CHECK_LIB(pcap, pcap_loop, [], [AC_MSG_ERROR([pcap library is needed!])]) AC_SUBST(CFLAGS) AC_OUTPUT(Makefile)