BUILD_ROOT = $(shell pwd)/..
include $(BUILD_ROOT)/Make.defines

LOCAL_PATH=$(BUILD_ROOT)/mbtk_rild

INC_DIR += \
		-I$(LOCAL_PATH)/inc \
		-I$(BUILD_ROOT)/libmbtk_lib/ril/inc

LIB_DIR +=

LIBS += -lmbtk_lib -lrilutil -lprop2uci -lmtel -laudio-apu -lcutils -ltinyalsa -lacm

CFLAGS +=

DEFINE += 

MY_FILES_PATH:=$(LOCAL_PATH)/src
#ifeq ($(CONFIG_MBTK_QL_SUPPORT),y)
#MY_FILES_PATH += $(LOCAL_PATH)/ql
#endif

#ifeq ($(CONFIG_MBTK_PLATFORM),linux)
#MY_FILES_PATH += $(LOCAL_PATH)/platform/linux
#endif

LOCAL_SRC_FILES = $(wildcard src/*.c) $(wildcard src/*.cpp)
OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(LOCAL_SRC_FILES)))
$(info OBJS = $(OBJS))

dtarget := $(OUT_DIR)/bin/mbtk_rild

all: $(dtarget)

$(dtarget): $(OBJS)
	@echo "  BIN     $@"
	$(CC) $(CFLAGS) $(LIB_DIR) $(LIBS) $(OBJS) -o $@

%.o:%.c
	$(CC) $(CFLAGS) $(INC_DIR) $(DEFINE) -c $< -o $@

%.o:%.cpp
	$(CC) $(CFLAGS) $(INC_DIR) $(DEFINE) -c $< -o $@

clean:
	rm -f $(OBJS) $(dtarget)

