# 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
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Rakefile1 | File | 670 B | 0644 |
|
| Rakefile2 | File | 599 B | 0644 |
|
| a.c | File | 65 B | 0644 |
|
| b.c | File | 65 B | 0644 |
|
| main.c | File | 103 B | 0644 |
|