9 LIBNAME = "libSecurityID.so"
11 CSRCDIR = "#{SRCDIR}/c"
13 VALIDATIONS = ["cusip", "isin", "sedol"]
14 VAL_OBJECTS = VALIDATIONS.collect {|v| File.join(OBJDIR, "val_#{v}.o") }
15 ALL_PRODUCTS = VAL_OBJECTS + [File.join(LIBDIR, LIBNAME)]
17 def compile(output, *sources)
18 opts = sources.pop if sources.last.is_a?(Hash)
20 sh "cc -c -o #{File.join(opts[:output_dir] || OBJDIR, output)} #{sources.join(' ')}"
23 def link(output, *sources)
24 opts = sources.pop if sources.last.is_a?(Hash)
26 sh "cc -o #{File.join(opts[:output_dir] || LIBDIR, output)} #{sources.join(' ')}"
29 VALIDATIONS.each do |validation|
30 src = File.join(CSRCDIR, "val_#{validation}.c")
31 pathname = Pathname.new(src)
32 out = pathname.basename.to_s.sub(/\.c$/, '.o')
33 file "#{OBJDIR}/val_#{validation}.o" => [src] do
38 file "clib" => VAL_OBJECTS do
39 link(LIBNAME, *VAL_OBJECTS)
46 task :default => "clib"