//These 3 defines are only here to show an example //They are normally defined in the build configuration for each customer //So not everything exists normally #define CONFIG_CUSTOMER1 //#define CONFIG_CUSTOMER2 //#define CONFIG_CUSTOMER3 #ifdef CONFIG_CUSTOMER1 #define WITH_METER #define WITH_DISPLAY #elif defined(CONFIG_CUSTOMER2) #define WITH_METER #define WITH_SCOPE #elif define(CONFIG_CUSTOMR3) #define WITH_DISPLAY #define WITH_GPS #else #error "ABC" #endif void some_function() { //Do some stuff #ifdef WITH_GPS //Do stuff if GPS #endif //Do rest stuff }