blob: 04edb9daf299b6a89a4b8788db2371ffddc87f9c [file] [log] [blame]
Reid Spencer2a91e7f2004-09-06 19:06:27 +00001#!/bin/sh
2##===- utils/countloc.sh - Counts Lines Of Code --------------*- Script -*-===##
3#
4# The LLVM Compiler Infrastructure
5#
6# This file was developed by Reid Spencer and is distributed under the
7# University of Illinois Open Source 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 no arguments but does expect to be run from the top llvm
16# source directory.
17#
18TOPDIR=`pwd | sed -e 's#(.*/llvm).*#$1#'`
19if test -d "$TOPDIR" ; then
20 cd $TOPDIR
21 find include lib tools utils examples -type f -name '*.[cdhyltp]*' \
22 \! -name '*~' \
23 \! -name '#*' \
24 \! -name '*.ll' \
25 \! -name '*.d' \
26 \! -name '*.dir' \
27 \! -name 'Sparc.burm.c' \
28 \! -name 'llvmAsmParser.cpp' \
29 \! -name 'llvmAsmParser.h' \
30 \! -name 'FileParser.cpp' \
31 \! -name 'FileParser.h' \
32 -exec wc -l {} \; | awk '\
33 BEGIN { loc=0; } \
34 { loc += $1; } \
35 END { print loc; }'
36else
37 echo "Can't find LLVM top directory in $TOPDIR"
38fi