Cleanup #1915

Make the build script clean/remove old builds

Added by Sam White about 1 year ago. Updated about 1 year ago.

Build & Test Automation
Target version:
Start date:
Due date:
% Done:



If a user has a netlrts-linux-x86_64/ and a netlrts-linux-x86_64-smp/, then they do a "./build charm++ netlrts-linux-x86_64", our build script should remove the existing netlrts-linux-x86_64 directory before doing anything else.

We could potentially also add a "./build clean" command to remove all builds, and a "./build rebuild charm++" to do "cd <build_dir>/tmp && make charm++"


#1 Updated by Eric Mikida about 1 year ago

I'm not sure if removing old builds should necessarily be the default, but either way something sensible should be done. Right now it appears to be broken completely. I did two ./builds in a row and the second one broke (after recompiling a bunch of unchanged files):

make: *** No rule to make target `charmrun', needed by `charmrun-target'. Stop.
Charm++ NOT BUILT. Either cd into netlrts-darwin-x86_64/tmp and try

I would think making it work like a typical make file would be the most natural. As in, doing a ./build just defaults to running make in the appropriate directory if it exists, which will obey all dependency rules, only compile what needs to be compiled, and not rerun all the configuration checks. And then ./build clean <arch> maybe to clean that dir, and ./build clean all or ./build clean would remove all old builds?

#2 Updated by Sam White about 1 year ago

I agree with what you've said: our './build' should behave like 'make'.

#3 Updated by Sam White about 1 year ago

  • Category set to Build & Test Automation
  • Assignee set to Evan Ramos

#5 Updated by Sam White about 1 year ago

All 3 of those patches have been merged, so rebuilding an already built target should work smoothly now.. We could still add ./build clean <arch> and ./build clean all

#6 Updated by Evan Ramos about 1 year ago

  • Status changed from Implemented to Merged

Also available in: Atom PDF