summaryrefslogtreecommitdiff
path: root/ruby_1_9_3/doc/rake/example
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_9_3/doc/rake/example')
-rw-r--r--ruby_1_9_3/doc/rake/example/Rakefile138
-rw-r--r--ruby_1_9_3/doc/rake/example/Rakefile235
-rw-r--r--ruby_1_9_3/doc/rake/example/a.c6
-rw-r--r--ruby_1_9_3/doc/rake/example/b.c6
-rw-r--r--ruby_1_9_3/doc/rake/example/main.c11
5 files changed, 96 insertions, 0 deletions
diff --git a/ruby_1_9_3/doc/rake/example/Rakefile1 b/ruby_1_9_3/doc/rake/example/Rakefile1
new file mode 100644
index 0000000000..39f8bcceb0
--- /dev/null
+++ b/ruby_1_9_3/doc/rake/example/Rakefile1
@@ -0,0 +1,38 @@
+# Example Rakefile -*- ruby -*-
+
+task :default => [:main]
+
+file "a.o" => ["a.c"] do |t|
+ src = t.name.sub(/\.o$/, '.c')
+ sh "gcc #{src} -c -o #{t.name}"
+end
+
+file "b.o" => ["b.c"] do |t|
+ src = t.name.sub(/\.o$/, '.c')
+ sh "gcc #{src} -c -o #{t.name}"
+end
+
+file "main.o" => ["main.c"] do |t|
+ src = t.name.sub(/\.o$/, '.c')
+ sh "gcc #{src} -c -o #{t.name}"
+end
+
+OBJFILES = ["a.o", "b.o", "main.o"]
+task :obj => OBJFILES
+
+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
diff --git a/ruby_1_9_3/doc/rake/example/Rakefile2 b/ruby_1_9_3/doc/rake/example/Rakefile2
new file mode 100644
index 0000000000..35310eceb5
--- /dev/null
+++ b/ruby_1_9_3/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
diff --git a/ruby_1_9_3/doc/rake/example/a.c b/ruby_1_9_3/doc/rake/example/a.c
new file mode 100644
index 0000000000..620e6f8007
--- /dev/null
+++ b/ruby_1_9_3/doc/rake/example/a.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+void a()
+{
+ printf ("In function a\n");
+}
diff --git a/ruby_1_9_3/doc/rake/example/b.c b/ruby_1_9_3/doc/rake/example/b.c
new file mode 100644
index 0000000000..9b24aa1273
--- /dev/null
+++ b/ruby_1_9_3/doc/rake/example/b.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+void b()
+{
+ printf ("In function b\n");
+}
diff --git a/ruby_1_9_3/doc/rake/example/main.c b/ruby_1_9_3/doc/rake/example/main.c
new file mode 100644
index 0000000000..a04558a251
--- /dev/null
+++ b/ruby_1_9_3/doc/rake/example/main.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+extern void a();
+extern void b();
+
+int main ()
+{
+ a();
+ b();
+ return 0;
+}