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
- [Libreoffice] When a file is removed, dependency info is stale and not regenerated · Caolán McNamara
 
   
 
  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.