#Makefile for the PICA Library
#Compiler
CC = gcc

#LIB_PATH = /usr/local/lib
LIB_PATH = /usr/lib
HDRS_PATH = /usr/include/PICA

#Compiler flags
#Flags -DLOGMSG and -DDEBUG
#-I/usr/include/pcap
CFLAGS = -O3 -Wall -I./ -DLOGMSG 

#Extra libraries  -lpcap
LIBS = -lpthread

#Object Files
OBJS = user.o log.o ipfwd.o rtmanager.o devs.o thr.o sock.o timer.o packet.o mem.o PICAspec.o

LIBNAME = pica
SONAME = libpica.so.1.2.1 
SOVERSION = libpica.so.1.2


#all: lib$(LIBNAME).so

#-lc -Wl,-soname
lib$(LIBNAME).so: $(OBJS) 
	gcc -shared $(CFLAGS) $(OBJS) -lc -Wl,-soname -Wl,$(SOVERSION) -o $(SONAME) $(LIBS)
	ln -sf $(SONAME) $(SOVERSION)
	ln -sf $(SONAME) lib$(LIBNAME).so

.c.o: 
	gcc -fPIC -DPIC $(CFLAGS) -c -o $*.o $< 

install: 
	mkdir -p $(LIB_PATH) 
	install -m 0755 lib$(LIBNAME).so.1.2.1 $(LIB_PATH)
	ln -sf $(LIB_PATH)/$(SONAME) $(LIB_PATH)/$(SOVERSION)
	ln -sf $(LIB_PATH)/$(SOVERSION) $(LIB_PATH)/lib$(LIBNAME).so
	ldconfig
	mkdir -p $(HDRS_PATH)
	cp *.h $(HDRS_PATH)
	chmod a+rx $(HDRS_PATH)/*.h

uninstall:
	rm $(LIB_PATH)/lib$(LIBNAME).so*
	rm -f $(HDRS_PATH)/*.h

clean:
	rm -f *.o *.a *.so *~ core* \#* libpica.so*

#Object File  Dependencies
user.o : user.h
log.o : log.h
ipfwd.o: ipfwd.h
rtmanager.o: rtmanager.h
devs.o: devs.h
thr.o: thr.h
sock.o: sock.h
timer.o: timer.h
packet.o: packet.h
mem.o: mem.h
PICAspec.o: PICAspec.h
