The CodeEmitterGenerator used to consider ANY uninitialized field as being an
[oota-llvm.git] / utils / makellvm
1 #!/bin/csh -f
2
3 set pstatus = 0
4 onintr cleanup
5 alias usage 'echo "USAGE: $0:t [-h] [-n] [gmake-flag...] [VAR=...] [toolname (default: opt)]"; set pstatus = 1; goto cleanup'
6
7 set EXEC = opt
8 set GMAKE_OPTS = ""
9
10 set doit = 1
11 unset options_done
12 while ( !( $?options_done ) && ($#argv > 0))
13     switch ($argv[1])
14         case -h :
15             usage
16         case -f :
17             if ($#argv < 2) usage
18             shift argv; set MFILE = $argv[1]; shift argv; breaksw
19         case -n :
20             set doit = 0; shift argv; breaksw
21         case -* :
22             set GMAKE_OPTS = ( $GMAKE_OPTS $argv[1] ); shift argv; breaksw
23         default :
24             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
32     endsw
33 end
34
35 if ($#argv > 1) then
36     echo 'ERROR: More than one tool is not supported by "makellvm"'
37     usage
38 endif
39 if ($#argv > 0) then
40     set EXEC = $argv[1]
41 endif
42
43 ## Compute LLVMDIR: the root of the current LLVM tree.
44 ## It is recorded in the variable LEVEL in Makefile, to compute it
45 ## 
46 if (! $?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
54 endif
55 if (! -f $MFILE) then
56     echo "Missing or invalid makefile: $MFILE"
57     exit 1
58 endif
59
60 set LLVMDIR = `awk '/LEVEL[     ]*=/ {print $NF}' $MFILE`
61
62 if ($?LLVMDIR == 0 || ! -d $LLVMDIR) then
63     echo "Unable to find LEVEL or LEVEL is invalid ($LEVEL)"
64     exit 1
65 endif
66
67 set CMD = "gmake $GMAKE_OPTS && (cd $LLVMDIR/tools/$EXEC && gmake $GMAKE_OPTS)"
68
69 if ($doit == 1) then
70     csh -f -c "$CMD"
71 else
72     echo '(NOT EXECUTING) COMMAND:'
73     echo "  $CMD"
74 endif
75
76
77 #=========================================================
78 # CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED
79 #=========================================================
80 cleanup:
81     exit($pstatus)