Use make_range to reduce mentions of iterator type. NFC
[oota-llvm.git] / utils / countloc.sh
1 #!/bin/sh
2 ##===- utils/countloc.sh - Counts Lines Of Code --------------*- Script -*-===##
3
4 #                     The LLVM Compiler Infrastructure
5 #
6 # This file is distributed under the University of Illinois Open Source
7 # License. See LICENSE.TXT for details.
8
9 ##===----------------------------------------------------------------------===##
10 #
11 # This script finds all the source code files in the source code directories
12 # (excluding certain things), runs "wc -l" on them to get the number of lines in
13 # each file and then sums up and prints the total with awk. 
14 #
15 # The script takes one optional option, -topdir, which specifies the top llvm
16 # source directory. If it is not specified then the llvm-config tool is 
17 # consulted to find top source dir.  
18 #
19 # Note that the implementation is based on llvmdo. See that script for more
20 # details.
21 ##===----------------------------------------------------------------------===##
22
23 if test $# -gt 1 ; then
24   if test "$1" = "-topdir" ; then
25     TOPDIR="$2"
26     shift; shift;
27   else
28     TOPDIR=`llvm-config --src-root`
29   fi
30 fi
31
32 if test -d "$TOPDIR" ; then
33   cd $TOPDIR
34   ./utils/llvmdo -topdir "$TOPDIR" -dirs "include lib tools test utils examples" -code-only wc -l | awk '\
35       BEGIN { loc=0; } \
36       { loc += $1; } \
37       END { print loc; }'
38 else
39   echo "Can't find LLVM top directory"
40 fi