Skip to content

Instantly share code, notes, and snippets.

@systra
Created June 11, 2013 05:45
Show Gist options
  • Save systra/5754688 to your computer and use it in GitHub Desktop.
Save systra/5754688 to your computer and use it in GitHub Desktop.
Seagull build configuration file for OS X (Darwin). Tested on 10.8.4. Disabled support for TCAP, SCTP, CRYPTO, TLS
#
# 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
#
# (c)Copyright 2006 Hewlett-Packard Development Company, LP.
#
#
# General project definitions
PROJECT_NAME=seagull
PROJECT_VERSION=1.8.2
function check_dlopen_usage {
if test `uname -s` = "HP-UX"
then
if test -f /usr/lib/libdld.sl
then
nm /usr/lib/libdld.sl | grep dlopen >/dev/null
if test $? -eq 0
then
echo "-DUSE_DLOPEN"
else
echo ""
fi
fi
fi
}
function check_sctp_external_lib {
if test -f /usr/local/lib/libsctplib.so
then
echo "/usr/local"
else
echo "./ext-${PROJECT_VERSION}"
fi
}
function check_tls_external_lib {
if test -f /usr/lib/libssl.so
then
echo "/usr"
else
echo "./ext-${PROJECT_VERSION}"
exit 1
fi
}
#echo "[check for open ssl library]"
#check_tls_external_lib
#
# Build sections description
#
# 1 - Compile option sections
# BUILD_<build_i_type>_CC_<os_name> compiler
# BUILD_<build_i_type>_CC_FLAGS_<os_name> compiler options
# BUILD_<build_i_type>_LD_<os_name> linker
# BUILD_<build_i_type>_LD_FLAGS_<os_name> linker options
# BUILD_<build_i_type>_LD_LIBS_<os_name> libraries
# BUILD_<build_i_type>_LEX_<os_name> lexical analyzer tool
# BUILD_<build_i_type>_LEX_FLAGS_<os_name> options for lexical analyzer
# BUILD_<build_i_type>_YACC_<os_name> compiler generator tool
# BUILD_<build_i_type>_YACC_FLAGS_<os_name> options for compiler gen. tool
#
# where <os_name> stand for uname -s upper case command result
#
# In case of different architecture with same OS you can specify
# BUILD_<build_i_type>_CC_<os_name>_<archi_name> compiler
#
# where <archi_name> stand for uname -m upper case command result
#
# 2 - Generated file sections
# BUILD_<i>_NAME name of the file generated
# BUILD_<i>_TYPE used to determine compile options
# BUILD_<i>_MODULES modules (code directory) used
#
# Linux executable generation definitions
BUILD_EXE_CC_LINUX=g++
#BUILD_EXE_CC_FLAGS_LINUX="-g -D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER -DDEBUG_NEW -DLOG_DEBUG_NEW"
BUILD_EXE_CC_FLAGS_LINUX="-DVERSION=\\\"${PROJECT_VERSION}\\\" -D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER"
BUILD_EXE_CC_FLAGS_LINUX_DBG="-DDEBUG_MODE -g -D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER -DLOG_DEBUG_NEW"
BUILD_EXE_LD_LINUX=g++
BUILD_EXE_LD_FLAGS_LINUX="-rdynamic"
BUILD_EXE_LD_FLAGS_LINUX_DBG="-rdynamic"
BUILD_EXE_LD_LIBS_LINUX="-lpthread -lfl -ldl"
BUILD_EXE_LEX_LINUX=flex
BUILD_EXE_LEX_FLAGS_LINUX="-l"
BUILD_EXE_YACC_LINUX=bison
BUILD_EXE_YACC_FLAGS_LINUX="-y -d"
# Linux library generation definition
BUILD_LIB_CC_LINUX=g++
BUILD_LIB_CC_FLAGS_LINUX="-D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror"
BUILD_LIB_CC_FLAGS_LINUX_DBG="-g -DDEBUG_MODE -g -D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror -DLOG_DEBUG_NEW"
BUILD_LIB_LD_LINUX=g++
BUILD_LIB_LD_FLAGS_LINUX="-shared -fPIC"
BUILD_LIB_LD_LIBS_LINUX="-lpthread"
if test -f /usr/lib/libssl.so
then
OPENSSL_DIR_INC=""
OPENSSL_DIR_LIB="-L/usr/lib"
else
OPENSSL_DIR_INC="-I./ext-${PROJECT_VERSION}/include "
OPENSSL_DIR_LIB="-L./ext-${PROJECT_VERSION}/lib "
fi
# Linux library generation definition
BUILD_LIBIPTLS_CC_LINUX=g++
BUILD_LIBIPTLS_CC_FLAGS_LINUX="$OPENSSL_DIR_INC -DOPENSSL_NO_KRB5 -D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror"
BUILD_LIBIPTLS_LD_LINUX=g++
BUILD_LIBIPTLS_LD_FLAGS_LINUX="-fPIC -shared"
BUILD_LIBIPTLS_LD_LIBS_LINUX="-ldl -lpthread -lm $OPENSSL_DIR_LIB -lssl -lcrypto"
# Linux library generation definition
BUILD_LIBCRYPTO_CC_LINUX=g++
BUILD_LIBCRYPTO_CC_FLAGS_LINUX="$OPENSSL_DIR_INC -DOPENSSL_NO_KRB5 -D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror"
BUILD_LIBCRYPTO_LD_LINUX=g++
BUILD_LIBCRYPTO_LD_FLAGS_LINUX="-fPIC -shared"
BUILD_LIBCRYPTO_LD_LIBS_LINUX="-ldl -lpthread -lm $OPENSSL_DIR_LIB -lssl -lcrypto"
# Linux library generation definition
BUILD_LIBEXTSCTP_CC_LINUX=g++
BUILD_LIBEXTSCTP_CC_FLAGS_LINUX="-I`check_sctp_external_lib`/include -D_GNU_SOURCE -D_REENTRANT -DSCTP_SOCKET_API -shared -Wall -Werror"
BUILD_LIBEXTSCTP_LD_LINUX=g++
BUILD_LIBEXTSCTP_LD_FLAGS_LINUX="-fPIC -shared"
BUILD_LIBEXTSCTP_LD_LIBS_LINUX="-L`check_sctp_external_lib`/lib -lsctplib -lsctpsocket"
# Linux library generation definition for using TCAP lib
BUILD_TCAP_LIB_CC_LINUX=g++
BUILD_TCAP_LIB_CC_FLAGS_LINUX="-D_GNU_SOURCE -DTCAP_API100 -D_REENTRANT -shared -Wall -Werror -I/opt/OC/include -I./octcap_include"
BUILD_TCAP_LIB_LD_LINUX=g++
BUILD_TCAP_LIB_LD_FLAGS_LINUX="-shared -fPIC"
#BUILD_TCAP_LIB_LD_LIBS_LINUX="-lm -lntl"
BUILD_TCAP_LIB_LD_LIBS_LINUX="-lm -L/opt/OC/lib -lntl -lTTL -lTTLBase"
# Linux simple executable generation definitions
BUILD_SIMPLE_EXE_CC_LINUX=gcc
BUILD_SIMPLE_EXE_CC_FLAGS_LINUX="-Wall -Werror"
BUILD_SIMPLE_EXE_LD_LINUX=gcc
BUILD_SIMPLE_EXE_LD_FLAGS_LINUX=""
# TEST module
BUILD_TEST_CC_LINUX=g++
BUILD_TEST_CC_FLAGS_LINUX="-D_GNU_SOURCE -D_REENTRANT -I/usr/local/include -Wall"
BUILD_TEST_LD_LINUX=g++
BUILD_TEST_LD_FLAGS_LINUX=""
BUILD_TEST_LD_LIBS_LINUX="-lpthread -L/usr/local/lib -lsctplib -lsctpsocket"
BUILD_TEST_LEX_LINUX=flex
BUILD_TEST_LEX_FLAGS_LINUX="-l"
BUILD_TEST_YACC_LINUX=bison
BUILD_TEST_YACC_FLAGS_LINUX="-y -d"
#
# HP-UX compilation options
#
# HP-UX executable generation definitions
BUILD_EXE_CC_HP_UX=aCC
BUILD_EXE_CC_FLAGS_HP_UX="-Aa +Z +DAportable +p -DVERSION=\\\"${PROJECT_VERSION}\\\" -DINIT_CALL_FILTER -D_HPUX_SOURCE -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED `check_dlopen_usage`"
BUILD_EXE_CC_FLAGS_HP_UX_IA64="-AP -Aa +Z +p +DD64 -DVERSION=\\\"${PROJECT_VERSION}\\\" -DINIT_CALL_FILTER -D_HPUX_SOURCE -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED `check_dlopen_usage`"
BUILD_EXE_LD_HP_UX=aCC
BUILD_EXE_LD_FLAGS_HP_UX="-Wl,+s"
BUILD_EXE_LD_FLAGS_HP_UX_IA64="-Wl,+s -AP +DD64 "
BUILD_EXE_LD_LIBS_HP_UX="-lpthread"
BUILD_EXE_LD_LIBS_HP_UX_IA64="-lpthread -lxnet"
BUILD_EXE_LEX_HP_UX=lex
BUILD_EXE_LEX_FLAGS_HP_UX=""
BUILD_EXE_LEX_CC_FLAGS_HP_UX="+DAportable +W829 +W612"
BUILD_EXE_LEX_CC_FLAGS_HP_UX_IA64="+W829 +W612 -AP +DD64"
BUILD_EXE_YACC_HP_UX=yacc
BUILD_EXE_YACC_FLAGS_HP_UX="-d"
BUILD_EXE_YACC_CC_FLAGS_HP_UX="+DAportable +W612"
BUILD_EXE_YACC_CC_FLAGS_HP_UX_IA64="+W612 -AP +DD64"
# HP_UX library generation definition
BUILD_LIB_CC_HP_UX=aCC
BUILD_LIB_CC_FLAGS_HP_UX="-Aa +Z +DAportable +p -D_HPUX_SOURCE -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED"
BUILD_LIB_CC_FLAGS_HP_UX_IA64="-AP -Aa +Z +p +DD64 -D_HPUX_SOURCE -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED"
BUILD_LIB_LD_HP_UX=aCC
BUILD_LIB_LD_FLAGS_HP_UX="-b"
BUILD_LIB_LD_FLAGS_HP_UX_IA64="-b +DD64"
BUILD_LIB_LD_LIBS_HP_UX=""
# HP_UX library generation definition for using TCAP lib
BUILD_TCAP_LIB_CC_HP_UX=aCC
BUILD_TCAP_LIB_CC_FLAGS_HP_UX="-Aa +Z +DAportable +p -D_HPUX_SOURCE -DTCAP_API100 -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED `check_dlopen_usage` -I/opt/OC/include -I./octcap_include"
BUILD_TCAP_LIB_CC_FLAGS_HP_UX_IA64="-AP -Aa +Z +p +DD64 -D_HPUX_SOURCE -DTCAP_API100 -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED `check_dlopen_usage` -I/opt/OC/include -I./octcap_include"
BUILD_TCAP_LIB_LD_HP_UX=aCC
BUILD_TCAP_LIB_LD_FLAGS_HP_UX="-b"
BUILD_TCAP_LIB_LD_FLAGS_HP_UX_IA64="-b +DD64"
#BUILD_TCAP_LIB_LD_LIBS_HP_UX="-lm -lntl"
BUILD_TCAP_LIB_LD_LIBS_HP_UX="-lm -L/opt/OC/lib -lntl -lTTL -lTTLBase"
#BUILD_TCAP_LIB_LD_LIBS_HP_UX_IA64="-lm -lntl -lxnet"
BUILD_TCAP_LIB_LD_LIBS_HP_UX_IA64="-lm -lxnet -L/opt/OC/lib -lntl -lTTL -lTTLBase"
# HP_UX simple executable generation definitions
BUILD_SIMPLE_EXE_CC_HP_UX=aCC
BUILD_SIMPLE_EXE_CC_FLAGS_HP_UX="-Aa +Z +DAportable +p"
BUILD_SIMPLE_EXE_CC_FLAGS_HP_UX_IA64="-AP -Aa +Z +p +DD64"
BUILD_SIMPLE_EXE_LD_HP_UX=aCC
BUILD_SIMPLE_EXE_LD_FLAGS_HP_UX=""
BUILD_SIMPLE_EXE_LD_FLAGS_HP_UX_IA64=" +DD64"
BUILD_SIMPLE_EXE_LD_LIBS_HP_UX=""
# CYGWIN executable generation definitions
BUILD_EXE_CC_CYGWIN_NT_5_1=g++
BUILD_EXE_CC_FLAGS_CYGWIN_NT_5_1="-D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER"
BUILD_EXE_CC_FLAGS_CYGWIN_NT_5_1_DBG="-DDEBUG_MODE -g -D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER -DLOG_DEBUG_NEW"
BUILD_EXE_LD_CYGWIN_NT_5_1=g++
BUILD_EXE_LD_FLAGS_CYGWIN_NT_5_1=" "
BUILD_EXE_LD_FLAGS_CYGWIN_NT_5_1_DBG=" "
BUILD_EXE_LD_LIBS_CYGWIN_NT_5_1="-lpthread -lfl"
BUILD_EXE_LEX_CYGWIN_NT_5_1=flex
BUILD_EXE_LEX_FLAGS_CYGWIN_NT_5_1="-l"
BUILD_EXE_LEX_FLAGS_CYGWIN_NT_5_1_DBG="-l -d"
BUILD_EXE_YACC_CYGWIN_NT_5_1=bison
BUILD_EXE_YACC_FLAGS_CYGWIN_NT_5_1="-y -d"
BUILD_EXE_YACC_FLAGS_CYGWIN_NT_5_1_DBG="-y -d -t"
BUILD_EXE_YACC_CC_FLAGS_CYGWIN_NT_5_1=""
# CYGWIN library generation definition
BUILD_LIB_CC_CYGWIN_NT_5_1=g++
BUILD_LIB_CC_FLAGS_CYGWIN_NT_5_1="-D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror"
BUILD_LIB_CC_FLAGS_CYGWIN_NT_5_1_DBG="-DDEBUG_MODE -g -D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror -DLOG_DEBUG_NEW"
BUILD_LIB_LD_CYGWIN_NT_5_1=g++
BUILD_LIB_LD_FLAGS_CYGWIN_NT_5_1="-shared -fPIC"
BUILD_LIB_LD_LIBS_CYGWIN_NT_5_1="-lpthread"
# CygWin simple executable generation definitions
BUILD_SIMPLE_EXE_CC_CYGWIN_NT_5_1=gcc
BUILD_SIMPLE_EXE_CC_FLAGS_CYGWIN_NT_5_1="-Wall -Werror"
BUILD_SIMPLE_EXE_LD_CYGWIN_NT_5_1=gcc
BUILD_SIMPLE_EXE_LD_FLAGS_CYGWIN_NT_5_1=""
BUILD_SIMPLE_EXE_LD_LIBS_CYGWIN_NT_5_1=""
#
# DARWIN compilation options
#
# DARWIN executable generation definitions
BUILD_EXE_CC_DARWIN=g++
BUILD_EXE_CC_FLAGS_DARWIN="-D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER"
BUILD_EXE_CC_FLAGS_DARWIN_DBG="-DDEBUG_MODE -g -D_GNU_SOURCE -D_REENTRANT -Wall -Werror -DINIT_CALL_FILTER -DLOG_DEBUG_NEW"
BUILD_EXE_LD_DARWIN=g++
BUILD_EXE_LD_FLAGS_DARWIN=" "
BUILD_EXE_LD_FLAGS_DARWIN_DBG=" "
BUILD_EXE_LD_LIBS_DARWIN="-lpthread"
BUILD_EXE_LEX_DARWIN=flex
BUILD_EXE_LEX_FLAGS_DARWIN="-l"
BUILD_EXE_LEX_FLAGS_DARWIN_DBG="-l -d"
BUILD_EXE_YACC_DARWIN=bison
BUILD_EXE_YACC_FLAGS_DARWIN="-y -d"
BUILD_EXE_YACC_FLAGS_DARWIN_DBG="-y -d -t"
BUILD_EXE_YACC_CC_FLAGS_DARWIN=""
# DARWIN library generation definition
BUILD_LIB_CC_DARWIN=g++
BUILD_LIB_CC_FLAGS_DARWIN="-D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror"
BUILD_LIB_CC_FLAGS_DARWIN_DBG="-DDEBUG_MODE -g -D_GNU_SOURCE -D_REENTRANT -shared -Wall -Werror -DLOG_DEBUG_NEW"
BUILD_LIB_LD_DARWIN=g++
BUILD_LIB_LD_FLAGS_DARWIN="-shared -fPIC -dynamiclib"
BUILD_LIB_LD_LIBS_DARWIN="-lpthread"
# DARWIN simple executable generation definitions
BUILD_SIMPLE_EXE_CC_DARWIN=gcc
BUILD_SIMPLE_EXE_CC_FLAGS_DARWIN="-Wall -Werror"
BUILD_SIMPLE_EXE_LD_DARWIN=gcc
BUILD_SIMPLE_EXE_LD_FLAGS_DARWIN=""
BUILD_SIMPLE_EXE_LD_LIBS_DARWIN=""
# maximum number of exe/library to build
MAX_BUILD=13
# tool executable
BUILD_1_NAME="seagull"
BUILD_1_TYPE=exe
BUILD_1_MODULES="common generator-common generator-core generator-model protocol-frame protocol-data protocol-binary protocol-binary-body-with-separator protocol-tlv protocol-binary-body-not-interpreted protocol-external protocol-text protocol-stats scenario-stats data-log transport-frame generator-traffic generator-ext-AgnerLib generator-scenario external-data xml-parser generator-stats parser-frame filter-frame command-actions generator-control"
# ip transport library
BUILD_2_NAME="libtrans_ip.so"
BUILD_2_TYPE=lib
BUILD_2_MODULES="common protocol-frame transport-frame library-trans-ip"
# tool csv file extract
BUILD_3_NAME="csvextract"
BUILD_3_TYPE=simple_exe
BUILD_3_MODULES="tool-csvextract"
# tool csv file split
BUILD_4_NAME="csvsplit"
BUILD_4_TYPE=simple_exe
BUILD_4_MODULES="tool-csvsplit"
# xml parser library
BUILD_5_NAME="libparser_xml.so"
BUILD_5_TYPE=lib
BUILD_5_MODULES="common parser-frame filter-frame protocol-frame library-parser-xml"
# h248 parser library
BUILD_6_NAME="libparser_h248.so"
BUILD_6_TYPE=lib
BUILD_6_MODULES="common parser-frame filter-frame protocol-frame library-parser-h248"
# msrp parser library
BUILD_7_NAME="libparser_msrp.so"
BUILD_7_TYPE=lib
BUILD_7_MODULES="common parser-frame filter-frame protocol-frame library-parser-msrp"
# HP OC TCAP transport library
#BUILD_8_NAME="libtrans_octcap.so"
#BUILD_8_TYPE=tcap_lib
#BUILD_8_MODULES="common transport-frame protocol-frame library-trans-octcap32"
# sctp transport library
#BUILD_9_NAME="libtrans_extsctp.so"
#BUILD_9_TYPE=libextsctp
#BUILD_9_MODULES="common transport-frame protocol-frame library-trans-ip library-trans-extsctp"
# tls transport library
#BUILD_10_NAME="libtrans_iptls.so"
#BUILD_10_TYPE=libiptls
#BUILD_10_MODULES="common protocol-frame transport-frame library-trans-ip library-trans-tls"
# crypto library
#BUILD_11_NAME="lib_crypto.so"
#BUILD_11_TYPE=libcrypto
#BUILD_11_MODULES="common protocol-frame library-crypto"
# generic-methods
BUILD_12_NAME="lib_generalmethods.so"
BUILD_12_TYPE=lib
BUILD_12_MODULES="common protocol-frame library-general-methods"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment