From ffdb5ae39afc2c1dec81f8a606a2cd925d10036b Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Tue, 27 Jun 2006 15:41:00 +0000 Subject: [PATCH 1/1] Include pass is now a template in a separate snippet. darcs-hash:20060627154127-f2ef6-c35e7bbe9f9d3f8aa733176eef2133ff7c073b22.gz --- rulesdef.py | 6 +++--- snippets/include | 21 +++++++++++++++++++++ snippets/linux | 21 ++------------------- snippets/rtems | 10 +--------- snippets/sysless | 14 +------------- 5 files changed, 28 insertions(+), 44 deletions(-) create mode 100644 snippets/include diff --git a/rulesdef.py b/rulesdef.py index c42a9a1..66d7be8 100755 --- a/rulesdef.py +++ b/rulesdef.py @@ -1,7 +1,7 @@ #!/usr/bin/env python rules = { - 'sysless': [ 'base', 'gcc', 'config_h', 'sysless', 'localeval' ], - 'linux': [ 'linux-setup', 'base', 'config_h', 'linux' ], - 'rtems': [ 'rtems-setup', 'base', 'config_h', 'rtems' ], + 'sysless': [ 'base', 'gcc', 'config_h', 'include', 'sysless', 'localeval' ], + 'linux': [ 'linux-setup', 'base', 'config_h', 'include', 'linux' ], + 'rtems': [ 'rtems-setup', 'base', 'config_h', 'include', 'rtems' ], } diff --git a/snippets/include b/snippets/include new file mode 100644 index 0000000..4f4a854 --- /dev/null +++ b/snippets/include @@ -0,0 +1,21 @@ + +# TODO: Check modification date of changed header files. If it is +# newer that in source dir, show a warning. + +# TODO: Optionaly link the files instead of copying + +# Syntax: $(call include-pass-template,,) +define include-pass-template + @$(foreach f, $($(2)_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(1)/$(notdir $(f)) \ + || cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(1)/$(notdir $(f)) || exit 1 ; ) + @$(foreach f, $(nobase_$(2)_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(1)/$(f) \ + || ( mkdir -p $(1)/$(dir $(f)) && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(1)/$(f) ) || exit 1 ; ) + @$(foreach f, $(renamed_$(2)_HEADERS), \ + srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \ + cmp --quiet $(SOURCES_DIR)/$${srcfname} $(1)/$${destfname} \ + || ( mkdir -p `dirname $(1)/$${destfname}` && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$${srcfname} $(1)/$${destfname} ) || exit 1 ; ) +endef + +# Local Variables: +# mode:makefile +# End: diff --git a/snippets/linux b/snippets/linux index 6f209a1..5f9a695 100644 --- a/snippets/linux +++ b/snippets/linux @@ -602,25 +602,8 @@ check-dir: install-local: # TODO include-pass-local: -# @$(call mkdir_def,$(USER_INCLUDE_DIR)) - @$(foreach f, $(include_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(notdir $(f)) \ - || cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(notdir $(f)) || exit 1 ; ) - @$(foreach f, $(nobase_include_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(f) \ - || ( mkdir -p $(USER_INCLUDE_DIR)/$(dir $(f)) && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(f) ) || exit 1 ; ) - @$(foreach f, $(renamed_include_HEADERS), \ - srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \ - cmp --quiet $(SOURCES_DIR)/$${srcfname} $(USER_INCLUDE_DIR)/$${destfname} \ - || ( mkdir -p `dirname $(USER_INCLUDE_DIR)/$${destfname}` && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$${srcfname} $(USER_INCLUDE_DIR)/$${destfname} ) || exit 1 ; ) -# Kernel and RT-Linux stuff -# @$(call mkdir_def,$(KERN_INCLUDE_DIR)) - @$(foreach f, $(kernel_HEADERS) $(rtlinux_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(KERN_INCLUDE_DIR)/$(notdir $(f)) \ - || cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(KERN_INCLUDE_DIR)/$(notdir $(f)) || exit 1 ; ) - @$(foreach f, $(nobase_kernel_HEADERS) $(nobase_rtlinux_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(KERN_INCLUDE_DIR)/$(f) \ - || ( mkdir -p $(KERN_INCLUDE_DIR)/$(dir $(f)) && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(KERN_INCLUDE_DIR)/$(f) ) || exit 1 ; ) - @$(foreach f, $(renamed_kernel_HEADERS) $(renamed_rtlinux_HEADERS), \ - srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \ - cmp --quiet $(SOURCES_DIR)/$${srcfname} $(KERN_INCLUDE_DIR)/$${destfname} \ - || ( mkdir -p `dirname $(KERN_INCLUDE_DIR)/$${destfname}` && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$${srcfname} $(KERN_INCLUDE_DIR)/$${destfname} ) || exit 1 ; ) + $(call include-pass-template,$(USER_INCLUDE_DIR),include) + $(call include-pass-template,$(KERN_INCLUDE_DIR),kernel) ifdef USER_RULE_TEMPLATES diff --git a/snippets/rtems b/snippets/rtems index 6df7077..8e3b340 100644 --- a/snippets/rtems +++ b/snippets/rtems @@ -286,15 +286,7 @@ export CHECK_DIR_DONE include-pass-local: - @$(call mkdir_def,$(USER_INCLUDE_DIR)) - @$(foreach f, $(include_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(notdir $(f)) \ - || cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(notdir $(f)) || exit 1 ; ) - @$(foreach f, $(nobase_include_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(f) \ - || ( mkdir -p $(USER_INCLUDE_DIR)/$(dir $(f)) && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(f) ) || exit 1 ; ) - @$(foreach f, $(renamed_include_HEADERS), \ - srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \ - cmp --quiet $(SOURCES_DIR)/$${srcfname} $(USER_INCLUDE_DIR)/$${destfname} \ - || ( mkdir -p `dirname $(USER_INCLUDE_DIR)/$${destfname}` && cp $(CPHEADER_FLAGS) $(SOURCES_DIR)/$${srcfname} $(USER_INCLUDE_DIR)/$${destfname} ) || exit 1 ; ) + $(call include-pass-template,$(USER_INCLUDE_DIR),include) ifdef USER_RULE_TEMPLATES diff --git a/snippets/sysless b/snippets/sysless index 3c592c3..81b1d39 100644 --- a/snippets/sysless +++ b/snippets/sysless @@ -224,20 +224,8 @@ dep-local: install-local: -# TODO: Check modification date of changed header files. If it is -# newer that in source dir, show a warning. include-pass-local: -# @$(call mkdir_def,$(USER_INCLUDE_DIR)) - @$(foreach f, $(include_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(notdir $(f)) \ - || cp $(CP_FLAGS) $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(notdir $(f)) || exit 1 ; ) - @$(foreach f, $(nobase_include_HEADERS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(f) \ - || ( mkdir -p $(USER_INCLUDE_DIR)/$(dir $(f)) && cp $(CP_FLAGS) $(SOURCES_DIR)/$(f) $(USER_INCLUDE_DIR)/$(f) ) || exit 1 ; ) - @$(foreach f, $(renamed_include_HEADERS), \ - srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \ - cmp --quiet $(SOURCES_DIR)/$${srcfname} $(USER_INCLUDE_DIR)/$${destfname} \ - || ( mkdir -p `dirname $(USER_INCLUDE_DIR)/$${destfname}` && cp $(CP_FLAGS) $(SOURCES_DIR)/$${srcfname} $(USER_INCLUDE_DIR)/$${destfname} ) || exit 1 ; ) - @$(foreach f, $(lib_LDSCRIPTS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_LIB_DIR)/$(notdir $(f)) \ - || cp $(CP_FLAGS) $(SOURCES_DIR)/$(f) $(USER_LIB_DIR)/$(notdir $(f)) || exit 1 ; ) + $(call include-pass-template,$(USER_INCLUDE_DIR),include) .PHONY: clean-custom -- 2.39.2