BUILD_ROOT = $(shell pwd)
include Make.defines

# Build a file.
#ifeq ($(MBTK_SOURCE_VERSION), 2)
#DIRS = libmbtk_lib_v2
#else
DIRS = libmbtk_lib
#endif

# Build bin file.
ifeq ($(MBTK_SOURCE_VERSION), 2)
DIRS += mbtk_rild_v2 mbtk_servicesd_v2 mbtk_sdk_ready_v2
else
DIRS += mbtk_rild mbtk_servicesd mbtk_sdk_ready
endif

DIRS += aboot-tiny mbtk_adbd mbtk_logd mbtk_utils mbtk_utils_linux mbtk_gnssd mbtk_rtpd

# Build test file.
DIRS += test

#exclude_dirs := include bin
#test_dirs := $(shell find test/ -maxdepth 1 -type d)
#test_dirs := $(basename $(patsubst ./%,%,$(test_dirs)))
#test_dirs := $(filter-out $(exclude_dirs),$(test_dirs))

all:
	@echo $(ROOT)
	@echo $(CC)
	@echo $(OUT_DIR)
	@for i in $(DIRS); do \
		(cd $$i && echo "making $$i" && $(MAKE) ) || exit 1; \
	done
	@echo "Build libs success."

clean:
	@for i in $(DIRS); do \
		(cd $$i && echo "Cleaning $$i" && $(MAKE) clean) || exit 1; \
	done
	rm -rf $(OUT_DIR)
