diff options
Diffstat (limited to 'utils/mkpatch')
-rwxr-xr-x | utils/mkpatch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/utils/mkpatch b/utils/mkpatch new file mode 100755 index 000000000000..d256d98f6f3d --- /dev/null +++ b/utils/mkpatch @@ -0,0 +1,37 @@ +#!/bin/bash +# +# This script makes a patch for LLVM ensuring the correct diff options and +# putting the files in a standard review order. + + +function error { + retcode="$?" + echo "mkpatch: error: $1 ($retcode)" + exit 1 +} + +if [ ! -e llvm.spec.in ] ; then + error "Please change directory to the LLVM top source directory" +fi +if [ "$#" -ne 1 ] ; then + error "usage: utils/mkpatch [PATCH_NAME]" +fi +NAME="$1" +echo "mkpatch: Generating differences on top level files" +svn diff -N -x -u > "$NAME".patch.raw 2>&1 +echo "mkpatch: Generating differences on all directories" +svn diff -x -u >> "$NAME".patch.raw 2>&1 \ + autoconf docs utils include lib/System lib/Support lib/VMCore lib/AsmParser \ + lib/Bitcode lib/Analysis lib/Transforms lib/CodeGen lib/Target \ + lib/ExecutionEngine lib/Debugger lib/Linker \ + tools test unittests runtime projects examples win32 Xcode + +echo "mkpatch: Removing cruft from the patch file" +sed -e '/^[?] .*/d' -e '/^cvs diff: Diffing/d' "$NAME".patch.raw | awk '\ +BEGIN { deleting = 0; } \ +/^Index: .*[.]cvs$/ { deleting = 1; fname=substr($0,7); \ + print "Skipping: ", fname > "/dev/stderr"; } \ +/^Index:.*/ && !/^Index: .*[.]cvs$/ { deleting = 0; } \ +{ if (! deleting) { print; } } ' > "$NAME".patch || \ + error "sed/awk cleanup failed" + |