Issue 119534

Summary: "dmake clean" should also clean up ext_libraries
Product: Build Tools Reporter: zhang jianfang <zhangjf>
Component: solenvAssignee: zhang jianfang <zhangjf>
Status: CLOSED FIXED QA Contact:
Severity: Normal    
Priority: P3 CC: hdu
Version: 3.4.0   
Target Milestone: 4.0.0   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
patch for makefile.rc
none
patch for makefile.rc none

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/wntmsci12.pro/misc/ucpdav1_version.c
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 '../../../wntmsci12.pro/slo/webdavprovider.ob
j'

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

Reason(s):

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

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

        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\wntsci12.pro\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/wntsci12.pro/inc/ 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 deliver.pl 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
verified