PKGNAME = pcaputils
VERSION = 0.0.2
PREFIX = /usr

CC = gcc
INCLUDE = -Iutil
CFLAGS = -Wall -Werror -Wextra -ggdb -O2
LDFLAGS = -Wl,--as-needed
LIBS = -lpcap -lJudy

ifneq ($(shell uname), Linux)
PREFIX = /usr/local
INCLUDE += -I/usr/local/include
LDFLAGS += -L/usr/local/lib
endif

BIN = bin/pcapdump bin/pcapip bin/pcappick bin/pcapuc

UTIL = \
	util/cfgopt.o \
	util/getline.o \
	util/pcapnet.o \
	util/util.o

PCAPDUMP = src/pcapdump.o
PCAPIP = src/pcapip.o
PCAPPICK = src/pcappick.o
PCAPUC = src/pcapuc.o

ALL = $(BIN) $(UTIL) $(PCAPDUMP) $(PCAPIP) $(PCAPPICK) $(PCAPUC)

all: $(ALL)

clean:
	rm -f $(ALL)
	$(MAKE) -C doc clean

doc:
	$(MAKE) -C doc

%.o: %.c
	$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@

bin/pcapdump: $(UTIL) $(PCAPDUMP)
	$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDE) -o $@ $^ $(LIBS)

bin/pcapip: $(UTIL) $(PCAPIP)
	$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDE) -o $@ $^ $(LIBS)

bin/pcappick: $(UTIL) $(PCAPPICK)
	$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDE) -o $@ $^ $(LIBS)

bin/pcapuc: $(UTIL) $(PCAPUC)
	$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDE) -o $@ $^ $(LIBS)

install: $(BIN)
	install -m 0755 $(BIN) $(DESTDIR)$(PREFIX)/bin

EXPORT = ../build/$(PKGNAME)-$(VERSION)
export:
	rm -rf $(EXPORT)
	svn export . $(EXPORT)
	svn export util $(EXPORT)/util

.PHONY: all clean doc install export
