-# $Id: library.rb 318 2005-04-26 11:11:48Z tilman $
+# $Id: library.rb 321 2005-04-27 14:01:11Z tilman $
require "rbconfig"
class Library
- PREFIX = ENV["ECORE_PREFIX"] || "/usr/local/"
-
- def initialize(name)
+ def initialize(name, prefix, dir, lib = name)
@name = name
+ @prefix = prefix
+ @dir = dir
+ @lib = lib
end
def ldflags
- "#{ENV["LDFLAGS"]} -L #{PREFIX}/lib -l#{@name}"
+ s = "#{ENV["LDFLAGS"]} -L #{@prefix}/lib -L " +
+ Config::CONFIG["libdir"] + " " +
+ Config::CONFIG["LIBRUBYARG_SHARED"] +
+ " -shared -Wl"
+ s << " -l#{@lib}" unless @lib.nil?
+ s
end
def cflags
- "#{ENV["CFLAGS"]} -I #{PREFIX}/include " +
+ "#{ENV["CFLAGS"]} -I #{@prefix}/include " +
"-I #{Config::CONFIG['archdir']} " +
- "-I #{Config::CONFIG['sitearchdir']}"
+ "-I #{Config::CONFIG['sitearchdir']} -fPIC"
end
def so
- "src/#{@name}/#{@name}.so"
+ "#{@dir}/#{@name}.so"
end
def objects
- Dir["src/#{@name}/*.c"].map { |f| f.sub(/\.[^.]+$/, ".o") }
+ Dir["#{@dir}/*.c"].map { |f| f.sub(/\.[^.]+$/, ".o") }
end
end