#CC=gcc
#CXX=g++

FLAGS=$(CFLAG)

FO_FLAGS:= \
  -DADC_CAPTURE_DEFINE \
  -DGPS_SUSPEND_SUPPORT \
  -DMTK_GPS_DUAL_FREQ_SUPPORT \
  -DMTK_GPS_CO_CLOCK_DATA_IN_MD \
  -DMTK_AGPS_SUPPORT \

FLAGS+=\
  -g \
  -std=c99 \
  -Wall \
  -fPIC \
  -D __COMPILE_OPTION__ \
  -D __LINUX_OS__ \
  -D_POSIX_C_SOURCE=199309L \
  -D__USE_BSD \
  -Wno-unused-function \
  -Wno-unused-variable \
  -Wno-implicit-function-declaration \
  $(FO_FLAGS) \

ifneq ($(findstring __LIBMNL_SIMULATOR__, $(FLAGS)),)
CC=gcc
FLAGS+=\
  -DMTK_GPS_DATA_PATH="\"./etc/gnss/\"" \
  -DMTK_GPS_DATA_DEFAULT_PATH="\"./etc/\""
else
FLAGS+=\
  -DMTK_GPS_DATA_PATH="\"/etc/gnss/\"" \
  -DMTK_GPS_DATA_DEFAULT_PATH="\"/etc/\""
endif
#  -m32 \

CPPFLAGS=\
  -std=c++11 \

INCLUDE=\
        -Iutility/inc \
        -Imnl_agps_interface/inc \
        -Imnl_at_cmd_interface/inc \
        -Imnl_nlp_interface/inc \
        -Imnl_meta_interface/inc \
        -Imnl_debug_interface/inc \
        -Imnl_geofence_interface/inc \
        -Imnld_entity/inc \
        -Imnld_entity/inc/hardware \
        -Imnld_entity/src/flashdownload \
        -Imnl_log_interface/inc \
        -Icurl/inc \
        -Imnl/libs/inc

#Typethree add for T800 GNSS log level control 2022/09/20 start
LIBS=\
  -ldl \
  -lpthread \
  -lm \
  -lz \
  -lssl \
  -lcrypto \
  -lcurl \
  -lrt \
  -llynq-uci \

CXXSRC=\

CSRC=\
        mnld_entity/src/mnl2hal_interface.c \
        utility/src/data_coder.c \
        utility/src/mtk_lbs_utility.c \
        utility/src/mtk_socket_data_coder.c \
        utility/src/mtk_socket_utils.c \
        utility/src/mtk_prop_util.c \
        utility/src/mtk_mnld_log.c \
        mnl_agps_interface/src/mnl_agps_interface.c \
        mnl_agps_interface/src/mnl2agps_interface.c \
        mnl_agps_interface/src/agps2mnl_interface.c \
        mnl_geofence_interface/src/mtk_geofence_controller.c \
        mnl_geofence_interface/src/mtk_geofence_main.c \
        mnl_nlp_interface/src/Mnld2NlpUtilsInterface.c \
        mnl_meta_interface/src/Meta2MnldInterface.c \
        mnl_debug_interface/src/Debug2MnldInterface.c \
        mnl_debug_interface/src/Mnld2DebugInterface.c \
        mnl_at_cmd_interface/src/mnl_at_interface.c \
        mnld_entity/src/mnld.c \
        mnld_entity/src/mnld_uti.c \
        mnld_entity/src/gps_controller.c \
        mnld_entity/src/nmea_parser.c \
        mnld_entity/src/epo.c \
        mnld_entity/src/qepo.c \
        mnld_entity/src/mtknav.c \
        mnld_entity/src/mnl_common.c \
        mnld_entity/src/op01_log.c \
        mnld_entity/src/gps_dbg_log.c \
        mnl/src/pseudo_mnl.c \
        mnl_log_interface/src/LbsLogInterface.c \
        mnl_meta_interface/src/Meta2Mnld_logctrl_Interface.c \

ifneq ($(findstring ADC_CAPTURE_DEFINE, $(FLAGS)),)
  CSRC+=mnld_entity/src/adc_capture.c
endif

ifneq ($(findstring __LIBMNL_SIMULATOR__, $(FLAGS)),)
  CSRC+=mnl/src/mnl_simulator.c
else
  LIBS+=\
    mnl/libs/$(PACKAGE_ARCH)/libmnl_gnss.so \
    mnl/libs/$(PACKAGE_ARCH)/libhotstill.a

$(warning "mnld LIBS:$(LIBS)")
endif

EXECUTABLE=mnld
COBJS=$(CSRC:.c=.o)
CXXOBJS=$(CXXSRC:.cpp=.o)

all: $(EXECUTABLE)

$(EXECUTABLE): $(COBJS) $(CXXOBJS)
	$(CC) --sysroot=$(BB_SYSROOT_ADD) $(COBJS) $(CXXOBJS) $(LDFLAGS) $(LIBS) $(FLAGS) $(CPPFLAGS) -o $@

%.o : %.c
	$(CC) -c $(FLAGS) $(INCLUDE) -o $@ $<

%.o : %.cpp
	$(CC) -c $(FLAGS) $(INCLUDE) $(CPPFLAGS) -o $@ $<

.PHONY: install clean
install:
	install -d $(DESTDIR)/${bindir}
	install -m 0755 $(EXECUTABLE) $(DESTDIR)/${bindir}

clean:
	rm -f $(EXECUTABLE) rm -rf *.o
	find ./ -name *.o | xargs rm -rf

