diff --git a/make/mavericks/tasks.rb b/make/mavericks/tasks.rb index b614f102..ca7b88ec 100644 --- a/make/mavericks/tasks.rb +++ b/make/mavericks/tasks.rb @@ -93,9 +93,11 @@ class MakeDarwin class << self def copy_ext xdir, libdir #puts "Build #{xdir}" - Dir.chdir(xdir) do - extcnf = (File.exists? "#{TGT_ARCH}-extconf.rb") ? "#{TGT_ARCH}-extconf.rb" : 'extconf.rb' - `ruby #{extcnf}; make` + Dir.chdir(xdir) do + extcnf = (File.exists? "#{TGT_ARCH}-extconf.rb") ? "#{TGT_ARCH}-extconf.rb" : 'extconf.rb' + unless system "ruby", "#{extcnf}" and system "make" + raise "Extension build failed" + end end copy_files "#{xdir}/*.bundle", libdir end diff --git a/make/win7/env.rb b/make/win7/env.rb index 9df669d9..ae63b48e 100644 --- a/make/win7/env.rb +++ b/make/win7/env.rb @@ -1,5 +1,5 @@ require "devkit" -cf =(ENV['ENV_CUSTOM'] || "win7_custom.yaml") +cf =(ENV['ENV_CUSTOM'] || "win7-custom.yaml") if File.exists? cf custmz = YAML.load_file(cf) ShoesDeps = custmz['Deps'] diff --git a/make/win7/tasks.rb b/make/win7/tasks.rb index e1e7f8d1..4615ba72 100644 --- a/make/win7/tasks.rb +++ b/make/win7/tasks.rb @@ -168,7 +168,8 @@ class MakeMinGW class << self def copy_ext xdir, libdir Dir.chdir(xdir) do - unless system "ruby", "extconf.rb" and system "make" + extcnf = (File.exists? "#{TGT_ARCH}-extconf.rb") ? "#{TGT_ARCH}-extconf.rb" : 'extconf.rb' + unless system "ruby", "#{extcnf}" and system "make" raise "Extension build failed" end end diff --git a/req/chipmunk/ext/chipmunk/win7-extconf.rb b/req/chipmunk/ext/chipmunk/win7-extconf.rb new file mode 100644 index 00000000..cd0907d5 --- /dev/null +++ b/req/chipmunk/ext/chipmunk/win7-extconf.rb @@ -0,0 +1,7 @@ + +require 'mkmf' + +CONFIG['CC']=ENV['CC'] if ENV['CC'] +$CFLAGS += ' -Wno-declaration-after-statement -std=gnu99 -ffast-math' + +create_makefile('chipmunk') diff --git a/req/ftsearch/ext/ftsearchrt/win7-extconf.rb b/req/ftsearch/ext/ftsearchrt/win7-extconf.rb new file mode 100644 index 00000000..46c89754 --- /dev/null +++ b/req/ftsearch/ext/ftsearchrt/win7-extconf.rb @@ -0,0 +1,8 @@ + +require 'mkmf' +# update the CONFIG with the correct values. RbConfig won't work +# for cross compiling. This is a bit heavy handed. +CONFIG['CC']=ENV['CC'] if ENV['CC'] +$CFLAGS += ' -Wno-declaration-after-statement -std=gnu99 -ffast-math' +$CFLAGS += ' -Wno-unused-variable -Wno-return-type' +create_makefile('ftsearchrt') diff --git a/req/hpricot/ext/fast_xs/win7-extconf.rb b/req/hpricot/ext/fast_xs/win7-extconf.rb new file mode 100644 index 00000000..04c4c704 --- /dev/null +++ b/req/hpricot/ext/fast_xs/win7-extconf.rb @@ -0,0 +1,11 @@ + +require 'mkmf' + +CONFIG['CC']=ENV['CC'] if ENV['CC'] +$CFLAGS += ' -Wno-declaration-after-statement -std=gnu99 -ffast-math' +$CFLAGS += ' -Wno-unused-function' + +#have_header('stdio.h') or exit +dir_config('fast_xs') +create_makefile('fast_xs') +#abort "in fast_xs CC = #{CONFIG['CC']}" diff --git a/req/hpricot/ext/hpricot_scan/win7-extconf.rb b/req/hpricot/ext/hpricot_scan/win7-extconf.rb new file mode 100644 index 00000000..444fc186 --- /dev/null +++ b/req/hpricot/ext/hpricot_scan/win7-extconf.rb @@ -0,0 +1,10 @@ + +require 'mkmf' + +CONFIG['CC']=ENV['CC'] if ENV['CC'] +$CFLAGS += ' -Wno-declaration-after-statement -std=gnu99 -ffast-math' +$CFLAGS += ' -Wno-unused-function -Wno-uninitialized -Wno-extra' + +dir_config("hpricot_scan") +#have_library("c", "main") +create_makefile("hpricot_scan") diff --git a/req/sqlite3/ext/sqlite3/win7-extconf.rb b/req/sqlite3/ext/sqlite3/win7-extconf.rb new file mode 100644 index 00000000..cdda3959 --- /dev/null +++ b/req/sqlite3/ext/sqlite3/win7-extconf.rb @@ -0,0 +1,58 @@ +RbConfig::CONFIG['CC'] = ENV['CC'] if ENV['CC'] + + +puts "Loading sqlite3 mkmf" +require 'mkmf' + +CONFIG['CC']=ENV['CC'] if ENV['CC'] +$CFLAGS += ' -Wno-declaration-after-statement -std=gnu99 -ffast-math ' + + +# :stopdoc: +#RbConfig::CONFIG['CC'] = ENV['CC'] if ENV['CC'] # for compiling tests. +#RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] + +# --with-sqlite3-{dir,include,lib} + +dir_config("sqlite3","#{ENV['ShoesDeps']}/include", ["#{ENV['ShoesDeps']}/bin"]) + + +if RbConfig::CONFIG["host_os"] =~ /mswin/ + $CFLAGS << ' -W3' +end + +def asplode missing + if RUBY_PLATFORM =~ /mingw|mswin/ + abort "#{missing} is missing. Install SQLite3 from " + + "http://www.sqlite.org/ first." + else + abort <<-error +#{missing} is missing. Try 'port install sqlite3 +universal', +'yum install sqlite-devel' or 'apt-get install libsqlite3-dev' +and check your shared library search path (the +location where your sqlite3 shared library is located). + error + end +end + +asplode('sqlite3.h') unless find_header 'sqlite3.h' +asplode('sqlite3') unless find_library 'sqlite3', 'sqlite3_libversion_number' + +# Functions defined in 1.9 but not 1.8 +have_func('rb_proc_arity') + +# Functions defined in 2.1 but not 2.0 +have_func('rb_integer_pack') + +# These functions may not be defined +have_func('sqlite3_initialize') +have_func('sqlite3_backup_init') +have_func('sqlite3_column_database_name') +have_func('sqlite3_enable_load_extension') +have_func('sqlite3_load_extension') +have_func('sqlite3_open_v2') +have_func('sqlite3_prepare_v2') +have_type('sqlite3_int64', 'sqlite3.h') +have_type('sqlite3_uint64', 'sqlite3.h') + +create_makefile('sqlite3/sqlite3_native')