VERSION=1.1.0.0

# installation paths
LIB_DIR=/usr/local/lib
INC_DIR=/usr/local/include

CFLAGS=-Wall -O2 -fPIC -g
CINCS=-I${HOME}/opt
CLIBS=

OBJS=tissue.o client.o ds.o signal.o antigen.o cytokine.o cell.o \
		receptor.o producer.o misc.o response.o syscall.o log.o

all: libtissuek.so.$(VERSION) libtissuek.a

libtissuek.so.$(VERSION): $(OBJS)
	gcc $(CFLAGS) $(CINCS) $(CLIBS) -shared -Wl,-soname,libtissuek.so.1 \
		-o libtissuek.so.$(VERSION) $(OBJS)

libtissuek.a: $(OBJS)
	ar rcs libtissuek.a $(OBJS)

tissue.o: tissue.h tissue.c
	gcc $(CFLAGS) $(CINCS) -c tissue.c

client.o: client.h client.c
	gcc $(CFLAGS) $(CINCS) -c client.c

ds.o: ds.h ds.c
	gcc $(CFLAGS) $(CINCS) -c ds.c

signal.o: signal.h signal.c
	gcc $(CFLAGS) $(CINCS) -c signal.c

antigen.o: antigen.h antigen.c
	gcc $(CFLAGS) $(CINCS) -c antigen.c

cytokine.o: cytokine.h cytokine.c
	gcc $(CFLAGS) $(CINCS) -c cytokine.c

cell.o: cell.h cell.c
	gcc $(CFLAGS) $(CINCS) -c cell.c

receptor.o: receptor.h receptor.c
	gcc $(CFLAGS) $(CINCS) -c receptor.c

producer.o: producer.h producer.c
	gcc $(CFLAGS) $(CINCS) -c producer.c

misc.o: misc.h misc.c
	gcc $(CFLAGS) $(CINCS) -c misc.c

response.o: response.h response.c
	gcc $(CFLAGS) $(CINCS) -c response.c

syscall.o: syscall.h syscall.c
	gcc $(CFLAGS) $(CINCS) -c syscall.c

log.o: log.h log.c
	gcc $(CFLAGS) $(CINCS) -c log.c

install: uninstall
	install libtissuek.so.$(VERSION) $(LIB_DIR)
	install libtissuek.a $(LIB_DIR)
	ldconfig
	rm -f $(LIB_DIR)/libtissuek.so
	ln -s $(LIB_DIR)/libtissuek.so.1 $(LIB_DIR)/libtissuek.so
	rm -rf $(INC_DIR)/tissuek
	mkdir $(INC_DIR)/tissuek
	install tissue.h client.h ds.h signal.h antigen.h cytokine.h cell.h \
			receptor.h producer.h misc.h response.h syscall.h \
			log.h syscallent.h \
			$(INC_DIR)/tissuek

uninstall:
	rm -f $(LIB_DIR)/libtissuek.so* $(LIB_DIR)/libtissuek.a
	ldconfig
	rm -rf $(INC_DIR)/tissuek

clean:
	rm -f *.o *~ libtissuek.so.* libtissuek.a
