include     ../Make.defs
MAJOR       = 1
MINOR       = 0
REVISION    = 0
VERSION     = ${MAJOR}.${MINOR}.${REVISION}

LOCK_HEADERS = ${INCDIR}/locks.h

LIB_OBJECTS =   ${OBJDIR}/locks_priority.o \
                ${OBJDIR}/locks_shared.o

ifeq (${ISELF},yes)
    CFLAGS         += ${DEFINES} -D_ELF_
    TARGET_LIB      = ../lib/${LOCKLIB}.so.${VERSION}
    LINK            = ../lib/${LOCKLIB}.so.1
else
    TARGET_LIB      = ../lib/${LOCKLIB}.a
endif

all: ${TARGET_LIB} install tests

${TARGET_LIB}: ${LIB_OBJECTS}
	@echo + building ${TARGET_LIB}
ifeq (${ISELF},yes)
	@echo + building ${TARGET_LIB}
	@rm -f ${TARGET_LIB} ${LINK}
	@${CC} -shared -Wl,-soname,${LINK} -o ${TARGET_LIB} ${LIB_OBJECTS}
	@ln -s ${TARGET_LIB} ${LINK}
else
	@ar r ${TARGET_LIB} ${LIB_OBJECTS}    
endif

${OBJDIR}/locks_priority.o: locks_priority.c locks.h
${OBJDIR}/locks_shared.o:   locks_shared.c locks.h

LINK_LIBS   = ${LFLAGS} -llocks -lc_r -lpthreads

tests: test1-${exe} test2-${exe} test3-${exe}

test1-${exe}: test1.c
	@echo + building test1
	@${CC} ${CFLAGS} test1.c ${LINK_LIBS} -o test1-${exe} 

test2-${exe}: test2.c
	@echo + building test2
	@${CC} ${CFLAGS} test2.c ${LINK_LIBS} -o test2-${exe}

test3-${exe}: test3.c ${LOCK_HEADERS}
	@echo + building test3
	@${CC} ${CFLAGS} test3.c ${LINK_LIBS} -o test3-${exe}

install:
	@cp -f locks.h ${INCDIR}

clobber: clean
	@rm -f ${TARGET_LIB} ${LINK} ${LOCK_HEADERS} ${LIB_OBJECTS}

clean:
	@rm -f *.bak *.rem *~ test*-${exe}
