Reworked the build system.
[ruby-esmart.git] / library.rb
diff --git a/library.rb b/library.rb
new file mode 100644 (file)
index 0000000..e9bb925
--- /dev/null
@@ -0,0 +1,35 @@
+# $Id: library.rb 326 2005-04-27 14:25:18Z tilman $
+
+require "rbconfig"
+
+class Library
+       def initialize(name, prefix, dir, lib = name)
+               @name = name
+               @prefix = prefix
+               @dir = dir
+               @lib = lib
+       end
+
+       def ldflags
+               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 " +
+               "-I #{Config::CONFIG['archdir']} " +
+               "-I #{Config::CONFIG['sitearchdir']} -fPIC"
+       end
+
+       def so
+               "#{@dir}/#{@name}.so"
+       end
+
+       def objects
+               Dir["#{@dir}/*.c"].map { |f| f.sub(/\.[^.]+$/, ".o") }
+       end
+end