1#! /bin/sh 2# 3# This script builds the SnortSam release and debug versions 4# with the OPSEC libraries from Checkpoint. These have to reside 5# in the OPSEC subdirectory. You can always adjust the directory 6# by editing the lines below. 7# 8# Note: On Linux, the pthread stuff is in the libpthread library. 9# On FreeBSD, it is in the libc_r library. Now switchable. 10# 11# Under Solaris, the OPSEC stuff is linked dynamically. 12# On other platforms, statically. 13 14# *BSD only: uncomment to build with '-lc_r', default is '-lpthread' 15#BSDTHREADLIB='-lc_r' 16 17# OpenBSD only: Default is now the new pf2 plugin. 18# To build the old pf plugin uncomment PFPLUGIN 19#PFPLUGIN="-DUSE_SSP_PF" 20 21 22# ======================== 23# snortsam 24SSP_GENERIC_SRC="snortsam.c twofish.c ssp_ciscoacl.c ssp_cisco_nullroute.c ssp_cisco_nullroute2.c ssp_email.c ssp_forward.c ssp_fwexec.c ssp_fwsam.c ssp_netscreen.c ssp_opsec.c ssp_pix.c ssp_snmp_interface_down.c ssp_wgrd.c" 25 26#systype=`uname` 27systype=FreeBSD 28SNORTSAM=../snortsam 29SAMTOOL=../samtool 30 31# samtool 32SAMTOOL_SRC="samtool.c twofish.c" 33 34# OS specific stuff compiles only on these platforms (need headers/libs) 35SSP_LINUX_SRC="ssp_ipchains.c ssp_iptables.c ssp_ebtables.c" 36SSP_OBSD_SRC="ssp_pf.c ssp_pf2.c" 37SSP_BSD_SRC="ssp_ipf.c ssp_ipfw2.c ssp_pf2.c" 38SSP_SUNOS_SRC="ssp_ipf.c" 39 40CFLAGS="-O2 -D${systype}" 41LDFLAGS= 42 43# OS specific flags 44LINUX_CFLAGS= 45LINUX_LDFLAGS="-lpthread" 46OBSD_CFLAGS="-DBSD ${PFPLUGIN}" 47OBSD_LDFLAGS="-lpthread" 48BSD_CFLAGS="-DBSD" 49BSD_LDFLAGS=${BSDTHREADLIB:-"-lpthread"} 50SUNOS_CFLAGS="-DSOLARIS" 51SUNOS_LDFLAGS="-lpthread -lnsl -lsocket -lresolv" 52 53# OPSEC 22 SDK 54OPSEC_CFLAGS="-Iopsec/include/opsec -Iopsec/include -DENABLE_OPSEC" 55OPSEC_LDFLAGS="-lnsl" 56OPSEC_SUNOS_CFLAGS="-I/usr/local/pkg_rel/include -DENABLE_OPSEC" 57OPSEC_SUNOS_LDFLAGS="-L/usr/local/pkg_rel/lib/release.dynamic -lopsec" 58 59 60case "$1" in 61 [oO][pP][sS][eE][cC]) 62 63 OPSEC_LIBS="opsec/lib/release.static/libcpcert.a opsec/lib/release.static/libckpssl.a opsec/lib/release.static/libopsec.a opsec/lib/release.static/libckpssl.a opsec/lib/release.static/libasn1cpp.a opsec/lib/release.static/libcpopenssl.a opsec/lib/release.static/libDataStruct.a opsec/lib/release.static/libskey.a opsec/lib/release.static/libDataStruct.a opsec/lib/release.static/libcpcert.a opsec/lib/release.static/liblogfilter.a opsec/lib/release.static/libCPSrvIS.a opsec/lib/release.static/libEncode.a opsec/lib/release.static/libResolver.a opsec/lib/release.static/libAppUtils.a opsec/lib/release.static/libcpca.a opsec/lib/release.static/libCPMIBase501.a opsec/lib/release.static/libCPMIClient501.a opsec/lib/release.static/libcp_policy.a opsec/lib/release.static/libComUtils.a opsec/lib/release.static/libsicauth.a opsec/lib/release.static/libndb.a opsec/lib/release.static/libcpopenssl.a opsec/lib/release.static/libOS.a opsec/lib/release.static/libcpcryptutil.a opsec/lib/release.static/libcpbcrypt.a opsec/lib/release.static/libopsecext.a opsec/lib/release.static/libcpprod50.a opsec/lib/release.static/libckpssl.a opsec/lib/release.static/libEventUtils.a opsec/lib/release.static/libsic.a opsec/lib/release.static/libResolve.a opsec/lib/release.static/libcpprng.a opsec/lib/release.static/libobjlibclient.a opsec/lib/release.static/libasn1cpp.a opsec/lib/release.static/libopsec.a opsec/lib/release.static/libDataStruct.a opsec/lib/release.static/libcpbcrypt.a opsec/lib/release.static/libOS.a opsec/lib/release.static/libcpcert.a opsec/lib/release.static/libcpbcrypt.a opsec/lib/release.static/libComUtils.a opsec/lib/release.static/libOS.a opsec/lib/release.static/libcpca.a opsec/lib/release.static/libcpcert.a opsec/lib/release.static/libcpcryptutil.a opsec/lib/release.static/libskey.a opsec/lib/lib/static/libcpc++-3-libc6.1-2-2.10.0.a" 64 65 echo "-------------------------------------------------------------------------------" 66 echo "Building SnortSam (release) with OPSEC libraries" 67 echo "-------------------------------------------------------------------------------" 68 69 cd src 70 rm -f ${SNORTSAM} 71 rm -f ${SNORTSAM}-debug 72 rm -f *.o 73 74 case "${systype}" in 75 Linux*) 76 gcc ${CFLAGS} ${LINUX_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${LINUX_LDFLAGS} ${OPSEC_LDFLAGS} ${OPSEC_LIBS} \ 77 ${SSP_GENERIC_SRC} ${SSP_LINUX_SRC} -o ${SNORTSAM} 78 ;; 79 80 OpenBSD*) 81 #gcc ${CFLAGS} ${OBSD_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${OPSEC_LIBS} /usr/lib/libnsl.a -o ${SNORTSAM} 82 gcc ${CFLAGS} ${OBSD_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${OPSEC_LDFLAGS} ${OPSEC_LIBS} \ 83 ${SSP_GENERIC_SRC} ${SSP_OBSD_SRC} -o ${SNORTSAM} 84 ;; 85 86 *BSD*) 87 gcc ${CFLAGS} ${BSD_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${BSD_LDFLAGS} ${OPSEC_LDFLAGS} ${OPSEC_LIBS} \ 88 ${SSP_GENERIC_SRC} ${SSP_BSD_SRC} -o ${SNORTSAM} 89 ;; 90 91 SunOS*) 92 gcc ${CFLAGS} ${SUNOS_CFLAGS} ${OPSEC_SUNOS_CFLAGS} ${LDFLAGS} ${SUNOS_LDFLAGS} ${OPSEC_SUNOS_LDFLAGS} \ 93 ${SSP_GENERIC_SRC} ${SSP_SUNOS_SRC} -o ${SNORTSAM} 94 ;; 95 esac 96 97 98 echo "-------------------------------------------------------------------------------" 99 echo "Building SnortSam (debug) with OPSEC libraries" 100 echo "-------------------------------------------------------------------------------" 101 102 rm -f *.o 103 CFLAGS="${CFLAGS} -DFWSAMDEBUG" 104 SNORTSAM="${SNORTSAM}-debug" 105 106 case "${systype}" in 107 Linux*) 108 gcc ${CFLAGS} ${LINUX_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${LINUX_LDFLAGS} ${OPSEC_LDFLAGS} ${OPSEC_LIBS} \ 109 ${SSP_GENERIC_SRC} ${SSP_LINUX_SRC} -o ${SNORTSAM} 110 ;; 111 112 OpenBSD*) 113 #gcc ${CFLAGS} ${OBSD_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${OPSEC_LIBS} /usr/lib/libnsl.a -o ${SNORTSAM} 114 gcc ${CFLAGS} ${OBSD_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${OPSEC_LDFLAGS} ${OPSEC_LIBS} \ 115 ${SSP_GENERIC_SRC} ${SSP_OBSD_SRC} -o ${SNORTSAM} 116 ;; 117 118 *BSD*) 119 gcc ${CFLAGS} ${BSD_CFLAGS} ${OPSEC_CFLAGS} ${LDFLAGS} ${BSD_LDFLAGS} ${OPSEC_LDFLAGS} ${OPSEC_LIBS} \ 120 ${SSP_GENERIC_SRC} ${SSP_BSD_SRC} -o ${SNORTSAM} 121 ;; 122 123 SunOS*) 124 gcc ${CFLAGS} ${SUNOS_CFLAGS} ${OPSEC_SUNOS_CFLAGS} ${LDFLAGS} ${SUNOS_LDFLAGS} ${OPSEC_SUNOS_LDFLAGS} \ 125 ${SSP_GENERIC_SRC} ${SSP_SUNOS_SRC} -o ${SNORTSAM} 126 ;; 127 esac 128 cd .. 129 ;; 130 131 [Cc][Ll][Ee][Aa][Nn]) 132 echo "-------------------------------------------------------------------------------" 133 echo "Cleanup ..." 134 echo "-------------------------------------------------------------------------------" 135 136 cd src 137 rm -f *.o 138 rm -f ${SNORTSAM} 139 rm -f ${SNORTSAM}-debug 140 rm -f ${SAMTOOL} 141 rm -f ${SAMTOOL}-debug 142 cd .. 143 ;; 144 145 [Ss][Aa][Mm][Tt][Oo][Oo][Ll]) 146 echo "-------------------------------------------------------------------------------" 147 echo "Building samtool (release)" 148 echo "-------------------------------------------------------------------------------" 149 150 cd src 151 rm -f *.o 152 rm -f ${SAMTOOL} 153 rm -f ${SAMTOOL}-debug 154 155 case "${systype}" in 156 Linux*) gcc ${CFLAGS} ${LINUX_CFLAGS} ${LDFLAGS} ${LINUX_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 157 OpenBSD*) gcc ${CFLAGS} ${OBSD_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 158 *BSD*) gcc ${CFLAGS} ${BSD_CFLAGS} ${LDFLAGS} ${BSD_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 159 SunOS) gcc ${CFLAGS} ${SUNOS_CFLAGS} ${LDFLAGS} ${SUNOS_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 160 esac 161 162 echo "-------------------------------------------------------------------------------" 163 echo "Building samtool (debug)" 164 echo "-------------------------------------------------------------------------------" 165 166 rm -f *.o 167 CFLAGS="${CFLAGS} -DFWSAMDEBUG" 168 SAMTOOL="${SAMTOOL}-debug" 169 170 case "${systype}" in 171 Linux*) gcc ${CFLAGS} ${LINUX_CFLAGS} ${LDFLAGS} ${LINUX_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 172 OpenBSD*) gcc ${CFLAGS} ${OBSD_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 173 *BSD*) gcc ${CFLAGS} ${BSD_CFLAGS} ${LDFLAGS} ${BSD_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 174 SunOS) gcc ${CFLAGS} ${SUNOS_CFLAGS} ${LDFLAGS} ${SUNOS_LDFLAGS} ${SAMTOOL_SRC} -o ${SAMTOOL} ;; 175 esac 176 cd .. 177 ;; 178 179 *) 180 echo "-------------------------------------------------------------------------------" 181 echo "Building SnortSam (release)" 182 echo "-------------------------------------------------------------------------------" 183 184 cd src 185 rm -f *.o 186 rm -f ${SNORTSAM} 187 rm -f ${SNORTSAM}-debug 188 189 case "${systype}" in 190 Linux*) gcc ${CFLAGS} ${LINUX_CFLAGS} ${LDFLAGS} ${LINUX_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_LINUX_SRC} -o ${SNORTSAM} ;; 191 OpenBSD*) gcc ${CFLAGS} ${OBSD_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_OBSD_SRC} -o ${SNORTSAM} ;; 192 *BSD*) gcc ${CFLAGS} ${BSD_CFLAGS} ${LDFLAGS} ${BSD_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_BSD_SRC} -o ${SNORTSAM} ;; 193 SunOS*) gcc ${CFLAGS} ${SUNOS_CFLAGS} ${LDFLAGS} ${SUNOS_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_SUNOS_SRC} -o ${SNORTSAM} ;; 194 esac 195 196 197 echo "-------------------------------------------------------------------------------" 198 echo "Building SnortSam (debug)" 199 echo "-------------------------------------------------------------------------------" 200 201 rm -f *.o 202 CFLAGS="${CFLAGS} -DFWSAMDEBUG" 203 SNORTSAM="${SNORTSAM}-debug" 204 205 case "${systype}" in 206 Linux*) gcc ${CFLAGS} ${LINUX_CFLAGS} ${LDFLAGS} ${LINUX_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_LINUX_SRC} -o ${SNORTSAM} ;; 207 OpenBSD*) gcc ${CFLAGS} ${OBSD_CFLAGS} ${LDFLAGS} ${OBSD_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_OBSD_SRC} -o ${SNORTSAM} ;; 208 *BSD*) gcc ${CFLAGS} ${BSD_CFLAGS} ${LDFLAGS} ${BSD_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_BSD_SRC} -o ${SNORTSAM} ;; 209 SunOS*) gcc ${CFLAGS} ${SUNOS_CFLAGS} ${LDFLAGS} ${SUNOS_LDFLAGS} ${SSP_GENERIC_SRC} ${SSP_SUNOS_SRC} -o ${SNORTSAM} ;; 210 211 esac 212 cd .. 213 ;; 214esac 215 216echo "Done." 217 218