[geos-devel] RFC7: Discontinue use of autotools
Roger Bivand
Roger.Bivand at nhh.no
Tue Jan 12 02:26:42 PST 2021
On Tue, 12 Jan 2021, Paul Ramsey wrote:
>
>
>> On Jan 11, 2021, at 1:09 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>>
>> Cmake proponents: apart from the reservations raised by packagers, why for me does rm -rf _build not lead to
>>
>> mkdir _build && cd _build && cmake .. && make
>>
>> taking the same time when repeated compare to the first time through? What else do I need to delete to distclean the previous build? Is what I am seeing from searching correct, that cmake squirrels stuff away and does not offer any distclean to zero the build completely?
>>
>> How can one be sure that stale stuff is not hanging around when using cmake .. in an empty _build in the local git repo
>
> All build changes/output are confined to the build directory. You can put it in _build in the source dir. Or you can be even more isolated (this is what I do) and put it literally to the side of the source dir. I have
>
> $CODE/geos-git
> $CODE/geos-git-build
>
> in my working area.
>
> You can prove it to yourself:
>
> wget http://download.osgeo.org/geos/geos-3.9.0.tar.bz2
> tar xvfj geos-3.9.0.tar.bz2
> du -sk > ../before_sz.txt
> # 23368
> find . > ../before.txt
> mkdir _build
> cmake ..
> time make
> # 674.13s
> rm -rf _build
> du -sk > ../after_sz.txt
> # 23368
> find . > ../after.txt
> diff ../before ../after
> cat ../before_sz.txt ../after_sz.txt
wget http://download.osgeo.org/geos/geos-3.9.0.tar.bz2
tar xvfj geos-3.9.0.tar.bz2
du -sk > ../before_sz.txt
find . > ../before.txt
mkdir _build
cd _build
cmake ../geos-3.9.0
time make
# real 10m28.376s
# user 8m35.684s
# sys 0m51.954s
cd ..
rm -rf _build
du -sk > ../after_sz.txt
find . > ../after.txt
diff ../before.txt ../after.txt
cat ../before_sz.txt ../after_sz.txt
# 28640 .
# 28640 .
mkdir _build
cd _build
cmake ../geos-3.9.0
time make
# real 0m12.127s
# user 0m8.169s
# sys 0m3.701s
rm -rf _build
(log out and reboot system)
mkdir _build
cd _build
cmake ../geos-3.9.0
time make
# real 0m12.358s
# user 0m8.308s
# sys 0m3.393s
The ouput objects are being cached somewhere, and survive a reboot. They
are not in the Gnome wastebasket either (rm doesn't put them there).
Roger
>
> Nothing is added to the source dir. The file list is identical before
> and after. If you're building out-of-tree, the equivalent of 'make
> distclean' is 'rm -rf $BUILDDIR`
>
> P.
>
>
>
--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no
https://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
More information about the geos-devel
mailing list