include ../../Configure

HOME 	=	$(ROOT)/src/libohana
LIB	= 	$(HOME)/lib
SRC	=	$(HOME)/src
MAN	=	$(HOME)/doc
INC	=	$(HOME)/include
TESTDIR =       $(HOME)/test
TESTLIB =       $(ROOT)/src/libtap/lib/$(ARCH)
TESTINC =       $(ROOT)/src/libtap/include
DESTBIN	=	$(LBIN)
DESTLIB	=	$(LLIB)
DESTINC	=	$(LINC)
DESTMAN	=	$(LMAN)

LIBS	= 	-L$(LLIB) -L$(XLIB) -lohana
CFLAGS	=	-I$(INC) -I$(LINC) -D$(ARCH)
TFLAGS  =       $(CFLAGS) $(LIBS) -L$(TESTLIB) -I$(TESTINC) -ltap

default: install

install: $(DESTLIB)/libohana.a

libohana: $(LIB)/libohana.$(ARCH).a 

INCS = \
$(DESTINC)/Xohana.h  \
$(DESTINC)/ohana_allocate.h \
$(DESTINC)/ohana.h

OBJS = \
$(SRC)/ohana_allocate.$(ARCH).o  \
$(SRC)/string.$(ARCH).o		 \
$(SRC)/findexec.$(ARCH).o	 \
$(SRC)/glockfile.$(ARCH).o	 \
$(SRC)/time.$(ARCH).o		 \
$(SRC)/gaussj.$(ARCH).o		 \
$(SRC)/config.$(ARCH).o		 \
$(SRC)/Fread.$(ARCH).o		 \
$(SRC)/IOBufferOps.$(ARCH).o	 \
$(SRC)/CommOps.$(ARCH).o	 \
$(SRC)/version.$(ARCH).o

TEST = \
$(TESTDIR)/string.$(ARCH)

$(OBJS): $(INCS)

$(DESTLIB)/libohana.a: $(LIB)/libohana.$(ARCH).a
	@if [ ! -d $(DESTLIB) ]; then mkdir -p $(DESTLIB); fi
	rm -f $(DESTLIB)/libohana.a
	cp $(LIB)/libohana.$(ARCH).a $(DESTLIB)/libohana.a

$(LIB)/libohana.$(ARCH).a: $(OBJS)
	@if [ ! -d $(LIB) ]; then mkdir -p $(LIB); fi
	rm -f $(LIB)/libohana.$(ARCH).a
	ar rcv $(LIB)/libohana.$(ARCH).a $(OBJS)
	$(RANLIB) $(LIB)/libohana.$(ARCH).a

$(DESTINC)/%: $(INC)/%
	@if [ ! -d $(DESTINC) ]; then mkdir -p $(DESTINC); fi
	rm -f $(DESTINC)/$*
	cp $(INC)/$* $(DESTINC)/

$(TESTDIR)/%.$(ARCH) : $(DESTLIB)/libohana.a $(TESTDIR)/%.c
	$(CC) $^ -o $@ $(TFLAGS)

testcode: install $(TEST)

test:
	make testcode
	for i in $(TEST); do $$i; done

clean:
	rm -f */*~
	rm -f */#*
	rm -f */*.o
	rm -f */*.a

dist: clean

.SUFFIXES: .$(ARCH).o

.c.$(ARCH).o:
	echo make c
	echo $(CFLAGS)
	echo $*.c
	echo $@
	$(CC) $(CFLAGS) -c $*.c -o $@

.PHONY: test
