# $Id: makefile,v 1.3 2001/06/01 06:34:20 pcharles Exp $
#
#   package net.sourceforge.jpcap.capture
#
PKG = net.sourceforge.jpcap.capture
PKG_DIR = $(subst .,/, $(PKG))
PKG_UND = $(subst .,_, $(PKG))
REL = ../../../..
include ${MAKE_HOME}/os.makefile
include ${MAKE_HOME}/rules.makefile

WRAPPER = PacketCapture

JAVA = \
	PacketHandler \
	PacketDispatcher \
	$(WRAPPER) \
	CaptureTest \
	\
	PacketListener \
	RawPacketListener \
	CaptureStatistics \
	\
	CaptureConfigurationException \
	CaptureDeviceInvalidException \
	CaptureDeviceNotFoundException \
	CaptureDeviceOpenException \
	CapturePacketException \
	InvalidFilterException


INCLUDES = \
	-I/usr/include/pcap \
	-I${JAVA_HOME}/include \
	-I${JAVA_HOME}/include/linux

LIBS = -lnsl /usr/lib/libpcap.a

JAVA_SOURCE = $(addsuffix .java, $(JAVA))
JAVA_CLASSES = $(addsuffix .class, $(JAVA))
SO_TARGET = libjpcap.so


all: $(JAVA_CLASSES) $(SO_TARGET)

$(SO_TARGET): $(PKG_UND)_$(WRAPPER).h jpcap.c
	gcc $(INCLUDES) jpcap.c -shared -o $@ $(LIBS)

$(PKG_UND)_$(WRAPPER).h: $(WRAPPER).java
	javah -jni $(PKG).$(WRAPPER)

#	javap $(PKG).$(WRAPPER)


# NOTE: to run the class PacketCapture, "." must be included in LD_LIBRARY_PATH
# or wherever libjpcap.so is output
test: all
	java $(PKG).CaptureTest


include ${MAKE_HOME}/targets.makefile
include ${MAKE_HOME}/depend.makefile


# override default clean target to remove stuff generated by the jni compiler
clean:
	rm -f *.o
	rm -f *.so
	rm -f jpcap
	rm -f $(PKG_UND)_$(WRAPPER).h
	rm -f *~
	rm -f *.class
