Cleanup #1915

Make the build script clean/remove old builds

Added by Sam White 10 months ago. Updated 10 months 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 10 months 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 10 months ago

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

#3 Updated by Sam White 10 months ago

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

#5 Updated by Sam White 10 months 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 10 months ago

  • Status changed from Implemented to Merged

Also available in: Atom PDF