Index: /trunk/kBuild/footer.kmk
===================================================================
--- /trunk/kBuild/footer.kmk	(revision 2482)
+++ /trunk/kBuild/footer.kmk	(revision 2483)
@@ -2305,5 +2305,6 @@
  	$($(target)_MODE.$(bld_trg)) \
  	$($(target)_MODE.$(bld_type)) \
- 	$($(target)_MODE) )
+ 	$($(target)_MODE) \
+	$(target_type_mode) )
  local uid := $(firstword \
  	$($(target)_UID.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
@@ -2521,5 +2522,5 @@
 
 # installing and globals.
-local target_type_mode := a+r,o+w
+local target_type_mode := a+r,u+w
 $(evalval def_target_install_only)
 
@@ -3043,17 +3044,17 @@
 # mode, uid and gid
 local mode := $(firstword \
-	$($(target)_$(srcsrc)_MODE.$(bld_trg).$(bld_trg_arch)) \
-	$($(target)_$(srcsrc)_MODE.$(bld_trg)) \
-	$($(target)_$(srcsrc)_MODE) \
-	$($(target)_$(srcdst)_MODE.$(bld_trg).$(bld_trg_arch)) \
-	$($(target)_$(srcdst)_MODE.$(bld_trg)) \
-	$($(target)_$(srcdst)_MODE) \
-	$($(srcsrc)_MODE.$(bld_trg).$(bld_trg_arch)) \
-	$($(srcsrc)_MODE.$(bld_trg)) \
-	$($(srcsrc)_MODE) \
-	$($(srcdst)_MODE.$(bld_trg).$(bld_trg_arch)) \
-	$($(srcdst)_MODE.$(bld_trg)) \
-	$($(srcdst)_MODE) \
-	$(top_mode))
+	$($(target)_$(srcsrc)$(source_type_prefix)_MODE.$(bld_trg).$(bld_trg_arch)) \
+	$($(target)_$(srcsrc)$(source_type_prefix)_MODE.$(bld_trg)) \
+	$($(target)_$(srcsrc)$(source_type_prefix)_MODE) \
+	$($(target)_$(srcdst)$(source_type_prefix)_MODE.$(bld_trg).$(bld_trg_arch)) \
+	$($(target)_$(srcdst)$(source_type_prefix)_MODE.$(bld_trg)) \
+	$($(target)_$(srcdst)$(source_type_prefix)_MODE) \
+	$($(srcsrc)$(source_type_prefix)_MODE.$(bld_trg).$(bld_trg_arch)) \
+	$($(srcsrc)$(source_type_prefix)_MODE.$(bld_trg)) \
+	$($(srcsrc)$(source_type_prefix)_MODE) \
+	$($(srcdst)$(source_type_prefix)_MODE.$(bld_trg).$(bld_trg_arch)) \
+	$($(srcdst)$(source_type_prefix)_MODE.$(bld_trg)) \
+	$($(srcdst)$(source_type_prefix)_MODE) \
+	$(source_type_mode))
 local uid := $(firstword \
 	$($(target)_$(srcsrc)_UID.$(bld_trg).$(bld_trg_arch)) \
@@ -3086,16 +3087,16 @@
 local flags := \
 	$(top_ifflags) \
-	$($(srcdst)_IFFLAGS) \
-	$($(srcdst)_IFFLAGS.$(bld_trg)) \
-	$($(srcdst)_IFFLAGS.$(bld_trg).$(bld_trg_arch)) \
-	$($(srcsrc)_IFFLAGS) \
-	$($(srcsrc)_IFFLAGS.$(bld_trg)) \
-	$($(srcsrc)_IFFLAGS.$(bld_trg).$(bld_trg_arch)) \
-	$($(target)_$(srcdst)_IFFLAGS) \
-	$($(target)_$(srcdst)_IFFLAGS.$(bld_trg)) \
-	$($(target)_$(srcdst)_IFFLAGS.$(bld_trg).$(bld_trg_arch)) \
-	$($(target)_$(srcsrc)_IFFLAGS) \
-	$($(target)_$(srcsrc)_IFFLAGS.$(bld_trg)) \
-	$($(target)_$(srcsrc)_IFFLAGS.$(bld_trg).$(bld_trg_arch))
+	$($(srcdst)$(source_type_prefix)_IFFLAGS) \
+	$($(srcdst)$(source_type_prefix)_IFFLAGS.$(bld_trg)) \
+	$($(srcdst)$(source_type_prefix)_IFFLAGS.$(bld_trg).$(bld_trg_arch)) \
+	$($(srcsrc)$(source_type_prefix)_IFFLAGS) \
+	$($(srcsrc)$(source_type_prefix)_IFFLAGS.$(bld_trg)) \
+	$($(srcsrc)$(source_type_prefix)_IFFLAGS.$(bld_trg).$(bld_trg_arch)) \
+	$($(target)_$(srcdst)$(source_type_prefix)_IFFLAGS) \
+	$($(target)_$(srcdst)$(source_type_prefix)_IFFLAGS.$(bld_trg)) \
+	$($(target)_$(srcdst)$(source_type_prefix)_IFFLAGS.$(bld_trg).$(bld_trg_arch)) \
+	$($(target)_$(srcsrc)$(source_type_prefix)_IFFLAGS) \
+	$($(target)_$(srcsrc)$(source_type_prefix)_IFFLAGS.$(bld_trg)) \
+	$($(target)_$(srcsrc)$(source_type_prefix)_IFFLAGS.$(bld_trg).$(bld_trg_arch))
 clean_files += \
 	$($(srcdst)_CLEAN) \
@@ -3363,4 +3364,8 @@
  	$($(target)_MODE.$(bld_trg)) \
  	$($(target)_MODE) )
+ local top_exec_mode := $(firstword \
+ 	$($(target)_EXEC_MODE.$(bld_trg).$(bld_trg_arch)) \
+ 	$($(target)_EXEC_MODE.$(bld_trg)) \
+ 	$($(target)_EXEC_MODE) )
  local top_uid := $(firstword \
  	$($(target)_UID.$(bld_trg).$(bld_trg_arch)) \
@@ -3402,4 +3407,6 @@
  	$($(target)_CLEAN.$(bld_type))
 
+ local source_type_prefix :=
+ local source_type_mode := $(firstword $(top_mode) a+r,u+w)
  $(foreach src,\
  	$($(target)_SOURCES) \
@@ -3409,4 +3416,15 @@
  	$($(target)_SOURCES.$(bld_trg_cpu)) \
  	$($(target)_SOURCES.$(bld_type)), \
+ 	$(evalval def_install_src))
+
+ local source_type_prefix := EXEC_
+ local source_type_mode := $(firstword $(top_exec_mode) a+xr,u+w)
+ $(foreach src,\
+ 	$($(target)_EXEC_SOURCES) \
+ 	$($(target)_EXEC_SOURCES.$(bld_trg)) \
+ 	$($(target)_EXEC_SOURCES.$(bld_trg).$(bld_trg_arch)) \
+ 	$($(target)_EXEC_SOURCES.$(bld_trg_arch)) \
+ 	$($(target)_EXEC_SOURCES.$(bld_trg_cpu)) \
+ 	$($(target)_EXEC_SOURCES.$(bld_type)), \
  	$(evalval def_install_src))
 
Index: /trunk/kBuild/header.kmk
===================================================================
--- /trunk/kBuild/header.kmk	(revision 2482)
+++ /trunk/kBuild/header.kmk	(revision 2483)
@@ -916,5 +916,5 @@
 	RCFLAGS RCDEFS \
 	LDFLAGS \
-	IDFLAGS IFDLAGS ISFLAGS \
+	IDFLAGS IFFLAGS EXEC_IFFLAGS ISFLAGS \
 	FETCHFLAGS UNPACKFLAGS PATCHFLAGS
 ## PROPS_ACCUMULATE_R_LNK
@@ -928,5 +928,5 @@
 	ASFLAGS ASDEFS \
 	RCFLAGS RCDEFS \
-	IDFLAGS IFDLAGS ISFLAGS
+	IDFLAGS IFFLAGS ISFLAGS
 
 ## PROPS_ACCUMULATE
@@ -936,5 +936,5 @@
 # will do the necessary inheritance from templates to targets.
 PROPS_ACCUMULATE_L := \
-	SDKS USES SOURCES SRC_HANDLERS INTERMEDIATES \
+	SDKS USES SOURCES EXEC_SOURCES SRC_HANDLERS INTERMEDIATES \
 	INCS CINCS CXXINCS OBJCINCS OBJCXXINCS ASINCS RCINCS \
 	LIBS LIBPATH \
@@ -993,8 +993,8 @@
 ## @name Properties valid on installs (INSTALLS)
 ## @{
-PROPS_INSTALLS_SINGLE        := TOOL TEMPLATE INST NOINST
+PROPS_INSTALLS_SINGLE        := TOOL TEMPLATE INST NOINST BLD_TYPE BLD_TRG BLD_TRG_ARCH BLD_TRG_CPU MODE UID GID
 PROPS_INSTALLS_DEFERRED      := INSTFUN INSTALLER
-PROPS_INSTALLS_ACCUMULATE_R  := DEPS ORDERDEPS GOALS INST_ONLY_GOALS STAGE_ONLY_GOALS
-PROPS_INSTALLS_ACCUMULATE_L  := SOURCES DIRS CLEAN
+PROPS_INSTALLS_ACCUMULATE_R  := DEPS ORDERDEPS GOALS INST_ONLY_GOALS STAGE_ONLY_GOALS IFFLAGS EXEC_IFFLAGS
+PROPS_INSTALLS_ACCUMULATE_L  := SOURCES EXEC_SOURCES DIRS CLEAN
 ## @}
 
