blob: 25c812afdfa573dfef070eeb1de29dca26349beb [file] [log] [blame]
Vikram S. Adve631484c2002-09-15 16:33:32 +00001#!/bin/csh -f
2
Vikram S. Adve39c36e82002-09-19 14:54:53 +00003set pstatus = 0
4onintr cleanup
Vikram S. Advedf3ac862003-07-22 12:35:28 +00005alias usage 'echo "USAGE: $0:t [-h] [-n] [gmake-flag...] [VAR=...] [toolname (default: opt)]"; set pstatus = 1; goto cleanup'
Vikram S. Adve39c36e82002-09-19 14:54:53 +00006
Vikram S. Adve631484c2002-09-15 16:33:32 +00007set EXEC = opt
Vikram S. Adve39c36e82002-09-19 14:54:53 +00008set GMAKE_OPTS = ""
9
10set doit = 1
11unset options_done
12while ( !( $?options_done ) && ($#argv > 0))
13 switch ($argv[1])
14 case -h :
15 usage
Vikram S. Advedf3ac862003-07-22 12:35:28 +000016 case -f :
17 if ($#argv < 2) usage
18 shift argv; set MFILE = $argv[1]; shift argv; breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000019 case -n :
20 set doit = 0; shift argv; breaksw
21 case -* :
22 set GMAKE_OPTS = ( $GMAKE_OPTS $argv[1] ); shift argv; breaksw
23 default :
Vikram S. Advedf3ac862003-07-22 12:35:28 +000024 set optarg = `echo -n $argv[1] | sed 's/^[^=]*$//'`
25 if ($#optarg) then
26 set GMAKE_OPTS = ( $GMAKE_OPTS $optarg )
27 shift argv
28 else
29 set options_done
30 endif
31 breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000032 endsw
33end
Vikram S. Adve631484c2002-09-15 16:33:32 +000034
Vikram S. Advedf3ac862003-07-22 12:35:28 +000035if ($#argv > 1) then
36 echo 'ERROR: More than one tool is not supported by "makellvm"'
37 usage
38endif
Vikram S. Adve631484c2002-09-15 16:33:32 +000039if ($#argv > 0) then
Vikram S. Adve2d456602002-09-15 18:22:47 +000040 set EXEC = $argv[1]
Vikram S. Adve631484c2002-09-15 16:33:32 +000041endif
42
Vikram S. Advedf3ac862003-07-22 12:35:28 +000043## Compute LLVMDIR: the root of the current LLVM tree.
44## It is recorded in the variable LEVEL in Makefile, to compute it
45##
46if (! $?MFILE) then
47 if (-f GNUmakefile) then
48 set MFILE = GNUmakefile
49 else if (-f makefile) then
50 set MFILE = makefile
51 else
52 set MFILE = Makefile
53 endif
54endif
55if (! -f $MFILE) then
56 echo "Missing or invalid makefile: $MFILE"
57 exit 1
58endif
59
60set LLVMDIR = `awk '/LEVEL[ ]*=/ {print $NF}' $MFILE`
61
62if ($?LLVMDIR == 0 || ! -d $LLVMDIR) then
63 echo "Unable to find LEVEL or LEVEL is invalid ($LEVEL)"
64 exit 1
65endif
66
Vikram S. Adve39c36e82002-09-19 14:54:53 +000067set CMD = "gmake $GMAKE_OPTS && (cd $LLVMDIR/tools/$EXEC && gmake $GMAKE_OPTS)"
68
69if ($doit == 1) then
70 csh -f -c "$CMD"
71else
72 echo '(NOT EXECUTING) COMMAND:'
73 echo " $CMD"
74endif
75
76
77#=========================================================
78# CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED
79#=========================================================
80cleanup:
81 exit($pstatus)