include $(ALLIANCE_TOP)/etc/$(ALLIANCE_OS).mk
include $(ALLIANCE_TOP)/etc/libraries.mk
include ../local.mk

BFL_INC		= bfl106.h
BFL_SRC		= bflchrono.c bflcomp.c bflcube.c bflenv.c bflerr.c \
		  bflheap.c bfllist.c bflmap.c bflmat.c bflmath.c bflmem.c \
		  bflname.c bflpos.c bflrandom.c bflsort.c bflstring.c \
		  bflstrmatch.c bfltree.c bflvec.c
BFL_OBJ		= $(BFL_SRC:.c=.o)
BFL_LIB		= $(TARGET_LIB)/libBfl106.a

BFL_INCDIR	= -I$(TARGET_INCLUDE)
BFL_LIBDIR	= -L$(TARGET_LIB)

BFL_DEFINES	= -DBFL_H='"bfl106.h"'
BFL_LIBRARIES	= -lBfl106

.c.o	:
	$(CC) -c $(CFLAGS) $(BFL_INCDIR) $(BFL_DEFINES) $<

all : $(BFL_LIB)

$(BFL_LIB) : $(BFL_OBJ) $(BFL_INC)
	$(AR) $(ARFLAGS) $(BFL_LIB) $(BFL_OBJ)
	$(RANLIB) $(BFL_LIB)
	$(CP) $(BFL_INC) $(TARGET_INCLUDE)

dep	:
	$(CC) -MM $(BFL_INCDIR) $(BFL_DEFINES) $(BFL_SRC) > .depend 

clean	:
	$(RM) -f *.o .depend core *~
	$(RM) -f testchrono testcube testerr testlist testmap testmatch testmem
	$(RM) -f testtree testvec testmat testrand testsort 

realclean : clean
	$(RM) -f $(BFL_LIB)
	$(RM) -f $(TARGET_INCLUDE)/$(BFL_INC)

test : testchrono testcube testerr testlist testmap testmatch testsort testrand testtree testvec

testchrono : all testchrono.o
	$(CC) $(CFLAGS) -o testchrono testchrono.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testcube : all testcube.o
	$(CC) $(CFLAGS) -o testcube testcube.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testerr : all testerr.o
	$(CC) $(CFLAGS) -o testerr testerr.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testlist : all testlist.o
	$(CC) $(CFLAGS) -o testlist testlist.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testmap : all testmap.o
	$(CC) $(CFLAGS) -o testmap testmap.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testmat : all testmat.o
	$(CC) $(CFLAGS) -o testmat testmat.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testmatch : all testmatch.o
	$(CC) $(CFLAGS) -o testmatch testmatch.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testmem : all testmem.o
	$(CC) $(CFLAGS) -o testmem testmem.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testrand : all testrand.o
	$(CC) $(CFLAGS) -o testrand testrand.o $(BFL_LIBDIR) $(BFL_LIBRARIES) -lm

testsort : all testsort.o
	$(CC) $(CFLAGS) -o testsort testsort.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testtree : all testtree.o
	$(CC) $(CFLAGS) -o testtree testtree.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

testvec : all testvec.o
	$(CC) $(CFLAGS) -o testvec testvec.o $(BFL_LIBDIR) $(BFL_LIBRARIES)

-include .depend
