
LIB_VERSION = 1

DEPS = Dependencies
DEPENDENCIES_OUTPUT := $(DEPS)

#USE_CPP = 1
USE_MT = 1

include $(BD)/lib/etc/makerules
HEADER = $(BD)/include

# ----------------------------------------------------------------------------

TARGET    = libpthread
TARGET.a  = $(TARGET).a
TARGET.so = $(TARGET).so.$(LIB_VERSION)

HEADER += ../include/ ../../../include/ ../src/ 
S	= ../src ../src/utility
VPATH	= $S

SRC =	nes_posix_semaphore.c nes_posix_mutex.c nes_posix_pthread.c \
	thread_attr.c manager.c internal_lock.c \
	init_lib.c once.c tsd.c clean.c pthread_signal.c \
	nes_posix_cond.c queue.c hashtable.c hashtable_itr.c \
	nes_posix_signal.c sigmanager.c memory_check.c export.c


OBJ	= $(addsuffix .o, $(basename $(SRC)))
SRC.C	= $(filter %.C, $(SRC))

CFLAGS += $(CFLAGS_WARNING)
#CFLAGS += -DMEMORY_CHECK
           
ifeq ($(mode), release_pthread_info)
  CFLAGS += -DPTHREAD_DEBUG -DPTHREAD_DEBUG_LEVEL=0 -DPTHREAD_DEBUG_MODULE=0 
endif

ifeq ($(mode), debug_pthread_info)
  CFLAGS += -g -DPTHREAD_DEBUG -DPTHREAD_DEBUG_LEVEL=0 -DPTHREAD_DEBUG_MODULE=0 
endif

# ----------------------------------------------------------------------------
.PHONY: all clean install

ifeq ($(LIBTYPE), so)
  EXE_INST = $(TARGET.so) $(TARGET.so).map
  ALL = $(EXE_INST) $(TARGET.a)
else
  ALL = $(TARGET.a)
endif

all: $(ALL)

$(TARGET.a): $(OBJ)
	$(AR) $(ARFLAGS) $@ $?
  ifdef RANLIB
	$(RANLIB) $@
  endif

$(TARGET.so): $(OBJ)
	$(LINK.o) $(LDOBJS) $^ $(LOADLIBES) $(LDLIBS) $(OUTPUT_OPTION)

install: $(addprefix $(LIB_INSTALLDIR)/, $(ALL))
ifeq ($(LIBTYPE), so)
install: $(addprefix $(EXE_INSTALLDIR)/, $(EXE_INST))
endif

clean:
	$(RM) $(OBJ) $(SRC.C:%.C=%.c) $(ALL) $(DEPS)

ifdef DEPENDENCIES_OUTPUT
  $(DEPS): ; touch $(DEPS)
else
  $(DEPS): $(SRC) ; $(MAKEDEPS) $@ $?
endif
include $(DEPS)

$(SRC.C:%.C=%.c):

