blob: 553ea5379f9c01c8d34bbfe5a82c14780bdeb145 [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 = ""
Vikram S. Adveec6867e2003-09-08 15:32:47 +00009set DEBUG = 0
Vikram S. Adve39c36e82002-09-19 14:54:53 +000010
11set doit = 1
12unset options_done
13while ( !( $?options_done ) && ($#argv > 0))
14 switch ($argv[1])
15 case -h :
16 usage
Vikram S. Advedf3ac862003-07-22 12:35:28 +000017 case -f :
18 if ($#argv < 2) usage
19 shift argv; set MFILE = $argv[1]; shift argv; breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000020 case -n :
21 set doit = 0; shift argv; breaksw
Vikram S. Adveec6867e2003-09-08 15:32:47 +000022 case -d :
23 set doit = 0; set DEBUG = 1; shift argv; breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000024 case -* :
25 set GMAKE_OPTS = ( $GMAKE_OPTS $argv[1] ); shift argv; breaksw
26 default :
Vikram S. Advedf3ac862003-07-22 12:35:28 +000027 set optarg = `echo -n $argv[1] | sed 's/^[^=]*$//'`
28 if ($#optarg) then
29 set GMAKE_OPTS = ( $GMAKE_OPTS $optarg )
30 shift argv
31 else
32 set options_done
33 endif
34 breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000035 endsw
36end
Vikram S. Adve631484c2002-09-15 16:33:32 +000037
Vikram S. Advedf3ac862003-07-22 12:35:28 +000038if ($#argv > 1) then
39 echo 'ERROR: More than one tool is not supported by "makellvm"'
40 usage
41endif
Vikram S. Adve631484c2002-09-15 16:33:32 +000042if ($#argv > 0) then
Vikram S. Adve2d456602002-09-15 18:22:47 +000043 set EXEC = $argv[1]
Vikram S. Adve631484c2002-09-15 16:33:32 +000044endif
Vikram S. Adveec6867e2003-09-08 15:32:47 +000045if ($DEBUG) then
46 echo "DEBUG: EXEC = $EXEC"
47endif
Vikram S. Adve631484c2002-09-15 16:33:32 +000048
Vikram S. Advedf3ac862003-07-22 12:35:28 +000049## Compute LLVMDIR: the root of the current LLVM tree.
50## It is recorded in the variable LEVEL in Makefile, to compute it
51##
52if (! $?MFILE) then
53 if (-f GNUmakefile) then
54 set MFILE = GNUmakefile
55 else if (-f makefile) then
56 set MFILE = makefile
57 else
58 set MFILE = Makefile
59 endif
60endif
Vikram S. Adveec6867e2003-09-08 15:32:47 +000061if ($DEBUG) then
62 echo "DEBUG: MFILE = $MFILE"
63endif
Vikram S. Advedf3ac862003-07-22 12:35:28 +000064if (! -f $MFILE) then
65 echo "Missing or invalid makefile: $MFILE"
66 exit 1
67endif
68
69set LLVMDIR = `awk '/LEVEL[ ]*=/ {print $NF}' $MFILE`
Vikram S. Adveec6867e2003-09-08 15:32:47 +000070if ($DEBUG) then
71 echo "DEBUG: LLVMDIR = $LLVMDIR"
72endif
Vikram S. Advedf3ac862003-07-22 12:35:28 +000073
Vikram S. Adveec6867e2003-09-08 15:32:47 +000074if ($#LLVMDIR == 0 || ! -d "$LLVMDIR") then
75 echo "Unable to find LLVM obj-root directory or directory is invalid."
76 echo "Are you within a valid LLVM directory for running gmake?"
Vikram S. Advedf3ac862003-07-22 12:35:28 +000077 exit 1
78endif
79
Vikram S. Adve39c36e82002-09-19 14:54:53 +000080set CMD = "gmake $GMAKE_OPTS && (cd $LLVMDIR/tools/$EXEC && gmake $GMAKE_OPTS)"
81
82if ($doit == 1) then
83 csh -f -c "$CMD"
84else
85 echo '(NOT EXECUTING) COMMAND:'
86 echo " $CMD"
87endif
88
89
90#=========================================================
91# CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED
92#=========================================================
93cleanup:
94 exit($pstatus)