summaryrefslogtreecommitdiff
path: root/utils/countloc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'utils/countloc.sh')
-rwxr-xr-xutils/countloc.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/utils/countloc.sh b/utils/countloc.sh
new file mode 100755
index 0000000000..04edb9daf2
--- /dev/null
+++ b/utils/countloc.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+##===- utils/countloc.sh - Counts Lines Of Code --------------*- Script -*-===##
+#
+# The LLVM Compiler Infrastructure
+#
+# This file was developed by Reid Spencer and is distributed under the
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+#
+# This script finds all the source code files in the source code directories
+# (excluding certain things), runs "wc -l" on them to get the number of lines in
+# each file and then sums up and prints the total with awk.
+#
+# The script takes no arguments but does expect to be run from the top llvm
+# source directory.
+#
+TOPDIR=`pwd | sed -e 's#(.*/llvm).*#$1#'`
+if test -d "$TOPDIR" ; then
+ cd $TOPDIR
+ find include lib tools utils examples -type f -name '*.[cdhyltp]*' \
+ \! -name '*~' \
+ \! -name '#*' \
+ \! -name '*.ll' \
+ \! -name '*.d' \
+ \! -name '*.dir' \
+ \! -name 'Sparc.burm.c' \
+ \! -name 'llvmAsmParser.cpp' \
+ \! -name 'llvmAsmParser.h' \
+ \! -name 'FileParser.cpp' \
+ \! -name 'FileParser.h' \
+ -exec wc -l {} \; | awk '\
+ BEGIN { loc=0; } \
+ { loc += $1; } \
+ END { print loc; }'
+else
+ echo "Can't find LLVM top directory in $TOPDIR"
+fi