###############################################################################
#
# Makefile for CCL SIP Stack.
#
###############################################################################

PROJECT_ROOT = .
include ./make/common.mk

MODULES = sip parser sdp msg adt utils low
STACK = cclsip
APPS = SipAppClient SipAppServer

.PHONY: clean
.SUFFIXES:

ALL = 
ifneq ($(words $(MODULES)), 0)
	ALL+= libs
endif
ALL+= $(STACK)
ifneq ($(words $(APPS)), 0)
	ALL+= apps
endif

all: $(ALL)

libs: 
	echo $(x)
	for subdir in $(MODULES); do \
	  echo making $@ in $$subdir; \
	  ($(MAKE) -C $$subdir) || exit 1; \
	done

apps: 
	for subdir in $(APPS); do \
	  echo making $@ in $$subdir; \
	  (cd ../sample/$$subdir && $(MAKE) ) || exit 1; \
	done

LIB_OUT = $(foreach file, $(MODULES), $(libdir)/lib$(file).a)

$(STACK):
	cd $(libdir);
	$(RM) -f $(libdir)/lib$(STACK).a *.o
	for file in $(LIB_OUT); do \
	  echo Extracting $$file...; \
	  $(AR) x $$file; \
	  $(RM) -f _____*; \
	done 
	$(AR) $(ARFLAGS) $(libdir)/lib$(STACK).a *.o 
	-$(RANLIB) $(libdir)/lib$(STACK).a
	$(RM) -f *.o

clean:
	$(RM) -f $(objdir)/*.o
	$(RM) -f $(objdir)/*.d
	$(RM) -f $(libdir)/*.a
	$(RM) -f $(bindir)/*
