summaryrefslogtreecommitdiff
path: root/doc/rake/example/Rakefile2
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rake/example/Rakefile2')
-rw-r--r--doc/rake/example/Rakefile235
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/rake/example/Rakefile2 b/doc/rake/example/Rakefile2
new file mode 100644
index 0000000000..35310eceb5
--- /dev/null
+++ b/doc/rake/example/Rakefile2
@@ -0,0 +1,35 @@
+# Example Rakefile -*- ruby -*-
+# Using the power of Ruby
+
+task :default => [:main]
+
+def ext(fn, newext)
+ fn.sub(/\.[^.]+$/, newext)
+end
+
+SRCFILES = Dir['*.c']
+OBJFILES = SRCFILES.collect { |fn| ext(fn,".o") }
+
+OBJFILES.each do |objfile|
+ srcfile = ext(objfile, ".c")
+ file objfile => [srcfile] do |t|
+ sh "gcc #{srcfile} -c -o #{t.name}"
+ end
+end
+
+file "main" => OBJFILES do |t|
+ sh "gcc -o #{t.name} main.o a.o b.o"
+end
+
+task :clean do
+ rm_f FileList['*.o']
+ Dir['*~'].each { |fn| rm_f fn }
+end
+
+task :clobber => [:clean] do
+ rm_f "main"
+end
+
+task :run => ["main"] do
+ sh "./main"
+end