/* 
 MODULE : 	cpa_dep.h	(Depandancy Modules Detection)
 AUTHOR : 	Alexandre LANGER [ALX] 
 			UBI R&D
 FILE 	:	cpa_dep.h (Principal header file) 
*/
 
 
 
/*
 This header file must be included by all <TAG>.h public header files. 
The Main goal of this operation is to get information on modules dependancy 
during the compilation.
 You just have to uncomment the two #define line below to activate dependancy checking.
All result will appear as warning during the compilation.
 */
 
 
 
/* UnComment this to enable dependancies checking */
/*
#define CPA_CHECK_DEP_ENABLE
*/
 
/* UnComment this to check if dependancy compiler derectives are defined */
#define CPA_CHECK_DEP_DEFINITIONS
 
 
/* UnComment this to check public header inclusion conflic : */
#define CPA_CHECK_PUBLIC_INTRUSION
 
/* UnComment this to check dependancies : */
#define CPA_CHECK_DEP
 
 
 
 
 
 
 
#ifdef CPA_CHECK_DEP_ENABLE
 
/*
 *** Definition of Module identifier ***
 Visual C Project of the TAG module must define :
     CPA_SRC_TAG_NAME=CPA_TAG
 */
/* 
        No Dependancies Checking for this module for the moment.
        |The <TAG>.h header file was modified for dependancies Checking ( call cpa_dep.h ).
        ||The Project was modified for dependancies Chechink ( CPA_SRC_TAG_NAME=CPA_<TAG> ).
        |||
        VVV
*/
#define CPA_ADI 	"ADI"
#define  CPA_AI		"AI"
#define  CPA_BIN 	"BIN"
#define  CPA_CAP 	"CAP"
#define  CPA_CMP 	"CMP"
#define  CPA_COL 	"COL"
#define  CPA_DNM 	"DNM"
#define  CPA_DPT 	"DPT"
#define  CPA_ENV 	"ENV"
#define  CPA_ERM 	"ERM"
#define  CPA_ERO 	"ERO"
#define  CPA_FIL	"FIL"
#define  CPA_FON 	"FON"
#define  CPA_GAM 	"GAM"
#define  CPA_GEO 	"GEO"
#define  CPA_GLD 	"GLD"
#define  CPA_GLI 	"GLI"
#define  CPA_GMT 	"GMT"
#define  CPA_HDL 	"HDL"
#define CPA_HLM 	"HLM"
#define  CPA_INO 	"INO"
#define  CPA_INV 	"INV"
#define  CPA_IPO 	"IPO"
#define  CPA_IPT 	"IPT"
#define  CPA_ISI 	"ISI"
#define CPA_ITF 	"ITF"
#define  CPA_LRM 	"LRM"
#define  CPA_LST 	"LST"
#define  CPA_MMG 	"MMG"
#define  CPA_MMU 	"MNU"
#define  CPA_MRC	"MRC"
#define  CPA_MTH 	"MTH"
#define CPA_NET 	"NET"
#define CPA_OAC 	"OAC"
#define  CPA_PCS 	"PCS"
#define  CPA_PIC 	"PIC"
#define  CPA_PO		"PO"
#define  CPA_POS	"POS"
#define  CPA_PRT 	"PRT"
#define  CPA_RAD 	"RAD"
#define  CPA_RAY 	"RAY"
#define  CPA_RND 	"RND"
#define CPA_SAI 	"SAI"
#define CPA_SCR 	"SCR"
#define CPA_SCT 	"SCT"
#define CPA_SHW 	"SHW"
#define CPA_SIF 	"SIF"
#define CPA_SND 	"SND"
#define CPA_SPO 	"SPO"
#define CPA_SRF 	"SRF"
#define CPA_STR 	"STR"
#define CPA_TDE 	"TDE"
#define CPA_TME 	"TME"
#define CPA_TEX 	"TEX"
#define CPA_TMR 	"TMR"
#define CPA_TSN 	"TSN"
#define CPA_VDO 	"VDO"
#define CPA_VET 	"VET"
#define CPA_VIG 	"VIG"
 
/*
 Checking if All compiler directive existent
 */
#ifdef CPA_CHECK_DEP_DEFINITIONS
 
/* This Must be defined into the main public header file of the module : */
#ifndef CPA_PUBLIC_HEADER_TAG_NAME
#pragma message ("CPA_DEP: CPA_PUBLIC_HEADER_TAG_NAME IS NOT DEFINED !")
#undef  CPA_CHECK_PUBLIC_INTRUSION
#undef CPA_CHECK_DEP
#endif /*  CPA_PUBLIC_HEADER_TAG_NAME */
 
/* This Must be defined into the Project (makefile or Visual C Project), 
this must have CPA_<TAG> as value. 
*/ 
#ifndef CPA_SRC_TAG_NAME
#pragma message ("CPA_DEP: CPA_SRC_TAG_NAME IS NOT DEFINED !")
#undef  CPA_CHECK_PUBLIC_INTRUSION
#undef CPA_CHECK_DEP
#endif /*  CPA_SCR_TAG_NAME */
 
#endif /* CPA_CHECK_DEP_DEFINITIONS */
 
 
 
/*
 Checking Public header inter-inclusion
 */
 
#ifdef  CPA_CHECK_PUBLIC_INTRUSION
#ifdef CPA_PUBLIC_HEADER
#pragma message ("CPA_DEP: " CPA_SRC_TAG_NAME ":PUBLIC_HEADER_INTER_INCLUSION "  CPA_PUBLIC_HEADER_TAG_NAME "_BY_" CPA_PUBLIC_HEADER)
#endif /* CPA_PUBLIC_HEADER */
#endif /* CPA_CHECK_PUBLIC_INTRUSION */
 
 
/*
 Building dependancy information 
 */
 
#ifdef CPA_CHECK_DEP
#pragma message ("CPA_DEP: "  CPA_SRC_TAG_NAME "_DEP_"  CPA_PUBLIC_HEADER_TAG_NAME)
#endif /* CPA_CHECK_DEP */
 
#endif /* CPA_CHECK_DEP_ENABLE */
 
#ifdef CPA_PUBLIC_HEADER_TAG_NAME
#undef CPA_PUBLIC_HEADER_TAG_NAME
#endif /* CPA_PUBLIC_HEADER_TAG_NAME */
 
 
 
#ifdef CPA_PUBLIC_HEADER
#undef CPA_PUBLIC_HEADER
#endif /*  CPA_PUBLIC_HEADER */
