qthreads icon indicating copy to clipboard operation
qthreads copied to clipboard

`make distclean` Misses Some Files

Open insertinterestingnamehere opened this issue 2 years ago • 2 comments

As per https://www.gnu.org/prep/standards/html_node/Standard-Targets.html, make distclean should purge all the build files generated by both the configure and build steps, but after running it some files still remain. I'm not yet familiar enough with automake to know why this is happening. For now git clean -fdX (note the capitalized X) is working fine, but I'm creating this issue so I can come back and investigate later.

Here are the specific files it's missing:

.autogen-version
Makefile.in
aclocal.m4
config/compile
config/config.guess
config/config.sub
config/depcomp
config/install-sh
config/libtool.m4
config/ltmain.sh
config/ltoptions.m4
config/ltsugar.m4
config/ltversion.m4
config/lt~obsolete.m4
config/missing
config/test-driver
configure
include/Makefile.in
include/config.h.in
include/qthread/Makefile.in
man/Makefile.in
man/man3/Makefile.in
src/.deps/
src/Makefile.in
src/affinity/.deps/
src/alloc/.deps/
src/barrier/.deps/
src/ds/.deps/
src/ds/dictionary/.deps/
src/fastcontext/.deps/
src/net/.deps/
src/net/portals4/.deps/
src/patterns/.deps/
src/qtimer/.deps/
src/sincs/.deps/
src/syscalls/.deps/
src/threadqueues/.deps/
test/Makefile.in
test/basics/.deps/
test/basics/Makefile.in
test/benchmarks/Makefile.in
test/benchmarks/finepoints/Makefile.in
test/benchmarks/finepoints/partSendPrototype/.deps/
test/benchmarks/finepoints/partSendPrototype/Makefile.in
test/benchmarks/generic/.deps/
test/benchmarks/mantevo/Makefile.in
test/benchmarks/mantevo/hpccg/.deps/
test/benchmarks/mantevo/hpccg/Makefile.in
test/benchmarks/mt/.deps/
test/benchmarks/mtaap08/.deps/
test/benchmarks/pmea09/.deps/
test/benchmarks/sc12/.deps/
test/benchmarks/thesis/.deps/
test/benchmarks/uts/.deps/
test/features/.deps/
test/features/Makefile.in
test/multinode/.deps/
test/multinode/Makefile.in
test/stress/.deps/
test/stress/Makefile.in
test/utils/Makefile.in
test/utils/rng/.deps/
test/utils/rng/Makefile.in

m4 files are created, either as a file or softlink, by autoconf and thus precede the ./configure and make steps. I think it is ok to preserve these files in case of make distclean is called. *.in files are input files and are part of the distribution. .deps could be removed as this a side step for tracking deps by make.

janciesko avatar Oct 24 '23 18:10 janciesko

Okay, this makes sense. Thanks for clarifying. Basically we want distclean to clear away everything except what's generated by the autogen script. This means leaving .m4 and .in files alone. I checked and the .deps directories are still created by the configure script and their contents are getting removed (correctly) by distclean. It's just the directories themselves that aren't getting removed.

Also, if I want the equivalent of a clean checkout of the repo, git actually is the correct tool for that, not make.