lib/autobuild/packages/autotools.rb in autobuild-1.5.61 vs lib/autobuild/packages/autotools.rb in autobuild-1.6.0.b1

- old
+ new

@@ -38,13 +38,14 @@ # Declare that the given target can be used to generate documentation def with_doc(target = 'doc') task "#{name}-doc" => configurestamp doc_task do - Dir.chdir(builddir) do - progress "generating documentation for %s" - Subprocess.run(self, 'doc', Autobuild.tool(:make), "-j#{parallel_build_level}", target) + in_dir(builddir) do + progress_start "generating documentation for %s" do + Subprocess.run(self, 'doc', Autobuild.tool(:make), "-j#{parallel_build_level}", target) + end yield if block_given? end end end @@ -212,32 +213,33 @@ raise PackageException.new(name), "neither configure.ac nor configure.in present in #{srcdir}" end file conffile do isolate_errors do - Dir.chdir(srcdir) do + in_dir(srcdir) do if using[:autogen].nil? - using[:autogen] = %w{autogen autogen.sh}.find { |f| File.exists?(f) } + using[:autogen] = %w{autogen autogen.sh}.find { |f| File.exists?(File.join(srcdir, f)) } end autodetect_needed_stages - progress "generating build system for %s" - if using[:libtool] - Subprocess.run(self, 'configure', Autobuild.tool('libtoolize'), '--copy') - end - if using[:autogen] - Subprocess.run(self, 'configure', File.expand_path(using[:autogen])) - else - [ :aclocal, :autoconf, :autoheader, :automake ].each do |tool| - if tool_flag = using[tool] - tool_program = if tool_flag.respond_to?(:to_str) - tool_flag.to_str - else; Autobuild.tool(tool) - end + progress_start "generating build system for %s" do + if using[:libtool] + Subprocess.run(self, 'configure', Autobuild.tool('libtoolize'), '--copy') + end + if using[:autogen] + Subprocess.run(self, 'configure', File.expand_path(using[:autogen])) + else + [ :aclocal, :autoconf, :autoheader, :automake ].each do |tool| + if tool_flag = using[tool] + tool_program = if tool_flag.respond_to?(:to_str) + tool_flag.to_str + else; Autobuild.tool(tool) + end - Subprocess.run(self, 'configure', tool_program) + Subprocess.run(self, 'configure', tool_program) + end end end end end end @@ -247,40 +249,43 @@ end # Configure the builddir directory before starting make def configure super do - Dir.chdir(builddir) do + in_dir(builddir) do command = [ "#{srcdir}/configure"] if force_config_status command << "--no-create" end command << "--prefix=#{prefix}" command += Array[*configureflags] - progress "configuring build system for %s" - Subprocess.run(self, 'configure', *command) + progress_start "configuring build system for %s" do + Subprocess.run(self, 'configure', *command) + end end end end # Do the build in builddir def build - Dir.chdir(builddir) do - progress "building %s [progress not available]" - if force_config_status - Subprocess.run(self, 'build', './config.status') + in_dir(builddir) do + progress_start "building %s [progress not available]" do + if force_config_status + Subprocess.run(self, 'build', './config.status') + end + Subprocess.run(self, 'build', Autobuild.tool(:make), "-j#{parallel_build_level}") end - Subprocess.run(self, 'build', Autobuild.tool(:make), "-j#{parallel_build_level}") end Autobuild.touch_stamp(buildstamp) end # Install the result in prefix def install - Dir.chdir(builddir) do - progress "installing %s" - Subprocess.run(self, 'install', Autobuild.tool(:make), "-j#{parallel_build_level}", 'install') + in_dir(builddir) do + progress_start "installing %s" do + Subprocess.run(self, 'install', Autobuild.tool(:make), 'install') + end end super end end