1453
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
1 #! /usr/bin/env bash
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
2
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
3 # Default to 'ldc' next to this file
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
4 LDC=`basename "$0"`/ldc2
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
5 if [ ! -x "$LDC" ]; then
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
6 # If that doesn't work, assume this script was called via $PATH
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
7 # and do the same for ldc
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
8 if which ldc2 &> /dev/null; then
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
9 LDC=ldc2
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
10 else
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
11 echo 'ldc not found, check your installation' >/dev/stderr
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
12 exit 1
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
13 fi
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
14 fi
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
15
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
16 declare -a ARGS
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
17 IDX=0
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
18 for arg; do
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
19 case "$arg" in
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
20 -C*)
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
21 # turn -Cfoo into -foo.
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
22 # Useful for passing -inline to ldc, for instance.
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
23 arg="-${arg:2}"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
24 ;;
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
25 -debug|-debug=*|-version=*)
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
26 arg="-d$arg"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
27 ;;
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
28 -inline)
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
29 arg="-enable-inlining"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
30 ;;
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
31 -fPIC)
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
32 arg="-relocation-model=pic"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
33 ;;
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
34 --a|--b|--c|--f|--r|--w|--x|--y)
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
35 # "Hidden debug switches"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
36 # Are these ever used?
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
37 arg="-hidden-debug${arg:1}"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
38 ;;
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
39 esac
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
40 ARGS[IDX++]="$arg"
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
41 done
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
42
|
Robert Clipsham <robert@octarineparrot.com>
parents:
diff
changeset
|
43 exec "$LDC" "${ARGS[@]}"
|