1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/fiddle/win32/libffi-config.rb
naruse c4fdfabcc8 handle ext/ as r53141
g -L frozen_string_literal ext/**/*.rb|xargs ruby -Ka -e'ARGV.each{|fn|puts
fn;open(fn,"r+"){|f|s=f.read.sub(/\A(#!.*\n)?(#.*coding.*\n)?/,"\\&#
frozen_string_literal: false\n");f.rewind;f.write s}}'

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:31:54 +00:00

48 lines
1.2 KiB
Ruby
Executable file

#!/usr/bin/ruby
# frozen_string_literal: false
require 'fileutils'
basedir = File.dirname(__FILE__)
conf = {}
enable = {}
until ARGV.empty?
arg = ARGV.shift
case arg
when '-C'
# ignore
when /\A--srcdir=(.*)/
conf['SRCDIR'] = srcdir = $1
when /\A(CC|CFLAGS|CXX|CXXFLAGS|LD|LDFLAGS)=(.*)/
conf[$1] = $2
when /\A--host=(.*)/
host = $1
when /\A--enable-([^=]+)(?:=(.*))?/
enable[$1] = $2 || true
when /\A--disable-([^=]+)/
enable[$1] = false
end
end
IO.foreach("#{srcdir}/configure.ac") do |line|
if /^AC_INIT\((.*)\)/ =~ line
version = $1.split(/,\s*/)[1]
version.gsub!(/\A\[|\]\z/, '')
conf['VERSION'] = version
break
end
end
builddir = srcdir == "." ? enable['builddir'] : "."
conf['TARGET'] = /^x64/ =~ host ? "X86_WIN64" : "X86_WIN32"
FileUtils.mkdir_p([builddir, "#{builddir}/include", "#{builddir}/src/x86"])
FileUtils.cp("#{basedir}/fficonfig.h", ".", preserve: true)
hdr = IO.binread("#{srcdir}/include/ffi.h.in")
hdr.gsub!(/@(\w+)@/) {conf[$1] || $&}
hdr.gsub!(/^(#if\s+)@\w+@/, '\10')
IO.binwrite("#{builddir}/include/ffi.h", hdr)
mk = IO.binread("#{basedir}/libffi.mk.tmpl")
mk.gsub!(/@(\w+)@/) {conf[$1] || $&}
IO.binwrite("Makefile", mk)