Issue 119534 - "dmake clean" should also clean up ext_libraries
Summary: "dmake clean" should also clean up ext_libraries
Alias: None
Product: Build Tools
Classification: Code
Component: solenv (show other issues)
Version: 3.4.0
Hardware: All All
: P3 Normal (vote)
Target Milestone: 4.0.0
Assignee: zhang jianfang
QA Contact:
Depends on:
Reported: 2012-05-30 02:22 UTC by zhang jianfang
Modified: 2013-07-11 13:21 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---

patch for makefile.rc (387 bytes, patch)
2012-05-31 03:15 UTC, zhang jianfang
no flags Details | Diff
patch for makefile.rc (390 bytes, patch)
2012-05-31 03:23 UTC, zhang jianfang
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description zhang jianfang 2012-05-30 02:22:07 UTC
When rebuilding source, it always have build break on ucb module with error message,

Making:    all_ucpdav.dpslo
Compiling: ucb/
Compiling: ucb/source/ucp/webdav/webdavservices.cxx
Compiling: ucb/source/ucp/webdav/webdavprovider.cxx
z:\aoo\r1343539\ucb\source\ucp\webdav\SerfTypes.hxx(27) : fatal error C1083: Can
not open include file: 'serf.h': No such file or directory
dmake:  Error code 2, while making '../../../

1 module(s):
need(s) to be rebuilt


ERROR: error 65280 occurred while making /cygdrive/z/aoo/r1343539/ucb/source/ucp

When you have fixed the errors in that module you can resume the build by runnin

        build --all:ucb

dmake:  Error code 1, while making 'build_instsetoo_native'

The direct error message shows that serf.h is not correctly delivered to solver\340\\inc\serf\ at the refresh build time.

The build break can be recreated with 2 scenarios,
  A. After a successful new build. run command "dmake clean" and "dmake". Or
  B. After a successful new build, replace the main directory with a new revision of source code, the problem also appears in the build.

So the problem appears when trying to reuse the previous ext_libraries build result.

The problem can be resolved by manually clear the previous result under ext_libraries directory. So if it can clean the ext_libraries with command "dmake clean", the problem won't appears. This can be easily archived by adding a line to file main/makefile.rc
  	-rm -fr $(foreach,f,$(ADDITIONAL_REPOSITORIES) $f/*/$(INPATH))

But it is still a mystery to me why files serf*.h can not be delivered to solver even if I manually run deliver command under ext_libraries/serf. These original files are not in ext_libraries/serf/ directory.
Comment 1 zhang jianfang 2012-05-31 03:15:57 UTC
Created attachment 77833 [details]
patch for makefile.rc

Patch for making "dmake clean" command also to clean the ext_libraries.

It seems all the ext_libraries output files are copied to solver directory with gmake mechanism at module build step, in fact it does nothing when running command late. So there is no simple solution to leverage last time build result. Maybe making "dmake clean" command works is enough.
Comment 2 zhang jianfang 2012-05-31 03:23:46 UTC
Created attachment 77834 [details]
patch for makefile.rc
Comment 3 zhang jianfang 2012-06-05 03:08:06 UTC
take over the defect by myself.
Comment 4 zhang jianfang 2012-06-05 03:20:31 UTC
committed to trunk stream.
Comment 5 zhang jianfang 2012-07-03 11:17:00 UTC