[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Change clean rules to properly remove files
From: |
Yves Blusseau |
Subject: |
[PATCH] Change clean rules to properly remove files |
Date: |
Wed, 02 Sep 2009 18:48:36 +0200 |
User-agent: |
Thunderbird 2.0.0.23 (Windows/20090812) |
ChangeLog:
2009-09-02 Yves Blusseau <address@hidden>
Change clean rules to properly remove files
* genmk.rb: add new clean rules
* Makefile.in (clean): add the new targets
(mostlyclean): likewise
---
Makefile.in | 4 ++--
genmk.rb | 55 +++++++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 49 insertions(+), 10 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 8e2cdc6..3af1266 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -325,10 +325,10 @@ uninstall:
rm -f $(DESTDIR)$(libdir)/grub/$$dest; \
done
-clean:
+clean: $(CLEAN_IMAGE_TARGETS) $(CLEAN_MODULE_TARGETS) $(CLEAN_UTILITY_TARGETS)
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-mostlyclean: clean
+mostlyclean: clean $(MOSTLYCLEAN_IMAGE_TARGETS) $(MOSTLYCLEAN_MODULE_TARGETS)
$(MOSTLYCLEAN_UTILITY_TARGETS)
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
distclean: mostlyclean
diff --git a/genmk.rb b/genmk.rb
index 4aedb25..50bf88f 100644
--- a/genmk.rb
+++ b/genmk.rb
@@ -39,11 +39,13 @@ class Image
def initialize(dir, name)
@dir = dir
@name = name
+ @rule_count = 0
end
attr_reader :dir, :name
def rule(sources)
prefix = @name.to_var
+ @rule_count += 1
exe = @name.suffix('exec')
objs = sources.collect do |src|
raise "unknown source file `#{src}'" if /\.[cS]$/ !~ src
@@ -53,8 +55,16 @@ class Image
deps = objs.collect {|obj| obj.suffix('d')}
deps_str = deps.join(' ')
- "CLEANFILES += address@hidden #{exe} #{objs_str}
-MOSTLYCLEANFILES += #{deps_str}
+"
address@hidden@rule_count}:
+ rm -f address@hidden #{exe} #{objs_str}
+
+CLEAN_IMAGE_TARGETS += address@hidden@rule_count}
+
address@hidden@rule_count}:
+ rm -f #{deps_str}
+
+MOSTLYCLEAN_IMAGE_TARGETS += address@hidden@rule_count}
ifneq ($(TARGET_APPLE_CC),1)
address@hidden: #{exe}
@@ -94,11 +104,13 @@ class PModule
def initialize(dir, name)
@dir = dir
@name = name
+ @rule_count = 0
end
attr_reader :dir, :name
def rule(sources)
prefix = @name.to_var
+ @rule_count += 1
objs = sources.collect do |src|
raise "unknown source file `#{src}'" if /\.[cS]$/ !~ src
prefix + '-' + src.to_obj
@@ -114,12 +126,23 @@ class PModule
mod_name = File.basename(@name, '.mod')
symbolic_name = mod_name.sub(/\.[^\.]*$/, '')
- "CLEANFILES += address@hidden #{mod_obj} #{mod_src} #{pre_obj} #{objs_str}
#{undsym}
+"
address@hidden@rule_count}:
+ rm -f address@hidden #{mod_obj} #{mod_src} #{pre_obj} #{objs_str}
#{undsym}
+
+CLEAN_MODULE_TARGETS += address@hidden@rule_count}
+
ifneq ($(#{prefix}_EXPORTS),no)
-CLEANFILES += #{defsym}
address@hidden@rule_count}:
+ rm -f #{defsym}
+
+CLEAN_MODULE_TARGETS += address@hidden@rule_count}
DEFSYMFILES += #{defsym}
endif
-MOSTLYCLEANFILES += #{deps_str}
address@hidden@rule_count}:
+ rm -f #{deps_str}
+
+MOSTLYCLEAN_MODULE_TARGETS += address@hidden@rule_count}
UNDSYMFILES += #{undsym}
ifneq ($(TARGET_APPLE_CC),1)
@@ -164,6 +187,7 @@ endif
" + objs.collect_with_index do |obj, i|
src = sources[i]
fake_obj = File.basename(src).suffix('o')
+ extra_target = obj.sub(/\.[^\.]*$/, '') + '-extra'
command = 'cmd-' + obj.suffix('lst')
fs = 'fs-' + obj.suffix('lst')
partmap = 'partmap-' + obj.suffix('lst')
@@ -178,7 +202,11 @@ endif
$(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS)
#{extra_flags} $(TARGET_#{flag}) $(#{prefix}_#{flag}) -MD -c -o $@ $<
-include #{dep}
-CLEANFILES += #{command} #{fs} #{partmap} #{handler} #{parttool}
address@hidden:
+ rm -f #{command} #{fs} #{partmap} #{handler} #{parttool}
+
+CLEAN_MODULE_TARGETS += address@hidden
+
COMMANDFILES += #{command}
FSFILES += #{fs}
PARTTOOLFILES += #{parttool}
@@ -219,6 +247,7 @@ class Utility
def initialize(dir, name)
@dir = dir
@name = name
+ @rule_count = 0
end
def print_tail()
prefix = @name.to_var
@@ -231,6 +260,7 @@ class Utility
def rule(sources)
prefix = @name.to_var
+ @rule_count += 1
objs = sources.collect do |src|
raise "unknown source file `#{src}'" if /\.[cS]$/ !~ src
prefix + '-' + src.to_obj
@@ -239,8 +269,17 @@ class Utility
deps = objs.collect {|obj| obj.suffix('d')}
deps_str = deps.join(' ');
- "CLEANFILES += address@hidden(EXEEXT) #{objs_str}
-MOSTLYCLEANFILES += #{deps_str}
+ "
address@hidden@rule_count}:
+ rm -f address@hidden(EXEEXT) #{objs_str}
+
+CLEAN_UTILITY_TARGETS += address@hidden@rule_count}
+
address@hidden@rule_count}:
+ rm -f #{deps_str}
+
+MOSTLYCLEAN_UTILITY_TARGETS += address@hidden@rule_count}
+
#{prefix}_OBJECTS += #{objs_str}
" + objs.collect_with_index do |obj, i|
smime.p7s
Description: S/MIME Cryptographic Signature
- [PATCH] Change clean rules to properly remove files,
Yves Blusseau <=