12d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencer#!/bin/sh 2181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer##===- utils/llvmgrep - Counts Lines Of Code -----------------*- Script -*-===## 3181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 4181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# The LLVM Compiler Infrastructure 5181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 63060910e290949a9ac5eda8726d030790c4d60ffChris Lattner# This file is distributed under the University of Illinois Open Source 73060910e290949a9ac5eda8726d030790c4d60ffChris Lattner# License. See LICENSE.TXT for details. 8181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 9181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer##===----------------------------------------------------------------------===## 10181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 11181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# This script searches your srcdir for an egrep style pattern. This can quickly 12181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# help you build a list of the places you need to modify when changing a header 13181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# or other "global" name. The only argument is the pattern you want to search 14181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# for. It should be quoted to escape shell interpretation of the pattern's 15181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# special characters. 16181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 17181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# Note that the implementation is based on llvmdo. See that script for more 18181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# details. 19181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer##===----------------------------------------------------------------------===## 20181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer 216ae928fc69dc18754d1c72437c7a75357685e066Reid Spencerif test "$1" = "-topdir" ; then 226ae928fc69dc18754d1c72437c7a75357685e066Reid Spencer TOPDIR="$2" 236ae928fc69dc18754d1c72437c7a75357685e066Reid Spencer shift; shift; 246ae928fc69dc18754d1c72437c7a75357685e066Reid Spencerelse 256ae928fc69dc18754d1c72437c7a75357685e066Reid Spencer TOPDIR=`llvm-config --src-root` 26ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencerfi 27ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer 282d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencerif test -d "$TOPDIR" ; then 292d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencer cd $TOPDIR 30054defa74604dcc88db7ce9175122de785992b7bReid Spencer case `uname -s` in 31054defa74604dcc88db7ce9175122de785992b7bReid Spencer SunOS) grep_cmd="ggrep -H -n" ;; 32f26475af976389839c4affdcd2b5ef07ba548a81Eric Christopher Linux|Darwin) grep_cmd="egrep -H -n" ;; 33054defa74604dcc88db7ce9175122de785992b7bReid Spencer *) grep_cmd="egrep -l -n" ;; 34054defa74604dcc88db7ce9175122de785992b7bReid Spencer esac 35ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer ./utils/llvmdo -topdir "$TOPDIR" \ 36e8f6e795ffaf876defcad01af6826cc8686d72d3Chris Lattner -dirs "include lib tools utils docs examples test unittests projects cmake" $grep_cmd "$*" 3723a354d1f1e3c9f7232e9b809541f4393c6eb774Reid Spencerelse 38ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer echo "Can't find LLVM top directory" 392d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencerfi 40