Sha256: 80adc87cea48c1cfc0d18dc7baaaf7b8b360ec3f87f3940928ff56e9e535c436
Contents?: true
Size: 1.29 KB
Versions: 5
Compression:
Stored size: 1.29 KB
Contents
# We can't use Ruby's standard build procedures # on Windows because the Ruby executable is # built with VC++ while here we want to build # with MingW. So just roll our own... require 'rake/clean' require 'rbconfig' RUBY_INCLUDE_DIR = Config::CONFIG["archdir"] RUBY_BIN_DIR = Config::CONFIG["bindir"] RUBY_LIB_DIR = Config::CONFIG["libdir"] RUBY_SHARED_LIB = Config::CONFIG["LIBRUBY"] RUBY_SHARED_DLL = RUBY_SHARED_LIB.gsub(/^lib/, '').gsub(/lib$/, 'dll').gsub(/\.a$/, '') EXTENSION_NAME = "libxml_ruby.#{Config::CONFIG["DLEXT"]}" # MingW insists the import library is .dll.a EXTENSION_LIB_NAME = "libxml_ruby.dll.a" CLEAN.include('*.o') CLOBBER.include(EXTENSION_NAME) CLOBBER.include(EXTENSION_LIB_NAME) task :default => "libxml" SRC = FileList['../libxml/*.c'] OBJ = SRC.collect do |file_name| File.basename(file_name).ext('o') end SRC.each do |srcfile| objfile = File.basename(srcfile).ext('o') file objfile => srcfile do command = "gcc -c -O2 -Wall -o #{objfile} -I/usr/local/include/libxml2 #{srcfile} -I#{RUBY_INCLUDE_DIR}" sh "sh -c '#{command}'" end end file "libxml" => OBJ do command = "gcc -shared -Wl,--enable-auto-import -o #{EXTENSION_NAME} -Wl,--out-implib,#{EXTENSION_LIB_NAME} -L/usr/local/lib #{OBJ} -lxml2 #{RUBY_BIN_DIR}/#{RUBY_SHARED_DLL}" sh "sh -c '#{command}'" end
Version data entries
5 entries across 5 versions & 2 rubygems