make-snapshot: make revision.h by make

* tool/make-snapshot (package): keep VCS management files until
  prerequisites build, so that revision.h can be made by make.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-01-20 23:57:38 +00:00
Родитель b448b79217
Коммит df0dcd4815
2 изменённых файлов: 17 добавлений и 6 удалений

Просмотреть файл

@ -183,7 +183,7 @@ def package(vcs, rev, destdir, tmp = nil)
v = "ruby"
puts "Exporting #{rev}@#{revision}"
exported = tmp ? File.join(tmp, v) : v
unless vcs.export(revision, url, exported) {|line| print line}
unless vcs.export(revision, url, exported, true) {|line| print line}
warn("Export failed")
return
end
@ -209,7 +209,6 @@ def package(vcs, rev, destdir, tmp = nil)
v = v[0]
end
open("#{v}/revision.h", "wb") {|f| f.puts "#define RUBY_REVISION #{revision}"}
open("#{v}/.revision.time", "wb") {}
version ||= (versionhdr = IO.read("#{v}/version.h"))[RUBY_VERSION_PATTERN, 1]
version or return
if patchlevel
@ -310,6 +309,7 @@ def package(vcs, rev, destdir, tmp = nil)
else
system(*%W"#{YACC} -o parse.c parse.y")
end
vcs.after_export(".") if exported
FileUtils.rm_rf(clean)
unless $?.success?
puts " failed"

Просмотреть файл

@ -128,6 +128,9 @@ class VCS
else
'.'
end
def after_export(dir)
end
end
class SVN < self
@ -212,7 +215,7 @@ class VCS
end
end
def export(revision, url, dir)
def export(revision, url, dir, keep_temp = false)
if @srcdir and (rootdir = wcroot)
srcdir = File.realpath(@srcdir)
rootdir << "/"
@ -222,7 +225,7 @@ class VCS
FileUtils.mkdir_p(svndir = dir+"/.svn")
FileUtils.ln_s(Dir.glob(rootdir+"/.svn/*"), svndir)
system("svn", "-q", "revert", "-R", subdir || ".", :chdir => dir) or return false
FileUtils.rm_rf(svndir)
FileUtils.rm_rf(svndir) unless keep_temp
if subdir
tmpdir = Dir.mktmpdir("tmp-co.", "#{dir}/#{subdir}")
File.rename(tmpdir, tmpdir = "#{dir}/#{File.basename(tmpdir)}")
@ -241,6 +244,10 @@ class VCS
end
$?.success?
end
def after_export(dir)
FileUtils.rm_rf(dir+"/.svn")
end
end
class GIT < self
@ -308,10 +315,14 @@ class VCS
end
end
def export(revision, url, dir)
def export(revision, url, dir, keep_temp = false)
ret = system("git", "clone", "-s", (@srcdir || '.'), "-b", url, dir)
FileUtils.rm_rf("#{dir}/.git") if ret
FileUtils.rm_rf("#{dir}/.git") if ret and !keep_temp
ret
end
def after_export(dir)
FileUtils.rm_rf("#{dir}/.git")
end
end
end