Skip to content

Commit

Permalink
add extconf.rb for win7 build. #70.
Browse files Browse the repository at this point in the history
All tight Shoes can be built using just the special extconfs
except for the 10.6 on 10.6 (I don't care about that one since building 10.6 from 10.9 works well enough)
  • Loading branch information
Cecil committed Apr 3, 2015
1 parent d9a4578 commit b6bd3ba
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 5 deletions.
8 changes: 5 additions & 3 deletions make/mavericks/tasks.rb
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion 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']
Expand Down
3 changes: 2 additions & 1 deletion make/win7/tasks.rb
Expand Up @@ -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
Expand Down
7 changes: 7 additions & 0 deletions 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')
8 changes: 8 additions & 0 deletions 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')
11 changes: 11 additions & 0 deletions 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']}"
10 changes: 10 additions & 0 deletions 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")
58 changes: 58 additions & 0 deletions 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')

0 comments on commit b6bd3ba

Please sign in to comment.