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

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

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

all: strandom $(LIB)

strandom:
	make -C ../strandom

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

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

install: all
	cp libscain.so /usr/local/lib/libscain.so$(VERSION)
	-ln -s /usr/local/lib/libscain.so$(VERSION) /usr/local/lib/libscain.so
	cp include/scain.h /usr/local/include
	cp bin/scain-config /usr/local/bin

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

