1# $Id: Makefile,v 2.14 2010/03/29 20:57:55 fknobbe Exp $ 2# 3# 4# Makefile for snortsam 5# 6# To use automated OS detection just type "make". Uncomment the macros below 7# if you want DEBUG and/or OPSEC support. 8# 9# Alternatively, the "make snortsam-<os>[-opsec]" target syntax may be used 10# (eg "make snortsam-linux" or "make snortsam-sunos-opsec"). 11# 12 13# uncomment for debugging 14#DEBUG = -DFWSAMDEBUG 15 16# uncomment for OPSEC support 17#OPSEC = -opsec 18 19# OpenBSD only: Default is now the new pf2 plugin. 20# To build the old pf plugin uncomment PFPLUGIN 21#PFPLUGIN = -DUSE_SSP_PF 22 23# generic plugins for all builds 24SSP_GENERIC = ssp_fwexec.o ssp_ciscoacl.o ssp_cisco_nullroute.o ssp_email.o \ 25 ssp_opsec.o ssp_fwsam.o ssp_pix.o ssp_netscreen.o ssp_wgrd.o \ 26 ssp_snmp_interface_down.o ssp_forward.o ssp_cisco_nullroute2.o 27 28# OS specific stuff compiles only on these platforms (need headers/libs) 29#SSP_OBSD = ssp_ipf.o ssp_pf.o ssp_pf2.o 30SSP_OBSD = ssp_pf.o ssp_pf2.o 31SSP_BSD = ssp_ipf.o ssp_ipfw2.o ssp_pf2.o 32SSP_LINUX = ssp_ipchains.o ssp_iptables.o ssp_ebtables.o 33SSP_SUNOS = ssp_ipf.o 34 35 36OBJS = snortsam.o twofish.o $(SSP_GENERIC) 37PROG = snortsam 38SAMTOOL = samtool 39CFLAGS = -O2 -D$(SYSTYPE) $(DEBUG) 40LDFLAGS = 41#SYSTYPE = `uname` 42SYSTYPE = FreeBSD 43 44# OS specific flags 45OBSD_CFLAGS = -DBSD ${PFPLUGIN} 46OBSD_LDFLAGS = -lpthread 47BSD_CFLAGS = -DBSD 48BSD_LDFLAGS = -lpthread 49SUNOS_CFLAGS = -DSOLARIS 50SUNOS_LDFLAGS = -lpthread -lnsl -lsocket -lresolv 51LINUX_CFLAGS = 52LINUX_LDFLAGS = -lpthread 53 54# OPSEC 55OPSEC_CFLAGS = -Iopsec/include/opsec -DENABLE_OPSEC 56OPSEC_LDFLAGS = -lnsl 57OPSEC_SUNOS_CFLAGS = -I/usr/local/pkg_rel/include -DENABLE_OPSEC 58OPSEC_SUNOS_LDFLAGS = -L/usr/local/pkg_rel/lib/release.dynamic -lopsec 59OPSEC_LIBS = opsec/lib/release.static/libcpcert.a \ 60 opsec/lib/release.static/libckpssl.a \ 61 opsec/lib/release.static/libopsec.a \ 62 opsec/lib/release.static/libckpssl.a \ 63 opsec/lib/release.static/libasn1cpp.a \ 64 opsec/lib/release.static/libcpopenssl.a \ 65 opsec/lib/release.static/libDataStruct.a \ 66 opsec/lib/release.static/libskey.a \ 67 opsec/lib/release.static/libDataStruct.a \ 68 opsec/lib/release.static/libcpcert.a \ 69 opsec/lib/release.static/liblogfilter.a \ 70 opsec/lib/release.static/libCPSrvIS.a \ 71 opsec/lib/release.static/libEncode.a \ 72 opsec/lib/release.static/libResolver.a \ 73 opsec/lib/release.static/libAppUtils.a \ 74 opsec/lib/release.static/libcpca.a \ 75 opsec/lib/release.static/libCPMIBase501.a \ 76 opsec/lib/release.static/libCPMIClient501.a \ 77 opsec/lib/release.static/libcp_policy.a \ 78 opsec/lib/release.static/libComUtils.a \ 79 opsec/lib/release.static/libsicauth.a \ 80 opsec/lib/release.static/libndb.a \ 81 opsec/lib/release.static/libcpopenssl.a \ 82 opsec/lib/release.static/libOS.a \ 83 opsec/lib/release.static/libcpcryptutil.a \ 84 opsec/lib/release.static/libcpbcrypt.a \ 85 opsec/lib/release.static/libopsecext.a \ 86 opsec/lib/release.static/libcpprod50.a \ 87 opsec/lib/release.static/libckpssl.a \ 88 opsec/lib/release.static/libEventUtils.a \ 89 opsec/lib/release.static/libsic.a \ 90 opsec/lib/release.static/libResolve.a \ 91 opsec/lib/release.static/libcpprng.a \ 92 opsec/lib/release.static/libobjlibclient.a \ 93 opsec/lib/release.static/libasn1cpp.a \ 94 opsec/lib/release.static/libopsec.a \ 95 opsec/lib/release.static/libDataStruct.a \ 96 opsec/lib/release.static/libcpbcrypt.a \ 97 opsec/lib/release.static/libOS.a \ 98 opsec/lib/release.static/libcpcert.a \ 99 opsec/lib/release.static/libcpbcrypt.a \ 100 opsec/lib/release.static/libComUtils.a \ 101 opsec/lib/release.static/libOS.a \ 102 opsec/lib/release.static/libcpca.a \ 103 opsec/lib/release.static/libcpcert.a \ 104 opsec/lib/release.static/libcpcryptutil.a \ 105 opsec/lib/release.static/libskey.a \ 106 opsec/lib/lib/static/libcpc++-3-libc6.1-2-2.10.0.a 107 108all: 109 case "$(SYSTYPE)" in \ 110 OpenBSD*) what=obsd;; \ 111 *BSD) what=bsd;; \ 112 Linux) what=linux;; \ 113 SunOS) what=sunos;; \ 114 esac && make snortsam-$$what$(OPSEC) 115 116$(PROG)-obsd: 117 make $(PROG) "CFLAGS=$(CFLAGS) $(OBSD_CFLAGS)" \ 118 "LDFLAGS=$(LDFLAGS) $(OBSD_LDFLAGS)" "OBJS=$(OBJS) $(SSP_OBSD)" 119$(PROG)-obsd-opsec: 120 make $(PROG) "CFLAGS=$(CFLAGS) $(OBSD_CFLAGS) $(OPSEC_CFLAGS)" \ 121 "LDFLAGS=$(LDFLAGS) $(OBSD_LDFLAGS) $(OPSEC_LDFLAGS)" \ 122 "OBJS=$(OBJS) $(SSP_OBSD) $(OPSEC_LIBS)" 123 124$(PROG)-bsd: 125 make $(PROG) "CFLAGS=$(CFLAGS) $(BSD_CFLAGS)" \ 126 "LDFLAGS=$(LDFLAGS) $(BSD_LDFLAGS)" "OBJS=$(OBJS) $(SSP_BSD)" 127$(PROG)-bsd-opsec: 128 make $(PROG) "CFLAGS=$(CFLAGS) $(BSD_CFLAGS) $(OPSEC_CFLAGS)" \ 129 "LDFLAGS=$(LDFLAGS) $(BSD_LDFLAGS) $(OPSEC_LDFLAGS)" \ 130 "OBJS=$(OBJS) $(SSP_BSD) $(OPSEC_LIBS)" 131 132$(PROG)-linux: 133 make $(PROG) "CFLAGS=$(CFLAGS) $(LINUX_CFLAGS)" \ 134 "LDFLAGS=$(LDFLAGS) $(LINUX_LDFLAGS)" "OBJS=$(OBJS) $(SSP_LINUX)" 135$(PROG)-linux-opsec: 136 make $(PROG) "CFLAGS=$(CFLAGS) $(LINUX_CFLAGS) $(OPSEC_CFLAGS)" \ 137 "LDFLAGS=$(LDFLAGS) $(LINUX_LDFLAGS) $(OPSEC_LDFLAGS)" \ 138 "OBJS=$(OBJS) $(SSP_LINUX) $(OPSEC_LIBS)" 139 140$(PROG)-sunos: 141 make $(PROG) "CFLAGS=$(CFLAGS) $(SUNOS_CFLAGS)" \ 142 "LDFLAGS=$(LDFLAGS) $(SUNOS_LDFLAGS)" "OBJS=$(OBJS) $(SSP_SUNOS)" 143$(PROG)-sunos-opsec: 144 make $(PROG) "CFLAGS=$(CFLAGS) $(SUNOS_CFLAGS) $(OPSEC_SUNOS_CFLAGS)" \ 145 "LDFLAGS=$(LDFLAGS) $(SUNOS_LDFLAGS) $(OPSEC_SUNOS_LDFLAGS)" \ 146 "OBJS=$(OBJS) $(SSP_SUNOS)" 147 148.SUFFIXES: .o .c 149 150.c.o: 151 $(CC) $(CFLAGS) -c $< 152 153$(PROG): $(OBJS) 154 $(CC) $(LDFLAGS) -o ../$(PROG) $(OBJS) 155 156clean: 157 rm -f ../$(PROG) ../${SAMTOOL} *.o 158 159$(SAMTOOL): samtool.o twofish.o 160 case "$(SYSTYPE)" in \ 161 OpenBSD*) twhat=obsd;; \ 162 *BSD) twhat=bsd;; \ 163 Linux) twhat=linux;; \ 164 SunOS) twhat=sunos;; \ 165 esac && make $(SAMTOOL)-$$twhat 166 167$(SAMTOOL)-obsd: 168 $(CC) $(LDFLAGS) $(OBSD_LDFLAGS) -o ../$(SAMTOOL) samtool.o twofish.o 169 170$(SAMTOOL)-bsd: 171 $(CC) $(LDFLAGS) $(BSD_LDFLAGS) -o ../$(SAMTOOL) samtool.o twofish.o 172 173$(SAMTOOL)-linux: 174 $(CC) $(LDFLAGS) $(LINUX_LDFLAGS) -o ../$(SAMTOOL) samtool.o twofish.o 175 176$(SAMTOOL)-sunos: 177 $(CC) $(LDFLAGS) $(SUNOS_LDFLAGS) -o ../$(SAMTOOL) samtool.o twofish.o 178 179 180