include ./make.conf

CCL_VERSION=$(shell grep CCL_VERSION src/lib/settings.h | awk '{print substr($$3, 2, length($$3) - 2)}')

PACKAGE_NAME=Conviva_SDK_C_$(CCL_VERSION)
DOCS_NAME=Conviva_SDK_API_Docs_$(CCL_VERSION)
PACKAGE_PATH=build/
PACKAGE_EXCUDES=--exclude=*~ --exclude=*.obj --exclude=*.ilk --exclude=*.idb --exclude=*.pdb --exclude=*.dll --exclude=*.lib
PACKAGE_FILES=sample src CHANGES make.conf make.win makefile README

DIRS = src
ifneq ($(wildcard ./test/.*),)
DIRS += test
endif
ifeq ($(UNAME), Linux)
DIRS += sample
endif


BUILDDIRS = $(DIRS:%=build-%)
DEBUGDIRS = $(DIRS:%=debug-%)
CLEANDIRS = $(DIRS:%=clean-%)

all: build

build: $(BUILDDIRS)
$(BUILDDIRS):
	$(MAKE) -C $(@:build-%=%) build

debug: $(DEBUGDIRS)
$(DEBUGDIRS):
	$(MAKE) -C $(@:debug-%=%) debug

clean: $(CLEANDIRS)
	rm -rf build

$(CLEANDIRS):
	$(MAKE) -C $(@:clean-%=%) clean

.PHONY: subdirs $(BUILDDIRS)
.PHONY: subdirs $(DEBUGDIRS)
.PHONY: subdirs $(CLEANDIRS)

samples: src

docs: src
	doxygen doxygen-config
	cp -R build/docs .

docs_clean:
	rm -rf docs

package: build docs sample src
	rm -f $(PACKAGE)
	mkdir -p $(PACKAGE_PATH)$(PACKAGE_NAME)
	cp -R $(PACKAGE_FILES) $(PACKAGE_PATH)$(PACKAGE_NAME)/
	cd $(PACKAGE_PATH); zip -r $(PACKAGE_NAME).zip $(PACKAGE_EXCUDES) $(PACKAGE_NAME); rm -rf $(PACKAGE_NAME)

package_docs: docs
	mkdir -p $(PACKAGE_PATH)$(DOCS_NAME)
	cp -R docs/* $(PACKAGE_PATH)$(DOCS_NAME)/
	cd $(PACKAGE_PATH); zip -r $(DOCS_NAME).zip $(PACKAGE_EXCUDES) $(DOCS_NAME); rm -rf $(DOCS_NAME)
