# Makefile for HPI python bindings.
# NOT yet made by autoconf, so you may have to edit the include paths
# Requires swig and python-dev

VPATH = ..
INCLUDES = -I..
# For 64 bit build. Still don't know how to detect at compile time??
#DEFS = -DHPI_OS_LINUX -DHPI_EXCLUDE_IMPLEMENTATION -DHPI_64BIT
DEFS = -DHPI_OS_LINUX -DHPI_EXCLUDE_IMPLEMENTATION -DHPI_EXCLUDE_DEPRECATED
CDEBUG = -g
CFLAGS = -Wall $(CDEBUG) -I. $(INCLUDES) $(DEFS)
LDFLAGS = -g

PYTHONINCLUDE=-I/usr/include/python2.5 -I/usr/include/python

NETOBJECTS = hpinet_swig.o hpifunc.o hpinet.o hpios_linux.o

all: _hpi.so 
#_hpinet.so

_hpinet.so: $(NETOBJECTS)
	gcc -shared  -lpcap -o $@ $^

_hpi.so: hpi_swig.o hpirds.o
	gcc -shared -lhpi -o $@ $^

hpi_swig.c hpi.py: ../hpi.i ../hpi.h ../hpirds.h
	swig -python -module hpi -modern $(DEFS) -o hpi_swig.c ../hpi.i 

hpi_swig.o: hpi_swig.c
	gcc -c -fpic hpi_swig.c -I.. $(PYTHONINCLUDE)


hpinet_swig.c hpinet.py: ../hpi.i ../hpi.h
	swig -python -module hpinet -modern $(DEFS) -o hpinet_swig.c ../hpi.i 

hpinet_swig.o: hpinet_swig.c
	gcc -c -fpic hpinet_swig.c -I.. $(PYTHONINCLUDE)

$(OBJECTS): hpi.h hpios_linux.h

.PHONY: clean
clean:
	rm *.so *.o *_swig.c
