
# $Id: Makefile,v 1.43 2008/10/31 13:42:45 jayrfink Exp $

# Makefile for netward

# Config - change these paths to whatever you like... 
BINDIR= /usr/local/netward/sbin
MANDIR= /usr/local/netward/man/man8
ETCDIR= /usr/local/netward

MAKE= make

ECHO= echo
CC=	gcc
CFLAGS=	-O2 
CFLAGS_GDB= -g
SRCS= nwmain.c strlcpy.c utils.c ckpkt.c nwcore.c iprules.c iptree.c  
LIBS= -lm -lpcap

BINS= netward 
MANS= netward.8

RM=/bin/rm -f

all: linux

darwin: darwin-debug

darwin-debug:
	$(MAKE) objs DEFINES="-DDARWIN -DDEBUG"

darwin-gdb:
	$(MAKE) objs-gdb DEFINES="-DDARWIN -DDEBUG"

freebsd:
	$(MAKE) objs DEFINES="-DFREEBSD"

freebsd-debug:
	$(MAKE) objs DEFINES="-DFREEBSD -DDEBUG"

freebsd-gdb:
	$(MAKE) objs-gdb DEFINES="-DFREEBSD -DDEBUG"

linux:
	$(MAKE) objs DEFINES="-DLINUX"

linux-debug:
	$(MAKE) objs DEFINES="-DLINUX -DDEBUG"

linux-gdb:
	$(MAKE) objs-gdb DEFINES="-DLINUX -DDEBUG"

objs: netward

objs-gdb: netward-debug

netward:
	${CC} ${CFLAGS} ${DEFINES} ${SRCS} ${LIBS} -o $@

netward-debug:
	${CC} ${CFLAGS_GDB} ${DEFINES} ${SRCS} ${LIBS} -o netward
	@echo "buyaaah!!"

vtest:
	sudo valgrind ./netward -vv

install:
	for bin in ${BINS}; do \
		install -o root  -m 0744 $$bin ${BINDIR}; \
	done
	for man in ${MANS}; do \
		install -o root  -m 0644 $$man ${MANDIR}; \
	done
	cp rules.txt ${ETCDIR}/rules
	touch ${ETCDIR}/netward.log

uninstall:
	for bin in ${BINS}; do \
		${RM} ${BINDIR}/$$bin; \
	done
	for man in ${MANS}; do \
		${RM} ${MANDIR}/$$man; \
	done

clean:
	rm -f ${BINS} a.out *.core

cleanall: clean
	rm -rfv netward.dSYM/

