diff options
Diffstat (limited to 'build/unix/build_clean')
-rw-r--r-- | build/unix/build_clean | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/build/unix/build_clean b/build/unix/build_clean new file mode 100644 index 0000000..ffc7440 --- /dev/null +++ b/build/unix/build_clean @@ -0,0 +1,29 @@ +#!/bin/sh + +# Find all the .c, .cpp, .m, and .rc files which are relevant for the project, +# and remove their respective object files in the work directory. + +# Expected to be passed from the environment: +# BUILD_PROJECT - the name of the project +# BUILD_ROOT - The root of the source files. +# BUILD_WORK - The root of the work directory. + +BUILD_ROOT=${BUILD_ROOT%/}/ +BUILD_WORK=${BUILD_WORK%/}/ +eval OBJDIR=\"${BUILD_WORK}\${${BUILD_PROJECT}_OBJS}\" + +. "${BUILD_ROOT}Makeproject" + +build/unix/recurse "$BUILD_PROJECT" "$BUILD_ROOT" | \ + while read TYPE FILE; do + case "$TYPE" in + C|CXX|M|RC) + rm -f -- "${OBJDIR}${REC_PREFIX}$FILE.d" \ + "${OBJDIR}${FILE}.o" + ;; + DIROUT) + rmdir -- "${OBJDIR}${FILE}" 2> /dev/null + ;; + esac +done + |