-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathconfigure
executable file
·148 lines (133 loc) · 3.6 KB
/
configure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/sh
# $Id: configure 890 2009-04-21 17:14:44Z hoenicke $
#
# Generator for brickOS host-OS-dependend Makefile variables
#
# 15.10.02 - Version 1.0 M. Obenland
#
# 21.10.02 - Version 1.0 Updates S. Moraco
#
# 31.10.02 - Version 1.0a Changed name separation routine
# to use dirname / basename to handle
# 'gcc' in pathname M. Obenland
#
# 01.06.03 - Version 1.10 Changed array of search paths to a list
# for compatibility with POSIX /bin/sh
# F. Gifford [email protected]
#
echo ""
echo "Welcome to the brickOS Makefile configurator."
echo "Attempting to find the gcc compiler for the h8300. (This might take some time.)"
echo ""
#
# check for known files in known locations, first,
# so can avoid expensive search
#
# known PATHs in which h8*gcc may be found
TOOL_PATH="/usr/local/brickbot/bin
/usr/local/bin
/usr/bin
/usr/local/brickos/bin
/usr/local/lego/bin
/usr/local/rcx/bin
/usr/local/h8300-hms/bin
/usr/h8300-hitachi-hms/bin
/usr/local/crossgcc/h8300-hitachi-hms/bin"
# known PREFIXs of h8*gcc
TOOL_PREFIX="h8300-hms-
h8300hms-
h8300-hitachi-hms-
h8300-hitachi-coff-"
HMSFULL=""
# for each path, do...
for TOOL_PATH_CANDIDATE in $TOOL_PATH
do
# for each basename prefix. do...
for TOOL_PREFIX_CANDIDATE in $TOOL_PREFIX
do
GCCBASE="$TOOL_PATH_CANDIDATE/${TOOL_PREFIX_CANDIDATE}gcc"
#echo "(DBG)Testing GCCBASE=[$GCCBASE]"
# for each suffix (.exe and empty str), do...
for EXT in ".exe" ""
do
GCCFSPEC="${GCCBASE}$EXT"
if test -f "$GCCFSPEC"
then
HMSFULL="$GCCFSPEC"
break # have answer, exit inner loop
fi
done
if test -n "$HMSFULL"
then
break # have answer, exit middle loop
fi
done
if test -n "$HMSFULL"
then
break # have answer, exit outer loop
fi
done
#
# if didn't find in expected location...
# search filesystem for full name of hitachi gcc compiler and path
#
# This can be quite harmful. Uncomment if you really want it.
#if test -z "$HMSFULL"
#then
# HMSFULL=`find / -type f \( -name 'h8*gcc' -o -name 'h8*gcc.exe' \) -print`
#fi
#
# if no compiler is found, exit
#
if test -z "$HMSFULL"
then
echo "No gcc compiler found for the h8300, please install compiler or edit" \
"the configure script and try again."
exit 1
fi
#
# CrossToolPrefix is full path and compiler name without 'gcc'
#
DIRNAME=`dirname $HMSFULL`
BASENAME=`basename $HMSFULL`
CROSSTOOLPREFIX=$DIRNAME/`echo $BASENAME | sed "s/gcc.*//"`
echo " - CrossToolPrefix = "$CROSSTOOLPREFIX
#
# look for .exe in the compiler name. This indicates Windows environment
# which means that CYGWIN or DJGPP toolset is being used
#
case "$HMSFULL" in
*.exe)
echo " - Found Cygwin/DJGPP system"
SED_SFLAG=1
EXT=.exe
CC=gcc
CFLAGS="-D_WIN32 -O2 -Wall"
CFLG_PE='+'
;;
*)
echo " - Found Linux/Unix system"
SED_SFLAG=""
EXT=""
CC=gcc
CFLAGS="-O2 -Wall"
CFLG_PE=""
;;
esac
echo ""
MAKEDEPEND="\$(CC) -M"
BRICKOS_ROOT=`pwd`
CURR_MAKEFILE=Makefile.common
NEW_MAKEFILE=${CURR_MAKEFILE}.new
PRIOR_MAKEFILE=${CURR_MAKEFILE}.bak
cat > Makefile.config <<EOF
CROSSTOOLPREFIX=$CROSSTOOLPREFIX
SED_SFLAG=$SED_SFLAG
EXT=$EXT
CC=\$(TOOLPREFIX)$CC
CFLAGS+=$CFLAGS
EOF
exit 0