# target name, the target name must have the same name of c source file
TARGET_NAME=usermanager-test

# target 
# for linux module driver: KO
# for application: EXE
# for dynamic library: DLL
TARGET_TYPE = EXE
 
# target object
# for application: APP
# for device driver: DRV
TARGET_OBJ  = APP

# custom install dir
TARGET_BOX = 

#debug mode or release mode
DEBUG 			= TRUE

PLAT_LINUX		?= TRUE
PLAT_ARM64		?= TRUE

VPATH = ../user/user_manager/ ../../Platform/user/configm/config-server/user_manager_config/

# source code

# set the source file, don't used .o because of ...

COMMON_SRCS = usermanager-test/test_usermanager.c user_account_config.c user_group_config.c usermanager-server/array_index.c usermanager-server/user_group.c \
                usermanager-server/user_mod.c usermanager-server/user.c

# MRS Board Source Files
PLAT_LINUX_SRCS = $(COMMON_SRCS)
PLAT_ARM64_SRCS = $(COMMON_SRCS)

# gcc CFLAGS
PLAT_ARM64_CFLAGS := -I../../Platform/user/configm/config-server/user_manager_config -I../../Platform/user/configm/config-server/user_manager_config/usermanager-server/include -I../../Common -I../common \
                     -I../../Platform/user/configm/config-server/include -I../../Platform/common/database -I../../Platform/common/redismq -I../../Platform/common/configm -I../../Platform/common/rpc -I../../Platform/common/rpc/hashtable \
                     -I../user/user_manager/usermanager-auth \
                     -I../../Platform/thirdparty/arm64/usr/local/include 

PLAT_LINUX_CFLAGS := -I../../Platform/user/configm/config-server/user_manager_config -I../../Platform/user/configm/config-server/user_manager_config/usermanager-server/include -I../../Common -I../common \
                     -I../../Platform/user/configm/config-server/include -I../../Platform/common/database -I../../Platform/common/redismq -I../../Platform/common/configm -I../../Platform/common/rpc -I../../Platform/common/rpc/hashtable \
                     -I../user/user_manager/usermanager-auth \
                     -I../../Platform/thirdparty/x86_64/usr/local/include


PLAT_ARM64_LDFLAGS := 
PLAT_LINUX_LDFLAGS := 

THIRDLIB_LINUX_DIR := ../../Platform/thirdparty/x86_64/usr/local/lib
THIRDLIB_ARM64_DIR := ../../Platform/thirdparty/arm64/usr/local/lib
PLATLIB_DIR  := ../../Platform/build/debug
#gcc libs
ARM64_LIBS		:= ./userauthapi-arm64.so ./libredismq-arm64.so ./libdatabase-arm64.so
ARM64_LIBS      += -lpthread -lm -lcjson -levent -ljson-c -lhiredis
ARM64_LIBS      += $(THIRDLIB_ARM64_DIR)/libodbc.so

LINUX_LIBS		:= ./userauthapi-linux.so ./libredismq-linux.so ./libdatabase-linux.so
LINUX_LIBS		+= -lpthread -lm -lcjson -levent -ljson-c -lhiredis
LINUX_LIBS      += $(THIRDLIB_LINUX_DIR)/libodbc.so

                                               
ifeq	($(PLAT_ARM64), TRUE)
DEPEND_LIB			+= ./debug/userauthapi-arm64.so $(PLATLIB_DIR)/libredismq-arm64.so $(PLATLIB_DIR)/libdatabase-arm64.so $(THIRDLIB_ARM64_DIR)/libodbc.so
USER_CLEAN_ITEMS	+= ./userauthapi-arm64.so ./libredismq-arm64.so ./libdatabase-arm64.so
endif

ifeq	($(PLAT_LINUX), TRUE)
DEPEND_LIB			+= ./debug/userauthapi-linux.so $(PLATLIB_DIR)/libredismq-linux.so $(PLATLIB_DIR)/libdatabase-linux.so $(THIRDLIB_LINUX_DIR)/libodbc.so
USER_CLEAN_ITEMS	+= ./userauthapi-linux.so ./libredismq-linux.so ./libdatabase-linux.so
endif

# this line must be at below of thus, because of...	
include ../../Common/common.Makefile

ifneq ($(MAKECMDGOALS), clean)
ifneq ($(MAKECMDGOALS), cleanall)
ifneq ($(notdir $(DEPEND_LIB)), $(wildcard $(DEPEND_LIB)))
$(shell $(CP) $(DEPEND_LIB) ./)
endif
endif
endif

ifeq ($(MAKECMDGOALS), )
$(shell find ./ -name "$(TARGET)-*.ko" -delete)
else
ifeq ($(MAKECMDGOALS), all)
$(shell find ./ -name "$(TARGET)-*.ko" -delete)
endif
endif