#
# p0f - "universal" Makefile (Linux/*BSD/Darwin)
# ----------------------------------------------
#
# Note, you probably need gmake for this (OpenBSD take notice).
# 
# (C) Copyright 2000-2006 by Michal Zalewski <lcamtuf@coredump.cx>
#

CC      = gcc
LIBS	= -lpcap
STRIP   = strip
CFLAGS  = -O3 -Wall -fomit-frame-pointer -funroll-loops \
          -DUSE_BPF=\"${USE_BPF}\" \
	  -I/usr/include/pcap -I/usr/local/include/pcap -I/usr/local/include
FILE	= p0f
TOOLS   = test/sendack test/sendack2 test/sendsyn

all: $(FILE) strip	
	@echo ">> You can also try 'make p0fq' to compile a sample query"
	@echo ">> client (see README for more information)."

static: $(FILE)-static

$(FILE): $(FILE).c
	$(CC) $(CFLAGS) -o $@ $(FILE).c $(FILE)-query.c crc32.c $(LIBS)

$(FILE)-static: $(FILE).c 
	$(CC) -static $(CFLAGS) -o $@ $(FILE).c $(FILE)-query.c crc32.c $(LIBS)

strip:
	strip $(FILE) 2>/dev/null || true

p0fq: test/p0fq

p0fping: test/p0fping

tools: $(TOOLS)

clean:
	rm -f core core.[0123456789]* *~ *.o $(FILE) a.out $(FILE)-static \
	  test/p0fq test/p0fping $(TOOLS)

publish: clean
	cd ..;tar cfvz /tmp/p0f.tgz p0f
	scp -p /tmp/p0f.tgz lcamtuf@coredump.cx:/export/www/lcamtuf/p0f-devel.tgz
	rm -f /tmp/p0f.tgz
	
install: $(FILE)
	cp -f $(FILE) /usr/sbin/
	cp -f p0frep /usr/sbin/
	mkdir /etc/p0f || true
	cp -f p0f.fp p0fa.fp p0fr.fp p0fo.fp /etc/p0f/
	cp -f p0f.1 /usr/man/man1/ || cp -f p0f.1 /usr/local/man/man1/
	@echo "You might want to manually install test/ tools now."
