Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > e4b4830c1bf8d1a0e268769c360fb063 > files > 4

sipp-3.2-2.fc15.src.rpm

From c1df32611c92bd2708ba98a64b81b5d1fd269c0b Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov@gmail.com>
Date: Thu, 2 Sep 2010 19:04:58 +0400
Subject: [PATCH 4/5] Add autotools support

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
---
 Makefile     |  234 ----------------------------------------------------------
 Makefile.am  |   41 ++++++++++
 configure.ac |  131 ++++++++++++++++++++++++++++++++
 3 files changed, 172 insertions(+), 234 deletions(-)
 delete mode 100644 Makefile
 create mode 100644 Makefile.am
 create mode 100644 configure.ac

diff --git a/Makefile b/Makefile
deleted file mode 100644
index 6975fa0..0000000
--- a/Makefile
+++ /dev/null
@@ -1,234 +0,0 @@
-#  This program is free software; you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
-#  Copyright (C) 2003 - The Authors
-#
-#  Author : Richard GAYRAUD - 04 Nov 2003
-#           From Hewlett Packard Company.
-#
-
--include local.mk
-SVN_VERSION=$(shell if test -d .svn ; then svnversion . | sed -e 's/^/svn/;' ;  else echo unknown ; fi)
-VERINFO=-DSVN_VERSION="\"$(SVN_VERSION)\""
-
-# Output binary to be built
-OUTPUT=sipp
-
-# C & C++ object files to be built
-OBJ= xp_parser.o message.o scenario.o screen.o call.o comp.o sipp.o stat.o \
-     actions.o variables.o infile.o deadcall.o task.o socketowner.o listener.o \
-     opentask.o reporttask.o watchdog.o
-
-# Libraries directories
-LIBDIR_linux=
-LIBDIR_FreeBSD=
-LIBDIR_hpux=
-LIBDIR_tru64=
-LIBDIR_SunOS=
-LIBDIR_Cygwin=
-LIBDIR_Darwin=
-
-# Archive file created in your home directory when building the archive target
-# ARCHIVE= $(HOME)/$(OUTPUT).tgz
-ARCHIVE= $(OUTPUT).tgz
-
-# Files to be erased by 'make clean' in addition to the output 
-# binaries and object files:
-TOCLEAN= *.log $(ARCHIVE) \
-         *.csv *.exe
-
-###################################################################
-# Generic Rules
-
-#OSNAME=`uname`
-#MODELNAME=`uname -m`
-
-# SYSTEM nickname
-SYSTEM_HP-UX=hpux
-SYSTEM_Linux=linux
-SYSTEM_FreeBSD=freebsd
-SYSTEM_OSF1=tru64
-SYSTEM_SunOS=SunOS
-SYSTEM_CYGWIN=Cygwin
-SYSTEM_Darwin=Darwin
-SYSTEM=$(SYSTEM_$(OSNAME))
-
-# C compiler
-CC_hpux=aCC
-CC_linux=gcc  
-CC_freebsd=cc  
-CC_tru64=cc  
-CC_SunOS=gcc
-CC_Cygwin=cc  
-CC_Darwin=cc  
-CC=$(CC_$(SYSTEM))
-
-# C++ compiler mapping
-CPP_hpux=aCC  
-CPP_linux=g++  
-CPP_freebsd=g++  
-CPP_tru64=cxx  
-CPP_SunOS=g++
-CPP_Cygwin=g++  
-CPP_Darwin=g++  
-CPP=$(CPP_$(SYSTEM))
-
-#Model specific flags
-MFLAGS_ia64=+DD64
-MFLAGS_9000/800=+DAportable
-MFLAGS_9000/785=+DAportable
-MFLAGS_i686=
-MFLAGS_i586=
-MFLAGS_i486=
-MFLAGS_i386=
-MFLAGS_ppc=
-MFLAGS=$(MFLAGS_$(MODELNAME))
-
-#C Compiler Flags
-# supress warning #829 (Implicit conversion of string literal to
-#'char *' is deprecated) since this is both common and harmless
-CFLAGS_hpux=-D__HPUX -DPROTOTYPES +W829
-CFLAGS_linux=-D__LINUX -pthread 
-CFLAGS_freebsd=-D__LINUX -pthread
-CFLAGS_tru64=-D__OSF1 -pthread
-CFLAGS_SunOS=${DEBUG_FLAGS} -D__SUNOS
-CFLAGS_Cygwin=-D__CYGWIN -Dsocklen_t=int
-CFLAGS_Darwin=-D__DARWIN
-CFLAGS=$(CFLAGS_$(SYSTEM)) $(VERINFO) $(TLS) $(PCAPPLAY) $(EXTRACFLAGS)
-
-#C++ Compiler Flags
-CPPFLAGS_hpux=-AA -mt -D__HPUX -D_INCLUDE_LONGLONG -DNOMACROS +W829  
-CPPFLAGS_linux=-D__LINUX -pthread 
-CPPFLAGS_freebsd=-D__LINUX -pthread
-CPPFLAGS_tru64=-D__OSF1 -pthread
-CPPFLAGS_SunOS=${DEBUG_FLAGS} -D__SUNOS
-CPPFLAGS_Cygwin=-D__CYGWIN -Dsocklen_t=int
-CPPFLAGS_Darwin=-D__DARWIN
-CPPFLAGS=$(CPPFLAGS_$(SYSTEM)) $(VERINFO) $(TLS) $(PCAPPLAY) $(EXTRACPPFLAGS)
-
-#Linker mapping
-CCLINK_hpux=aCC
-CCLINK_linux=gcc
-CCLINK_freebsd=g++
-CCLINK_tru64=cxx
-CCLINK_SunOS=gcc
-CCLINK_Cygwin=g++
-CCLINK_Darwin=g++
-CCLINK=$(CCLINK_$(SYSTEM))
-
-#Linker Flags
-LFLAGS_hpux=-AA -mt
-LFLAGS_linux=
-LFLAGS_freebsd=
-LFLAGS_tru64=
-LFLAGS_SunOS=-mt ${DEBUG_FLAGS}
-LFLAGS_Cygwin=
-LFLAGS_Darwin=
-LFLAGS=$(LFLAGS_$(SYSTEM)) $(EXTRALFLAGS)
-
-#Link Libraries
-LIBS_linux= -ldl -lpthread -lncurses -lstdc++ -lm
-LIBS_hpux= -lcurses -lpthread -L /opt/openssl/lib -L /usr/local/lib
-LIBS_tru64= -lcurses -lpthread
-LIBS_freebsd= -lcurses -pthread -L /usr/local/lib
-LIBS_SunOS= -lcurses -lpthread -lnsl -lsocket -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lm -ldl -L /usr/local/ssl/lib/
-LIBS_Cygwin= -lcurses -lpthread -lstdc++ -L /usr/lib/WpdPack/Lib
-LIBS_Darwin= -lcurses
-LIBS=$(LIBS_$(SYSTEM)) $(EXTRALIBS)
-
-# Include directories
-INCDIR_linux=-I.
-INCDIR_freebsd=-I. -I/usr/local/include
-INCDIR_hpux=-I. -I/usr/local/include -I/opt/openssl/include
-INCDIR_tru64=-I. -I/opt/openssl/include
-INCDIR_SunOS=-I. -I/usr/local/ssl/include/
-INCDIR_Cygwin=-I. -I/usr/include/openssl -I/usr/include -I/usr/lib/WpdPack/Include
-INCDIR_Darwin=-I. -I/usr/local/ssl/include
-INCDIR=$(INCDIR_$(SYSTEM)) 
-
--include local.mk
-
-# Building without TLS and authentication (no openssl pre-requisite)
-all:
-	$(MAKE) OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` $(OUTPUT)
-
-# Building with TLS and authentication
-ossl:
-	$(MAKE) OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` OBJ_TLS="auth.o sslinit.o sslthreadsafe.o  milenage.o rijndael.o" TLS_LIBS="-lssl -lcrypto" TLS="-D_USE_OPENSSL -DOPENSSL_NO_KRB5" $(OUTPUT)
-
-#Building with PCAP play
-pcapplay:
-	$(MAKE) OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` OBJ_PCAPPLAY="send_packets.o prepare_pcap.o" PCAPPLAY_LIBS="-lpcap" PCAPPLAY="-DPCAPPLAY" $(OUTPUT)
-
-pcapplay_ossl:
-	$(MAKE) OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` OBJ_TLS="auth.o sslinit.o sslthreadsafe.o  milenage.o rijndael.o" TLS_LIBS="-lssl -lcrypto" TLS="-D_USE_OPENSSL -DOPENSSL_NO_KRB5"  OBJ_PCAPPLAY="send_packets.o prepare_pcap.o" PCAPPLAY_LIBS="-lpcap `if test -f ./ext; then echo -L./ext/lib; fi;`" PCAPPLAY="-DPCAPPLAY `if test -f ./ext; then echo -I./ext/include; fi;`" $(OUTPUT)
-
-pcapplay_hp_li_ia:
-	@_HPUX_LI_FLAG=-D_HPUX_LI ; export _HPUX_LI_FLAG ; $(MAKE) pcapplay
-
-pcapplay_ossl_hp_li_ia:
-	@_HPUX_LI_FLAG=-D_HPUX_LI ; export _HPUX_LI_FLAG ; $(MAKE) pcapplay_ossl
-
-pcapplay_cygwin:
-	$(MAKE) OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` OBJ_PCAPPLAY="send_packets.o prepare_pcap.o" PCAPPLAY_LIBS="-lwpcap" PCAPPLAY="-DPCAPPLAY" $(OUTPUT)
-
-pcapplay_ossl_cygwin:
-	$(MAKE) OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` OBJ_TLS="auth.o sslinit.o sslthreadsafe.o  milenage.o rijndael.o" TLS_LIBS="-lssl -lcrypto" TLS="-D_USE_OPENSSL -DOPENSSL_NO_KRB5"  OBJ_PCAPPLAY="send_packets.o prepare_pcap.o" PCAPPLAY_LIBS="-lwpcap" PCAPPLAY="-DPCAPPLAY" $(OUTPUT)
-
-$(OUTPUT): $(OBJ_TLS) $(OBJ_PCAPPLAY) $(OBJ)
-	$(CCLINK) $(LFLAGS) $(MFLAGS) $(LIBDIR_$(SYSTEM)) \
-	$(DEBUG_FLAGS) -o $@ $(OBJ_TLS) $(OBJ_PCAPPLAY) $(OBJ) $(LIBS) $(TLS_LIBS) $(PCAPPLAY_LIBS) $(EXTRAENDLIBS)
-
-debug:
-	DEBUG_FLAGS="-g -pg" ; export DEBUG_FLAGS ; $(MAKE) all
-
-debug_ossl:
-	@DEBUG_FLAGS=-g ; export DEBUG_FLAGS ; $(MAKE) ossl
-
-debug_pcap:
-	@DEBUG_FLAGS=-g ; export DEBUG_FLAGS ; make pcapplay
-
-debug_pcap_cygwin:
-	@DEBUG_FLAGS=-g ; export DEBUG_FLAGS ; $(MAKE) pcapplay_ossl_cygwin
-
-clean:
-	rm -f *.o $(OUTPUT) *~ $(TOCLEAN) 
-	rm -rf cxx_repository
-
-archive:
-	rm -f TMP_TAR_FILE.* $(ARCHIVE)
-	$(MAKE) clean
-	tar cf TMP_TAR_FILE.tar .
-	gzip TMP_TAR_FILE.tar
-	cp TMP_TAR_FILE.tar.gz $(ARCHIVE)
-	rm -f TMP_TAR_FILE.*
-
-
-# Files types rules
-.SUFFIXES: .o .cpp .c .h .hpp
-
-*.o: *.h *.hpp
-
-.C.o:
-	$(CPP) $(CPPFLAGS) $(MFLAGS) $(DEBUG_FLAGS) $(_HPUX_LI_FLAG) $(INCDIR) -c -o $*.o $<
-
-.cpp.o:
-	$(CPP) $(CPPFLAGS) $(MFLAGS) $(DEBUG_FLAGS) $(_HPUX_LI_FLAG) $(INCDIR) -c -o $*.o $<
-
-.c.o:
-	$(CC) $(CFLAGS) $(MFLAGS) $(DEBUG_FLAGS) $(_HPUX_LI_FLAG) $(INCDIR) -c -o $*.o $<
-
-fortune.so: fortune.cpp
-	g++ -fPIC $(CPPFLAGS) $(MFLAGS) $(DEBUG_FLAGS) $(_HPUX_LI_FLAG) $(INCDIR) -c -o fortune.o $<
-	gcc -shared -Wl,-soname,fortune.so -o $@ fortune.o
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..c6acf8b
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,41 @@
+bin_PROGRAMS = sipp
+
+DEFS +=  $(SYS_DEFINES)
+
+if HAVE_OPENSSL
+ssl_SOURCES = auth.c \
+	      milenage.c \
+	      rijndael.c \
+	      sslinit.c \
+	      sslthreadsafe.c
+endif
+
+if HAVE_PCAP
+pcap_SOURCES = prepare_pcap.c \
+	       send_packets.c
+endif
+
+sipp_SOURCES = comp.c \
+	       xp_parser.c \
+	       actions.cpp \
+	       call.cpp \
+	       deadcall.cpp \
+	       infile.cpp \
+	       listener.cpp \
+	       message.cpp \
+	       opentask.cpp \
+	       reporttask.cpp \
+	       scenario.cpp \
+	       screen.cpp \
+	       sipp.cpp \
+	       socketowner.cpp \
+	       stat.cpp \
+	       task.cpp \
+	       variables.cpp \
+	       watchdog.cpp \
+	       $(ssl_SOURCES) \
+	       $(pcap_SOURCES)
+
+sipp_LDADD = @LIBOBJS@
+
+#	       fortune.cpp
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..e7891d2
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,131 @@
+# ======================== initialization ===============================
+
+AC_INIT([SIPp], [3.1], [sipp-users@lists.sourceforge.net], [sipp])
+
+AC_CANONICAL_TARGET
+
+AC_CONFIG_SRCDIR([sipp.cpp])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign dist-xz])
+
+AC_ARG_WITH([openssl],AC_HELP_STRING([--with-openssl], [build with OpenSSL support]), [openssl="$withval"],[openssl="no"])
+AC_ARG_WITH([pcap],AC_HELP_STRING([--with-pcap], [build with pcap support]), [pcap="$withval"],[pcap="no"])
+
+# ==================== basic compiler settings ==========================
+
+AC_PROG_CC
+AC_PROG_CXX
+AC_HEADER_STDC
+
+# ==================== checks for libraries =============================
+AC_CHECK_LIB(curses,initscr,,[AC_MSG_ERROR([ncurses library missing])])
+
+# For Linux and SunOS
+AC_SEARCH_LIBS([dlopen], [dl])
+AC_SEARCH_LIBS([dlerror], [dl])
+AC_SEARCH_LIBS([dlsym], [dl])
+
+# For SunOS
+AC_SEARCH_LIBS([inet_addr], [nsl])
+AC_SEARCH_LIBS([inet_ntoa], [nsl])
+
+AC_SEARCH_LIBS([pthread_mutex_init], [pthread])
+AC_SEARCH_LIBS([pthread_mutex_destroy], [pthread])
+AC_SEARCH_LIBS([pthread_mutex_lock], [pthread])
+AC_SEARCH_LIBS([pthread_mutex_unlock], [pthread])
+AC_SEARCH_LIBS([pthread_self], [pthread])
+AC_SEARCH_LIBS([pthread_cancel], [pthread])
+AC_SEARCH_LIBS([pthread_join], [pthread])
+AC_SEARCH_LIBS([pthread_attr_init], [pthread])
+AC_SEARCH_LIBS([pthread_attr_setstacksize], [pthread])
+AC_SEARCH_LIBS([pthread_create], [pthread])
+AC_SEARCH_LIBS([pthread_attr_destroy], [pthread])
+AC_SEARCH_LIBS([pthread_setschedparam], [pthread])
+AC_SEARCH_LIBS([pthread_setcancelstate], [pthread])
+AC_SEARCH_LIBS([pthread_setcanceltype], [pthread])
+AC_SEARCH_LIBS([pthread_exit], [pthread])
+AC_SEARCH_LIBS([pthread_sigmask], [pthread])
+#AC_SEARCH_LIBS([pthread_cleanup_push], [pthread]) <- macro
+#AC_SEARCH_LIBS([pthread_cleanup_pop], [pthread]) <- macro
+
+AC_SEARCH_LIBS([floor], [m])
+AC_SEARCH_LIBS([pow], [m])
+
+# For SunOS
+AC_SEARCH_LIBS([htons], [socket])
+AC_SEARCH_LIBS([ntohs], [socket])
+AC_SEARCH_LIBS([bind], [socket])
+AC_SEARCH_LIBS([freeaddrinfo], [socket])
+AC_SEARCH_LIBS([getaddrinfo], [socket])
+AC_SEARCH_LIBS([listen], [socket])
+AC_SEARCH_LIBS([recvfrom], [socket])
+AC_SEARCH_LIBS([shutdown], [socket])
+
+# For Linux, SunOS and Cygwin
+#AC_CHECK_LIB(stdc++,main,,[AC_MSG_ERROR([stdc++ library missing])])
+
+# Conditional build with OpenSSL
+if test "$openssl" = 'yes'; then
+	AC_CHECK_HEADERS([openssl/md5.h],,[AC_MSG_ERROR([<openssl/md5.h> header missing])])
+	AC_CHECK_HEADERS([openssl/bio.h],,[AC_MSG_ERROR([<openssl/bio.h> header missing])])
+	AC_CHECK_HEADERS([openssl/err.h],,[AC_MSG_ERROR([<openssl/err.h> header missing])])
+	AC_CHECK_HEADERS([openssl/rand.h],,[AC_MSG_ERROR([<openssl/rand.h> header missing])])
+	AC_CHECK_HEADERS([openssl/ssl.h],,[AC_MSG_ERROR([<openssl/ssl.h> header missing])])
+	AC_CHECK_HEADERS([openssl/x509v3.h],,[AC_MSG_ERROR([<openssl/x509v3.h> header missing])])
+	AC_CHECK_LIB([ssl], [SSL_library_init],,[AC_MSG_ERROR([ssl library missing])])
+	AC_CHECK_LIB([crypto], [CRYPTO_num_locks],,[AC_MSG_ERROR([crypto library missing])])
+fi
+# For Makefile.am
+AM_CONDITIONAL(HAVE_OPENSSL, test "$openssl" = "yes")
+
+# Conditional build with pcap
+if test "$pcap" = 'yes'; then
+	AC_CHECK_HEADERS([pcap.h],,[AC_MSG_ERROR([<pcap.h> header missing])])
+	AC_CHECK_LIB([pcap], [pcap_open_offline],,[AC_MSG_ERROR([pcap library missing])])
+	AC_CHECK_LIB([pcap], [pcap_next],,[AC_MSG_ERROR([pcap library missing])])
+	AC_CHECK_LIB([pcap], [pcap_next_ex],,[AC_MSG_ERROR([pcap library missing])])
+	AC_CHECK_LIB([pcap], [pcap_close],,[AC_MSG_ERROR([pcap library missing])])
+fi
+# For Makefile.am
+AM_CONDITIONAL(HAVE_PCAP, test "$pcap" = "yes")
+
+# ==================== checks for header files ==========================
+
+AC_FUNC_ALLOCA
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
+
+# ===== checks for typedefs, structures and compiler characteristics ====
+
+AC_HEADER_STDBOOL
+AC_C_INLINE
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT8_T
+
+# ==================== checks for library functions =====================
+
+AC_FUNC_FORK
+#AC_FUNC_MALLOC
+#AC_FUNC_REALLOC
+#AC_FUNC_STRTOD
+AC_CHECK_FUNCS([alarm dup2 floor gethostname gettimeofday inet_ntoa memmove memset pow regcomp socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strrchr strstr strtol strtoul strtoull])
+
+# ==================== system-specific defines =========================
+
+case "${target_os}" in
+	*linux*)
+		SYS_DEFINES="-D__LINUX"
+		;;
+	*)
+		SYS_DEFINES="-D__UNKNOWN"
+		;;
+esac
+AC_SUBST([SYS_DEFINES])
+
+# ==================== generate files ===================================
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
-- 
1.7.3.5