autobuild 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/autobuild/import/archive.rb +5 -4
- data/lib/autobuild/packages/autotools.rb +42 -12
- data/lib/autobuild/packages/gnumake.rb +9 -1
- data/lib/autobuild/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b7ade4cfb6600c6240d0e6cbb23ed19340e7c3a43b7811aab49236e1d81b1f0
|
4
|
+
data.tar.gz: 72fade1f3c6de16fd4988c9d132452aed5a7684f4e1978872ea3e18933c8c0ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b63871e342d7a5b7bdf7bb0ab28c1aa6bb4e808f95a08ada2c9d56ba74c2ce95207883348b8e5727bfac65932d6c8f5cd2473f62bf2445ed6b4110d95331a17
|
7
|
+
data.tar.gz: 1a53537790164887e430742c5314e1f22685f2b50102874b33556f2153fa03e4d69f68cf95d89602c799bda420c878985c2f5600122077b84917221f8408ac89
|
@@ -395,7 +395,7 @@ def relocate(url, options = Hash.new)
|
|
395
395
|
def update(package, options = Hash.new) # :nodoc:
|
396
396
|
if options[:only_local]
|
397
397
|
package.warn "%s: the archive importer does not support local updates, skipping"
|
398
|
-
return
|
398
|
+
return false
|
399
399
|
end
|
400
400
|
needs_update = update_cache(package)
|
401
401
|
|
@@ -404,9 +404,9 @@ def update(package, options = Hash.new) # :nodoc:
|
|
404
404
|
end
|
405
405
|
|
406
406
|
if needs_update || archive_changed?(package)
|
407
|
-
checkout(package, allow_interactive: options[:allow_interactive])
|
408
|
-
true
|
407
|
+
return checkout(package, allow_interactive: options[:allow_interactive])
|
409
408
|
end
|
409
|
+
false
|
410
410
|
end
|
411
411
|
|
412
412
|
def checkout_digest_stamp(package)
|
@@ -449,7 +449,7 @@ def checkout(package, options = Hash.new) # :nodoc:
|
|
449
449
|
if !response
|
450
450
|
package.message "not updating #{package.srcdir}"
|
451
451
|
package.progress_done
|
452
|
-
return
|
452
|
+
return false
|
453
453
|
else
|
454
454
|
package.message "deleting #{package.srcdir} to update to new archive"
|
455
455
|
FileUtils.rm_rf package.srcdir
|
@@ -498,6 +498,7 @@ def checkout(package, options = Hash.new) # :nodoc:
|
|
498
498
|
end
|
499
499
|
end
|
500
500
|
write_checkout_digest_stamp(package)
|
501
|
+
return true
|
501
502
|
|
502
503
|
rescue SubcommandFailed
|
503
504
|
if cachefile != url.path
|
@@ -19,8 +19,8 @@ def self.autotools(opts, &proc)
|
|
19
19
|
# ==== Handles autotools-based packages
|
20
20
|
#
|
21
21
|
# == Used programs (see <tt>Autobuild.programs</tt>)
|
22
|
-
# Autotools will use the 'aclocal', 'autoheader', 'autoconf' and '
|
23
|
-
# programs defined on Autobuild.programs. autoheader
|
22
|
+
# Autotools will use the 'aclocal', 'autoheader', 'autoconf', 'automake' and 'bear'
|
23
|
+
# programs defined on Autobuild.programs. autoheader and bear are disabled by default,
|
24
24
|
# aclocal, autoconf and automake use are autodetected.
|
25
25
|
#
|
26
26
|
# To override this default behaviour on a per-package basis, use Autotools#use
|
@@ -32,8 +32,23 @@ class Autotools < Configurable
|
|
32
32
|
attr_accessor :autoheader_flags
|
33
33
|
attr_accessor :autoconf_flags
|
34
34
|
attr_accessor :automake_flags
|
35
|
+
attr_accessor :bear_flags
|
35
36
|
|
36
37
|
@builddir = 'build'
|
38
|
+
@@enable_bear_globally = false
|
39
|
+
|
40
|
+
def self.enable_bear_globally?
|
41
|
+
@@enable_bear_globally
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.enable_bear_globally=(flag)
|
45
|
+
@@enable_bear_globally = flag
|
46
|
+
end
|
47
|
+
|
48
|
+
def using_bear?
|
49
|
+
return Autotools.enable_bear_globally? if using[:bear].nil?
|
50
|
+
using[:bear]
|
51
|
+
end
|
37
52
|
|
38
53
|
def configurestamp; "#{builddir}/config.status" end
|
39
54
|
|
@@ -44,6 +59,7 @@ def initialize(options)
|
|
44
59
|
@autoheader_flags = Array.new
|
45
60
|
@autoconf_flags = Array.new
|
46
61
|
@automake_flags = Array.new
|
62
|
+
@bear_flags = ['-a']
|
47
63
|
|
48
64
|
super
|
49
65
|
end
|
@@ -209,6 +225,15 @@ def prepare
|
|
209
225
|
file configurestamp => regen_target
|
210
226
|
end
|
211
227
|
|
228
|
+
def tool_program(tool)
|
229
|
+
tool_flag = using[tool.to_sym]
|
230
|
+
if tool_flag.respond_to?(:to_str)
|
231
|
+
tool_flag.to_str
|
232
|
+
else
|
233
|
+
Autobuild.tool(tool)
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
212
237
|
# If set to true, configure will be called with --no-create and
|
213
238
|
# ./config.status will be started each time before "make"
|
214
239
|
#
|
@@ -272,15 +297,9 @@ def regen
|
|
272
297
|
working_directory: srcdir
|
273
298
|
else
|
274
299
|
[ :aclocal, :autoconf, :autoheader, :automake ].each do |tool|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
else; Autobuild.tool(tool)
|
279
|
-
end
|
280
|
-
|
281
|
-
run 'configure', tool_program, *send("#{tool}_flags"),
|
282
|
-
working_directory: srcdir
|
283
|
-
end
|
300
|
+
next unless using[tool]
|
301
|
+
run 'configure', tool_program(tool), *send("#{tool}_flags"),
|
302
|
+
working_directory: srcdir
|
284
303
|
end
|
285
304
|
end
|
286
305
|
end
|
@@ -308,7 +327,18 @@ def build
|
|
308
327
|
if force_config_status
|
309
328
|
run('build', './config.status')
|
310
329
|
end
|
311
|
-
|
330
|
+
|
331
|
+
build_options = []
|
332
|
+
if using_bear?
|
333
|
+
build_tool = tool_program(:bear)
|
334
|
+
build_options = bear_flags
|
335
|
+
build_options << Autobuild.tool(:make)
|
336
|
+
else
|
337
|
+
build_tool = Autobuild.tool(:make)
|
338
|
+
end
|
339
|
+
build_options << "-j#{parallel_build_level}"
|
340
|
+
|
341
|
+
run('build', build_tool, *build_options)
|
312
342
|
end
|
313
343
|
end
|
314
344
|
Autobuild.touch_stamp(buildstamp)
|
@@ -1,12 +1,16 @@
|
|
1
|
+
require 'rubygems/version'
|
2
|
+
|
1
3
|
module Autobuild
|
2
4
|
def self.make_is_gnumake?(pkg, path = Autobuild.tool(:make))
|
3
5
|
@make_is_gnumake ||= Hash.new
|
6
|
+
@gnumake_version ||= Hash.new
|
4
7
|
if @make_is_gnumake.has_key?(path)
|
5
8
|
@make_is_gnumake[path]
|
6
9
|
else
|
7
10
|
begin
|
8
11
|
result = pkg.run('prepare', path, '--version')
|
9
12
|
@make_is_gnumake[path] = (result.first =~ /GNU Make/)
|
13
|
+
@gnumake_version[path] = result.first.scan(/[\d.]+/)[0]
|
10
14
|
rescue Autobuild::SubcommandFailed
|
11
15
|
@make_is_gnumake[path] = false
|
12
16
|
end
|
@@ -31,7 +35,11 @@ def self.invoke_make_parallel(pkg, cmd_path = Autobuild.tool(:make))
|
|
31
35
|
job_server.get(reserved - 1) # We already have one token taken by autobuild itself
|
32
36
|
yield("-j#{pkg.parallel_build_level}")
|
33
37
|
end
|
34
|
-
|
38
|
+
if Gem::Version.new(@gnumake_version[cmd_path]) >= Gem::Version.new("4.2.0")
|
39
|
+
yield("--jobserver-auth=#{job_server.rio.fileno},#{job_server.wio.fileno}", "-j")
|
40
|
+
else
|
41
|
+
yield("--jobserver-fds=#{job_server.rio.fileno},#{job_server.wio.fileno}", "-j")
|
42
|
+
end
|
35
43
|
end
|
36
44
|
yield("-j#{pkg.parallel_build_level}")
|
37
45
|
else yield
|
data/lib/autobuild/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autobuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|