Upper = $(subst z,Z,$(subst y,Y,$(subst x,X,$(subst w,W,$(subst v,V,$(subst u,U,$(subst t,T,$(subst s,S,$(subst r,R,$(subst q,Q,$(subst p,P,$(subst o,O,$(subst n,N,$(subst m,M,$(subst l,L,$(subst k,K,$(subst j,J,$(subst i,I,$(subst h,H,$(subst g,G,$(subst f,F,$(subst e,E,$(subst d,D,$(subst c,C,$(subst b,B,$(subst a,A,$(1)))))))))))))))))))))))))))

# *************************************************************************
# Feature Removing / Can't be enabled in custom projects.
# *************************************************************************

# *************************************************************************
# Feature Removing / non-MP
# *************************************************************************

# *************************************************************************
# Feature Dependency
# *************************************************************************

ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
  ifdef CUSTOM_CFLAGS
    ifneq ($(strip $(CUSTOM_CFLAGS)),)
      $(warning ERROR: Customer projects can not define CUSTOM_CFLAGS such as --debug --no_debug_macros.)
      DEPENDENCY_CONFLICT = TRUE
    endif
  endif
endif

ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
ifneq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
  ifdef SCC_SIB_SUPPORT
    ifeq ($(strip $(SCC_SIB_SUPPORT)),TRUE)
      $(warning ERROR: SCC_SIB_SUPPORT cannot be enabled in customer projects.)
      DEPENDENCY_CONFLICT = TRUE
    endif
  endif
endif
endif

ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
ifneq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
  ifdef FCS_SUPPORT
    ifeq ($(strip $(FCS_SUPPORT)),TRUE)
      $(warning ERROR: Customer projects can not define FCS_SUPPORT. Internal use only!)
      DEPENDENCY_CONFLICT = TRUE
    endif
  endif
endif
endif

ifeq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
  ifeq ($(filter __MTK_INTERNAL_ENG_USER__,$(COM_DEFS)),)
    $(warning ERROR: __MTK_INTERNAL_ENG_USER__ should be enabled in MTK_INTERNAL(eng/user) projects.)
    DEPENDENCY_CONFLICT = TRUE
  endif
else #neq REL_CR_xxx
  ifneq ($(filter __MTK_INTERNAL_ENG_USER__,$(COM_DEFS)),)
    $(warning ERROR: __MTK_INTERNAL_ENG_USER__ cannot be enabled in customer projects.)
    DEPENDENCY_CONFLICT = TRUE
  endif
endif
