# $Id: Makefile,v 1.40 2009-02-01 13:32:10 anton Exp $

include ../Rules.make

SRC += main.c common.c versions.c connections.c security.c services.c \
s_server.c users.c net_units.c s_processor.c messages_fifo.c s_datasource.c \
policy.c s_storage.c st_hash.c st_sql.c p_prefix.c s_alerter.c s_scheduler.c \
ds_netflow.c s_html.c s_monitor.c s_quotactl.c s_quota.c \
st_sql_mysql.c st_sql_oracle.c st_sql_postgres.c iptree.c \
s_login.c flow.c flowengine.c ds_ipq.c ds_libpcap.c ds_ipfw.c memory.c events.c html.c \
bw.c ds_ulog.c ds_netgraph.c attrlist.c time.c \
st_radius.c s_acl_server.c mutex.c lang.c cli.c layer7.c ds_raw.c list.c

CC     = g++
CPP    = g++
FLAGS  += -pipe -fPIC -Wno-deprecated 
DEFINE += -D_REENTRANT -D_THREAD_SAFE
INCLUDE=/usr/local/include
OBJ     = $(SRC:.c=.o)
CFLAGS  = $(FLAGS) -I$(INCLUDE) -I../lib $(DEFINE)
LIB += -L../lib -lcli -lcrypto 
SYSLIB += -L../lib -lnetams

all: $(FREEBSD_KMOD) $(PROG) netams

netams:	$(OBJ)
	./versions.sh $(PATH_TO_CONFIG)/$(CONFIG_FILE_NAME) $(PATH_TO_LOG)
	$(CPP) $(OBJ) versions_build.o $(SYSLIB) $(LIB) -o netams
								

pam_netams.so: pam_netams.c
	$(CPP) -o pam_netams.so pam_netams.c -shared $(LIB) $(CFLAGS)

netamsctl: lib netamsctl.o
	$(CPP) netamsctl.o -o netamsctl $(SYSLIB)

flowprobe.o: flowprobe.c
	${CPP} flowprobe.c -c $(CFLAGS)

flowprobe: lib netflow.o flowprobe.o 
	$(CPP) netflow.o flowprobe.o -o flowprobe $(SYSLIB) -lpcap

ipfw2netflow.o: ipfw2netflow.c
	$(CPP) ipfw2netflow.c -c $(CFLAGS) -DKEVENT  

ipfw2netflow:  lib netflow.o ipfw2netflow.o
	$(CPP) netflow.o ipfw2netflow.o -o ipfw2netflow $(SYSLIB)

ulog2netflow.o: ulog2netflow.c
	$(CPP) ulog2netflow.c -c $(CFLAGS)

ulog2netflow: lib netflow.o ulog2netflow.o
	$(CPP) netflow.o ulog2netflow.o -o ulog2netflow $(SYSLIB) -lipulog

ascii2netflow: lib netflow.o ascii2netflow.o
	$(CPP) netflow.o ascii2netflow.o -o ascii2netflow $(SYSLIB)

netflow.o: netflow.c
	$(CPP) netflow.c -c $(CFLAGS)

lib:
	cd ../lib && make library && cd ../src

clean: $(FREEBSD_KMOD_CLEAN)
	rm -f machine @ 
	rm -rf $(OBJ) netams $(PROG) $(FREEBSD_KMOD) \
	*.o core *.core

ng_netams.ko: ng_netams.c
	touch opt_netgraph.h
	$(MAKE) -f Makefile.kmod
	rm opt_netgraph.h

clean_ng_netams.ko:
	$(MAKE) -f Makefile.kmod clean

