Date: prev next · Thread: first prev next last
2010 Archives by date, by thread · List index


I think we've all gotten caught with this problem.

How about the following attached hack in build.pl so that if a normal
dmake fails when launched from build.pl, then do a dmake depend=t and
retry.

To reproduce the original problem do something like

a) cd tools/source/ref 
touch hacktest.hxx
edit pstm.cxx to include hacktest.hxx
build

all ok

b) now
rm hacktest.hxx
edit pstm.cxx to remove hacktest.hxx
build

"hacktest.hxx" not found and can't be made, due to the dependency
generation. All a bit nasty.

C.
diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl
index 43c0188..d5b4609 100755
--- a/solenv/bin/build.pl
+++ b/solenv/bin/build.pl
@@ -783,6 +783,16 @@ sub dmake_dir {
         remove_from_dependencies($job_name, \%local_deps_hash) if (!$child);
         return if ($cmd_file || $show);
         $error_code = run_job($dmake, $job_name);
+
+       if ($error_code && ($ENV{nodep} eq '') && ($ENV{depend} eq '')) {
+            print "Forcing regeneration of dependency info\n";
+           $ENV{depend} = 't';
+            run_job($dmake, $job_name);
+            print "Retrying $job_name\n";
+           $ENV{depend} = '';
+            $error_code = run_job($dmake, $job_name);
+       }
+
         html_store_job_info(\%local_deps_hash, $job_name, $error_code) if (!$child);
     };
     if ($error_code && $ignore) {

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.