[CMake] ExternalProject feature regenerating the configure script

Alan W. Irwin irwin at beluga.phys.uvic.ca
Wed Jul 24 14:14:11 EDT 2013


On 2013-07-24 10:54-0700 Ashok Nalkund wrote:

> On 7/23/2013 8:42 PM, Alan W. Irwin wrote:
>> On 2013-07-23 18:09-0700 Ashok Nalkund wrote:
>> 
>>> I noticed the following messages when I ran 'make VERBOSE=1 -d':
>>> 
>>>> <path to package>/build/src/package/Makefile.in'.
>>>>     Prerequisite `<path to package>/build/src/package/aclocal.m4' is 
>>>> newer than target `<path to package>/build/src/package/Makefile.in'.
>>>>    Must remake target `<path to package>/build/src/package/Makefile.in'.
>>>> Putting child 0x0156a7f0 (<path to package>/build/src/mare/Makefile.in) 
>>>> PID 23029 on the chain.
>>>> Live child 0x0156a7f0 (<path to package>/build/src/mare/Makefile.in) PID 
>>>> 23029
>>>>  cd <path to package>/build/src/mare && /bin/sh <path to 
>>>> package>/build/src/mare/autotools/missing --run automake-1.11 --foreign
>>>> aclocal.m4:17: warning: this file was generated for autoconf 2.68.
>>> 
>>> I'll dig into this more.
>> 
>> I suggest you try replacing cmake -E touch everywhere it occurs in the
>> ExternalPackage module with the equivalent Unix (or MSYS) touch
>> command. That's what I was forced to do because the "cmake -E touch
>> <filename>" command is not reliable with regard to timing (it
>> truncates all times to the nearest second) leading to weird regeneration
>> results similar to what you have described.
>> 
>> You could also try the git version of CMake.  I have been told that
>> the appropriate bug fix for this "cmake -E touch" issue has been done
>> in the git version of CMake in response to my bug report, but this fix
>> will only be deployed for the forthcoming CMake-2.8.12 release.
>> 
>> If time truncation to the nearest second for "cmake -E touch" in the
>> ExternalPackage module is not the issue, then the other possibility is
>> the release tarball has not been correctly prepared for autotools
>> release so the build-system file dates are not in the right date order
>> ==> inappropriate regeneration of the build-system files for the user.
>> (This actually happened to me as a release manager many years ago when
>> PLplot was still using autotools, and I remember that embarrassment
>> very well indeed.) But in this case, you would also get regeneration
>> when running configure/make by hand, and you stated that was not the
>> case.
>> 
>> Alan
>
> Hi Alan,
>  Thanks for the response. First I tried to see the times of these files 
> using stat and it DOESNT indicate that aclocal.m4 is newer than configure:
>
>>   File: `<path to package>/build/src/mare/aclocal.m4'
>>   Size: 37457           Blocks: 80         IO Block: 4096 regular file
>> Device: fd04h/64772d    Inode: 52823233    Links: 1
>> Access: (0600/-rw-------)  Uid: (45401/ ashoknn)   Gid: (  200/ users)
>> Access: 2013-07-24 10:50:01.409175844 -0700
>> Modify: 2013-07-24 10:49:37.335299410 -0700
>> Change: 2013-07-24 10:49:37.335299410 -0700
>>   File: `<path to package>/build/src/mare/configure'
>>   Size: 840346          Blocks: 1648       IO Block: 4096 regular file
>> Device: fd04h/64772d    Inode: 52822857    Links: 1
>> Access: (0700/-rwx------)  Uid: (45401/ ashoknn)   Gid: (  200/ users)
>> Access: 2013-07-24 10:50:02.979883315 -0700
>> Modify: 2013-07-24 10:50:02.958882582 -0700
>> Change: 2013-07-24 10:50:02.958882582 -0700
>> 
> Also I changed '${CMAKE_COMMAND} -E touch' with 'touch' in the 
> ExternalProject module but that also didnt seem to make a difference.

Hi Ashok:

Sorry my suggestions didn't lead anywhere.  Good luck in figuring
out this peculiar issue.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list