-include ../../../../Rules.make
export PATH=/bin:/sbin:/usr/bin:$(SDK_PATH_TARGET)/usr/bin:$PATH

#define library variable
Lib_Module_RFID = "-L../../../Modularization" -lModule_RFID
Lib_Module_Upgrade = "-L../../../Modularization" -lModule_Upgrade
Lib_Module_RatedCurrent = "-L../../../Modularization" -lm -lModule_RatedCurrent
Lib_SQLite3 = "-L../../../Modularization/ocppfiles" -lsqlite3
Lib_JSONC = "-L../../../GPL/json-c-json-c-0.13.1-20180305/release/lib" -ljson-c

EXI_ENGINE= CCS/v2g/api/api.c \
	    CCS/v2g/appHandshake/appHandEXIDatatypes.c \
	    CCS/v2g/appHandshake/appHandEXIDatatypesDecoder.c \
	    CCS/v2g/appHandshake/appHandEXIDatatypesEncoder.c \
	    CCS/v2g/codec/BitInputStream.c \
	    CCS/v2g/codec/BitOutputStream.c \
	    CCS/v2g/codec/ByteStream.c \
	    CCS/v2g/codec/DecoderChannel.c \
	    CCS/v2g/codec/EncoderChannel.c \
	    CCS/v2g/codec/EXIHeaderDecoder.c \
	    CCS/v2g/codec/EXIHeaderEncoder.c \
	    CCS/v2g/codec/MethodsBag.c \
	    CCS/v2g/din/dinEXIDatatypes.c \
	    CCS/v2g/din/dinEXIDatatypesDecoder.c \
	    CCS/v2g/din/dinEXIDatatypesEncoder.c \
	    CCS/v2g/iso1/iso1EXIDatatypes.c \
	    CCS/v2g/iso1/iso1EXIDatatypesDecoder.c \
	    CCS/v2g/iso1/iso1EXIDatatypesEncoder.c \
	    CCS/v2g/iso2/iso2EXIDatatypes.c \
	    CCS/v2g/iso2/iso2EXIDatatypesDecoder.c \
	    CCS/v2g/iso2/iso2EXIDatatypesEncoder.c \
	    CCS/v2g/transport/v2gtp.c \
	    CCS/v2g/xmldsig/xmldsigEXIDatatypes.c \
	    CCS/v2g/xmldsig/xmldsigEXIDatatypesDecoder.c \
	    CCS/v2g/xmldsig/xmldsigEXIDatatypesEncoder.c \
	    CCS/NidNmk.c \
	    CCS/SystemLogMessage.c \
	    CCS/Module_CCS.c

all: CopyFile apps
apps: Module_InternalComm_Task Module_FactoryConfig_Task Module_AlarmDetect_Task Module_CSU_Task Module_Speaker_Task Module_CCS_Task Module_LcmControl_Task Module_ConfigTools_Task Module_Debug_Task Module_PowerSharing_Task Module_Cabinet Module_Dispenser

Module_ConfigTools_Task:
	@echo "===== Module_ConfigTools_Task  ==================================="
	rm -f Module_ConfigTools
	rm -f Module_InternalComm
	$(CC) -D $(Project) "-I../../" -O0 -g3 -Wall -c -fmessage-length=0 -o Module_ConfigTools.o "./Module_ConfigTools.c"
	$(CC) -o Module_ConfigTools Module_ConfigTools.o
	rm -f *.o
	mv -f Module_ConfigTools ../Images/root
	@echo \

Module_Debug_Task:
	@echo "===== Module_Debug_Task  ==================================="
	rm -f Module_Debug
	rm -f Module_Debug
	$(CC) -D $(Project) "-I../../" -O0 -g3 -Wall -c -fmessage-length=0 -o Module_Debug.o "./Module_Debug.c"
	$(CC) -o Module_Debug Module_Debug.o
	rm -f *.o
	mv -f Module_Debug ../Images/root
	@echo \

Module_InternalComm_Task:
	@echo "===== Module_InternalComm_Task ==================================="
	rm -f Module_InternalComm 
	$(CC) -D $(Project) "-I../../" "-include../../../Modularization/Module_Upgrade.h" -O0 -g3 -Wall -c -fmessage-length=0 -o Module_InternalComm.o "./Module_InternalComm.c"
	$(CC) -o Module_InternalComm Module_InternalComm.o ${Lib_Module_Upgrade}
	rm -f *.o
	mv -f Module_InternalComm ../Images/root
	@echo \ 
	
Module_FactoryConfig_Task:
	@echo "===== Module_FactoryConfig_Task =================================="
	rm -f Module_FactoryConfig
	gcc -D $(Project) "-I../../" -o Module_FactoryConfig "./Module_FactoryConfig.c"
	mkdir -p /Storage/SystemLog	
	./Module_FactoryConfig -f;true
	cp /mnt/FactoryDefaultConfig.bin ../Images 
	rm -f Module_FactoryConfig 
	$(CC) -D $(Project) "-I../../" -O0 -g3 -Wall -c -fmessage-length=0 -o Module_FactoryConfig.o "./Module_FactoryConfig.c"
	$(CC) -o Module_FactoryConfig Module_FactoryConfig.o 
	rm -f *.o
	mv -f Module_FactoryConfig ../Images/root
	@echo \ 
	
Module_EventLogging_Task:
	@echo "===== Module_EventLogging_Task ==================================="
	rm -f Module_EventLogging 
	$(CC) -D $(Project) "-I../../" -O0 -g3 -Wall -c -fmessage-length=0 -o Module_EventLogging.o "./Module_EventLogging.c"
	$(CC) -o Module_EventLogging Module_EventLogging.o 
	rm -f *.o
	mv -f Module_EventLogging ../Images/root
	@echo \ 
	
Module_AlarmDetect_Task:
	@echo "===== Module_AlarmDetect_Task ===================================="
	rm -f Module_AlarmDetect 
	$(CC) -D $(Project) "-I../../" -O0 -g3 -Wall -c -fmessage-length=0 -o Module_AlarmDetect.o "./Module_AlarmDetect.c"
	$(CC) -o Module_AlarmDetect Module_AlarmDetect.o 
	rm -f *.o
	mv -f Module_AlarmDetect ../Images/root	
	@echo \ 
	
Module_CSU_Task:
	@echo "===== Module_CSU_Task ============================================"
	rm -f main 
	$(CC) -D $(Project) "-I../../" "-include../../../GPL/json-c-json-c-0.13.1-20180305/release/include/json-c/json.h" "-include../../../Modularization/ocppfiles/sqlite3.h" "-include../../../Modularization/Module_Upgrade.h" "-include../../../Modularization/Module_RFID.h" "-include../../../Modularization/Module_RatedCurrent.h" -O0 -g3 -Wall -c -fmessage-length=0 -o main.o "./main.c"
	$(CC) -o main main.o ${Lib_Module_RFID} ${Lib_Module_Upgrade} ${Lib_SQLite3} ${Lib_Module_RatedCurrent} ${Lib_JSONC} -lrt
	rm -f *.o
	mv -f main ../Images/root		
	@echo \

Module_Speaker_Task:
	@echo "===== Module_Speaker_Task ======================================="
	rm -f Module_Speaker
	$(CC) -D $(Project) "-I../../"  -O0 -g3 -Wall -c -fmessage-length=0 -o Module_Speaker.o  "./Module_Speaker.c"
	$(CC) -o Module_Speaker Module_Speaker.o 
	rm -f *.o
	mv -f Module_Speaker ../Images/root	
	@echo \ 

Module_CCS_Task:
	@echo "===== Module_CCS_Task =========================================="
	rm -f Module_CCS
	$(CC) -D $(Project) "-I../../../Modularization/ocppfiles/" "-ICCS/v2g/api" "-ICCS/v2g/appHandshake" "-ICCS/v2g/codec" "-ICCS/v2g/din" "-ICCS/v2g/iso1" "-ICCS/v2g/iso2" "-ICCS/v2g/transport" "-ICCS/v2g/xmldsig" "-ICCS/" "-I./" -O0 -g3 -Wall -fmessage-length=0 -lm  ${EXI_ENGINE} -o Module_CCS
	rm -f *.o
	mv -f Module_CCS ../Images/root

Module_LcmControl_Task:
	@echo "===== Module_LcmControl_Task ==================================="
	rm -f Module_LcmControl
	$(CC) -D $(Project) "-I../../../Modularization/ocppfiles/" "-I./" "-I../../" -O0 -g3 -Wall -fmessage-length=0 LCM/lcmComm_dgus.c LCM/Module_LcmControl.c LCM/cbmp.c -o Module_LcmControl
	rm -f *.o	
	mv -f Module_LcmControl ../Images/root

Module_PowerSharing_Task:
	@echo "===== Module_PowerSharing_Task ==================================="
	rm -f Module_PowerSharing
	$(CC) -D $(Project) "-I../../../Modularization/ocppfiles/" "-I./" "-I../../" -O0 -g3 -Wall -fmessage-length=0 Module_PowerSharing.c -o Module_PowerSharing
	rm -f *.o
	mv -f Module_PowerSharing ../Images/root

Module_Cabinet:
	@echo "===== Module_Cabinet_Task ======================================="
	rm -f Module_Cabinet
	$(CC) -D $(Project) "-I../../../Modularization/ocppfiles/" "-I./" "-I../../" -O0 -g3 -Wall -fmessage-length=0 Module_Cabinet.c -o Module_Cabinet
	rm -f *.o
	mv -f Module_Cabinet ../Images/root

Module_Dispenser:
	@echo "===== Module_Dispenser_Task ===================================="
	rm -f Module_Dispenser
	$(CC) -D $(Project) "-include../../../Modularization/Module_Upgrade.h" "-I../../../Modularization/ocppfiles/" "-I./" "-I../../" -O0 -g3 -Wall -fmessage-length=0 Module_Dispenser.c ${Lib_Module_Upgrade} -lrt -o Module_Dispenser 
	rm -f *.o
	mv -f Module_Dispenser ../Images/root


CopyFile: 
	rm -rfv ../Images/root
	mkdir -p ../Images/root