blob: de3d288d7c3057b6864fc330df702b7dedb41198 [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. Advefb5e0602003-09-14 23:44:31 +00005alias usage 'echo "USAGE: $0:t [-h] [-n] [-obj obj-root] [gmake-flags] [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. Advefb5e0602003-09-14 23:44:31 +000022 case -obj :
23 set OBJROOT = $argv[1]; shift argv; shift argv; breaksw
Vikram S. Adveec6867e2003-09-08 15:32:47 +000024 case -d :
25 set doit = 0; set DEBUG = 1; shift argv; breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000026 case -* :
27 set GMAKE_OPTS = ( $GMAKE_OPTS $argv[1] ); shift argv; breaksw
28 default :
Vikram S. Advedf3ac862003-07-22 12:35:28 +000029 set optarg = `echo -n $argv[1] | sed 's/^[^=]*$//'`
30 if ($#optarg) then
31 set GMAKE_OPTS = ( $GMAKE_OPTS $optarg )
32 shift argv
33 else
34 set options_done
35 endif
36 breaksw
Vikram S. Adve39c36e82002-09-19 14:54:53 +000037 endsw
38end
Vikram S. Adve631484c2002-09-15 16:33:32 +000039
Vikram S. Advedf3ac862003-07-22 12:35:28 +000040if ($#argv > 1) then
41 echo 'ERROR: More than one tool is not supported by "makellvm"'
42 usage
43endif
Vikram S. Adve631484c2002-09-15 16:33:32 +000044if ($#argv > 0) then
Vikram S. Adve2d456602002-09-15 18:22:47 +000045 set EXEC = $argv[1]
Vikram S. Adve631484c2002-09-15 16:33:32 +000046endif
Vikram S. Adveec6867e2003-09-08 15:32:47 +000047if ($DEBUG) then
48 echo "DEBUG: EXEC = $EXEC"
49endif
Vikram S. Adve631484c2002-09-15 16:33:32 +000050
Vikram S. Advedf3ac862003-07-22 12:35:28 +000051## Compute LLVMDIR: the root of the current LLVM tree.
52## It is recorded in the variable LEVEL in Makefile, to compute it
53##
54if (! $?MFILE) then
55 if (-f GNUmakefile) then
56 set MFILE = GNUmakefile
57 else if (-f makefile) then
58 set MFILE = makefile
59 else
60 set MFILE = Makefile
61 endif
62endif
Vikram S. Adveec6867e2003-09-08 15:32:47 +000063if ($DEBUG) then
64 echo "DEBUG: MFILE = $MFILE"
65endif
Vikram S. Advedf3ac862003-07-22 12:35:28 +000066if (! -f $MFILE) then
67 echo "Missing or invalid makefile: $MFILE"
68 exit 1
69endif
70
71set LLVMDIR = `awk '/LEVEL[ ]*=/ {print $NF}' $MFILE`
Vikram S. Adveec6867e2003-09-08 15:32:47 +000072if ($DEBUG) then
73 echo "DEBUG: LLVMDIR = $LLVMDIR"
74endif
Vikram S. Advedf3ac862003-07-22 12:35:28 +000075
Vikram S. Adveec6867e2003-09-08 15:32:47 +000076if ($#LLVMDIR == 0 || ! -d "$LLVMDIR") then
Vikram S. Advefb5e0602003-09-14 23:44:31 +000077 echo "Unable to find LLVM src-root directory or directory is invalid."
Vikram S. Adveec6867e2003-09-08 15:32:47 +000078 echo "Are you within a valid LLVM directory for running gmake?"
Vikram S. Advedf3ac862003-07-22 12:35:28 +000079 exit 1
80endif
81
Vikram S. Advefb5e0602003-09-14 23:44:31 +000082if ($?OBJROOT == 0) then
83 ## Check if source root is obj-root by looking for Makefile.config there
84 if (-f ${LLVMDIR}/Makefile.config) then
85 set OBJROOT = ${LLVMDIR}
86 set BUILDROOT = .
87 else ## Otherwise assume a default location for OBJROOT
88 set OBJROOT = "/localhome/$USER/llvm"
89 set SRCROOT = `sh -c "cd $LLVMDIR; pwd | sed 's/\//\\\//g'"`
90 set CURSRCDIR = `echo $cwd | sed -e "s/${SRCROOT}//"`
91 set BUILDROOT = ${OBJROOT}/${CURSRCDIR}
92 unset SRCROOT CURSRCDIR
93 endif
94 echo "Using OBJ-ROOT = ${OBJROOT} (specify '-obj obj-root' to override)."
95endif
96if ($DEBUG) then
97 echo "DEBUG: BUILDROOT = $BUILDROOT"
98endif
99cd $BUILDROOT
100
Vikram S. Adve39c36e82002-09-19 14:54:53 +0000101set CMD = "gmake $GMAKE_OPTS && (cd $LLVMDIR/tools/$EXEC && gmake $GMAKE_OPTS)"
102
103if ($doit == 1) then
104 csh -f -c "$CMD"
105else
106 echo '(NOT EXECUTING) COMMAND:'
107 echo " $CMD"
108endif
109
110
111#=========================================================
112# CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED
113#=========================================================
114cleanup:
115 exit($pstatus)