#Compiler flags
CC=gcc
#DBGFLAGS=-g3 -Wall -DDEBUG
OPTFLAGS=-O3 -Wall
IFLAGS=-I. -Iinclude -I../strandom
CFLAGS=$(DBGFLAGS) $(OPTFLAGS) $(IFLAGS) -fPIC -DPIC
VERSION=2.0

#Linker Flags
LD=gcc
LIBDIR=
LFLAGS=
LDFLAGS=$(LIBDIR) $(LFLAGS) -shared -rdynamic

#Project specifics
OBJDIR=obj
SRCDIR=src
OBJS=$(OBJDIR)/key.lo $(OBJDIR)/bits.lo $(OBJDIR)/encdec.lo $(OBJDIR)/strandom.lo $(OBJDIR)/haval.lo
LIB=libscain.so
SLIB=libscain.a

all: strandom $(LIB) $(SLIB)

strandom:
	make -C ../strandom

$(LIB): $(OBJS)
	$(LD) $^ -o $@ $(LDFLAGS)

$(SLIB): $(OBJS)
	ar urv $@ $^

clean:
	rm -f $(OBJS) core
	rm -f $(LIB)
	rm -f $(SLIB)
	make -C ../strandom clean

install: all
	cp $(LIB) /usr/local/lib/$(LIB).$(VERSION)
	cp $(SLIB) /usr/local/lib/$(SLIB)
	-ln -sf /usr/local/lib/$(LIB).$(VERSION) /usr/local/lib/$(LIB)
	cp include/scain.h /usr/local/include
	cp bin/scain-config /usr/local/bin

$(OBJDIR)/%.lo: $(SRCDIR)/%.c
	$(CC) $(CFLAGS) -c $^ -o $@

