blob: 22c708b58e8a3ad1c68fa5edab20d302fccfeda5 [file] [log] [blame]
Reid Spencera60ff2e2004-07-26 22:52:44 +00001#!/bin/sh
2# This is useful because it prints out all of the source files. Useful for
3# greps.
Reid Spencer8141e372004-09-20 07:21:19 +00004
5if test $# -lt 1 ; then
6 echo "Usage: llvmdo [-dirs "DIRNAMES..."] PROGRAM ARGS...";
7 exit 1;
8fi
9
10if test "$1" = "-dirs" ; then
11 LLVMDO_DIRS="$2";
12 shift ; shift
13elif test -z "$LLVMDO_DIRS" ; then
14 LLVMDO_DIRS="include lib tools test utils docs examples projects"
15fi
Reid Spencera60ff2e2004-07-26 22:52:44 +000016PROGRAM=`which $1`
Reid Spencer8141e372004-09-20 07:21:19 +000017if test ! -x "$PROGRAM" ; then
Reid Spencera60ff2e2004-07-26 22:52:44 +000018 echo "Can't execute $1"
19 exit 1
20fi
21shift;
22ARGS="$*"
Reid Spencer8141e372004-09-20 07:21:19 +000023TOPDIR=`pwd | sed -e 's#\(.*/llvm\).*#\1#'`
Reid Spencera60ff2e2004-07-26 22:52:44 +000024if test -d "$TOPDIR" ; then
25 cd $TOPDIR
Reid Spencer8141e372004-09-20 07:21:19 +000026 find $LLVMDO_DIRS -type f \
27 \( \
28 -path 'docs/doxygen/*' -o \
29 -path 'docs/CommandGuide/html/*' -o \
30 -path 'docs/CommandGuide/man/*' -o \
31 -path 'docs/CommandGuide/ps/*' -o \
32 -path 'docs/CommandGuide/man/*' -o \
33 -path 'docs/HistoricalNotes/*' -o \
34 -path 'utils/Burg/*' -o \
35 -path 'docs/img/*' -o \
36 -path '*/.libs/*' \
37 \) -prune -o \( \
38 -name '*.[cdhyltp]*' \
39 \! -name '.*' \
Reid Spencera60ff2e2004-07-26 22:52:44 +000040 \! -name '*~' \
41 \! -name '#*' \
Reid Spencera60ff2e2004-07-26 22:52:44 +000042 \! -name '*.d' \
43 \! -name '*.dir' \
Reid Spencer8141e372004-09-20 07:21:19 +000044 \! -name '*.flc' \
45 \! -name '*.inc' \
46 \! -name '*.ll' \
47 \! -name '*.llx' \
48 \! -name '*.la' \
49 \! -name '*.lo' \
Reid Spencera60ff2e2004-07-26 22:52:44 +000050 \! -name 'Sparc.burm.c' \
51 \! -name 'llvmAsmParser.cpp' \
52 \! -name 'llvmAsmParser.h' \
53 \! -name 'FileParser.cpp' \
54 \! -name 'FileParser.h' \
Reid Spencer8141e372004-09-20 07:21:19 +000055 \! -name 'StackerParser.h' \
56 \! -name 'StackerParser.cpp' \
57 -exec $PROGRAM $ARGS {} \; \
58 \)
Reid Spencera60ff2e2004-07-26 22:52:44 +000059else
60 echo "Can't find LLVM top directory in $TOPDIR"
61fi
Reid Spencer8141e372004-09-20 07:21:19 +000062