+# If the directory contains the per profile include file, generate list file.
+PROFILE_sources := $(firstword $(if $(PROFILE_PLATFORM),$(wildcard $(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY).sources)) $(wildcard $(PROFILE)_$(LIBRARY).sources) $(wildcard $(LIBRARY).sources))
+PROFILE_excludes = $(firstword $(if $(PROFILE_PLATFORM),$(wildcard $(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY).exclude.sources)) $(wildcard $(PROFILE)_$(LIBRARY).exclude.sources))
+
+# Note, gensources.sh can create a $(sourcefile).makefrag if it sees any '#include's
+# We don't include it in the dependencies since it isn't always created
+sourcefile = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).sources
+$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(topdir)/build/gensources.sh $(depsdir)/.stamp
+ $(SHELL) $(topdir)/build/gensources.sh $@ '$(PROFILE_sources)' '$(PROFILE_excludes)'
+
+library_CLEAN_FILES += $(sourcefile)
+
+response = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).response
+$(response): $(sourcefile) $(topdir)/build/library.make $(depsdir)/.stamp
+ $(PLATFORM_CHANGE_SEPARATOR_CMD) <$(sourcefile) >$@
+
+library_CLEAN_FILES += $(response)
+
+makefrag = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).makefrag
+$(makefrag): $(sourcefile) $(topdir)/build/library.make $(depsdir)/.stamp
+# @echo Creating $@ ...
+ @sed 's,^,$(build_lib): ,' $< >$@
+ @if test ! -f $(sourcefile).makefrag; then :; else \
+ cat $(sourcefile).makefrag >> $@ ; \
+ echo '$@: $(sourcefile).makefrag' >> $@; \
+ echo '$(sourcefile).makefrag:' >> $@; fi
+
+library_CLEAN_FILES += $(makefrag)