class Library < Target def initialize(name) super name @build_dll = false end def build_dll(build_dll_as_well = true) @build_dll = build_dll_as_well self end def create_specific file "#{@target}.a" => @objects do |t| FileUtils.rm_f t.name runq "ar", t.name, "#{c(:AR)} rc #{t.name} #{@objects.join(" ")}" runq "ranlib", t.name, "#{c(:RANLIB)} #{t.name}" end return self unless @build_dll file "#{@target}.dll" => @objects do |t| runq "link", t.name, <<-COMMAND #{c(:CXX)} #{$flags[:ldflags]} #{$system_libdirs} -shared -Wl,--export-all -Wl,--out-implib=#{t.name}.a -o #{t.name} #{@objects.join(" ")} #{@libraries.join(" ")} COMMAND end self end end