summaryrefslogtreecommitdiff
path: root/utils/llvmdo
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-09-20 08:00:09 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-09-20 08:00:09 +0000
commit33709e53e44ad15aaed04e1abd4c154c617d63f6 (patch)
treec20534567a53c69d1134540fca3e5863c0da54b0 /utils/llvmdo
parentb27b78f6a4be0eb96b79c818490ca924d18d50b1 (diff)
downloadllvm-33709e53e44ad15aaed04e1abd4c154c617d63f6.tar.gz
llvm-33709e53e44ad15aaed04e1abd4c154c617d63f6.tar.bz2
llvm-33709e53e44ad15aaed04e1abd4c154c617d63f6.tar.xz
Tighten up the specification of what counts as a code file. The previous
specification was too liberal in some areas and missing things in others. This specification is based on the actual extensions found in the source tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16443 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/llvmdo')
-rwxr-xr-xutils/llvmdo71
1 files changed, 60 insertions, 11 deletions
diff --git a/utils/llvmdo b/utils/llvmdo
index 22c708b58e..373b6574d9 100755
--- a/utils/llvmdo
+++ b/utils/llvmdo
@@ -1,5 +1,33 @@
#!/bin/sh
-# This is useful because it prints out all of the source files. Useful for
+##===- utils/llvmdo - 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 is a general purpose "apply" function for the source files in LLVM
+# It uses "find" to locate all the source files and then applies the user's
+# command to them. As such, this command is often not used by itself much but
+# the other find related tools (countloc.sh,llvmgrep,getsrcs.sh) are all based
+# on the implementation. This script defines "what is a source file" in LLVM and
+# so should be maintained if new directories, new file extensions, etc. are
+# used in LLVM as it progresses.
+#
+# Usage:
+# llvmdo [-dirs "DIRNAMES..." PROGRAM ARGS...
+#
+# The -dirs argument allows you to specify the set of directories that are
+# searched. By default, everything is searched
+# (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.
+#
+# This script is
# greps.
if test $# -lt 1 ; then
@@ -11,7 +39,7 @@ if test "$1" = "-dirs" ; then
LLVMDO_DIRS="$2";
shift ; shift
elif test -z "$LLVMDO_DIRS" ; then
- LLVMDO_DIRS="include lib tools test utils docs examples projects"
+ LLVMDO_DIRS="include lib tools utils runtime autoconf docs test examples projects"
fi
PROGRAM=`which $1`
if test ! -x "$PROGRAM" ; then
@@ -35,18 +63,39 @@ if test -d "$TOPDIR" ; then
-path 'docs/img/*' -o \
-path '*/.libs/*' \
\) -prune -o \( \
- -name '*.[cdhyltp]*' \
+ \( \
+ -name '*.cpp' -o \
+ -name '*.h' -o \
+ -name '*.def' -o \
+ -name '*.c' -o \
+ -name '*.l' -o \
+ -name '*.y' -o \
+ -name '*.td' -o \
+ -name '*.py' -o \
+ -name '*.pl' -o \
+ -name '*.sh' -o \
+ -name '*.lst' -o \
+ -name '*.pod' -o \
+ -name '*.html' -o \
+ -name '*.css' -o \
+ -name '*.cfg' -o \
+ -name '*.cc' -o \
+ -name '*.txt' -o \
+ -name '*.TXT' -o \
+ -name '*.el' -o \
+ -name '*.m4' -o \
+ -name '*.in' -o \
+ -name '*.ac' -o \
+ -name '*.tr' -o \
+ -name '*.vim' -o \
+ -name '*.gnuplot' -o \
+ -name 'Make*' -o \
+ -path 'test/*.ll' -o \
+ -path 'runtime/*.ll' \
+ \) \
\! -name '.*' \
\! -name '*~' \
\! -name '#*' \
- \! -name '*.d' \
- \! -name '*.dir' \
- \! -name '*.flc' \
- \! -name '*.inc' \
- \! -name '*.ll' \
- \! -name '*.llx' \
- \! -name '*.la' \
- \! -name '*.lo' \
\! -name 'Sparc.burm.c' \
\! -name 'llvmAsmParser.cpp' \
\! -name 'llvmAsmParser.h' \