@@ -16,8 +16,20 @@ BUILD_WIN32=0
16
16
# Build 64 bit Windows toolchain
17
17
BUILD_WIN64=0
18
18
19
- # Build AVR-LibC
20
- BUILD_LIBC=1
19
+ # Build Binutils? Can be set on command line.
20
+ if [ -z ${BUILD_BINUTILS+x} ]; then
21
+ BUILD_BINUTILS=0
22
+ fi
23
+
24
+ # Build AVR-GCC? Can be set on command line.
25
+ if [ -z ${BUILD_GCC+x} ]; then
26
+ BUILD_GCC=0
27
+ fi
28
+
29
+ # Build AVR-LibC? Can be set on command line.
30
+ if [ -z ${BUILD_LIBC+x} ]; then
31
+ BUILD_LIBC=1
32
+ fi
21
33
22
34
# Output locations for built toolchains
23
35
PREFIX_LINUX=/opt/AVR/linux
50
62
51
63
NAME_BINUTILS=" binutils-2.32"
52
64
NAME_GCC=" gcc-9.1.0"
53
- NAME_LIBC=" avr-libc-SVN "
65
+ NAME_LIBC=" avr-libc.git "
54
66
55
67
HOST_WIN32=" i686-w64-mingw32"
56
68
HOST_WIN64=" x86_64-w64-mingw32"
@@ -82,29 +94,6 @@ makeDir()
82
94
mkdir -p " $1 "
83
95
}
84
96
85
- fixGCCAVR ()
86
- {
87
- # In GCC 7.1.0 there seems to be an issue with INT8_MAX and some other things being undefined in /gcc/config/avr/avr.c when building for Windows.
88
- # Adding '#include <stdint.h>' doesn't fix it, but manually defining the values does the trick.
89
-
90
- echo " Fixing missing defines..."
91
-
92
- DEFSFIX="
93
- #if (defined _WIN32 || defined __CYGWIN__)
94
- #define INT8_MIN (-128)
95
- #define INT16_MIN (-32768)
96
- #define INT8_MAX 127
97
- #define INT16_MAX 32767
98
- #define UINT8_MAX 0xff
99
- #define UINT16_MAX 0xffff
100
- #endif
101
- "
102
-
103
- ORIGINAL=$( cat ../gcc/config/avr/avr.c)
104
- echo " $DEFSFIX " > ../gcc/config/avr/avr.c
105
- echo " $ORIGINAL " >> ../gcc/config/avr/avr.c
106
- }
107
-
108
97
echo " Clearing output directories..."
109
98
[ $BUILD_LINUX -eq 1 ] && makeDir " $PREFIX_LINUX "
110
99
[ $BUILD_WIN32 -eq 1 ] && makeDir " $PREFIX_WIN32 "
@@ -118,25 +107,25 @@ CC=""
118
107
export CC
119
108
120
109
echo " Downloading sources..."
121
- rm -f $NAME_BINUTILS .tar.xz
122
- rm -rf $NAME_BINUTILS /
123
- wget ftp://ftp.mirrorservice.org/sites/ftp.gnu.org/gnu/binutils/$NAME_BINUTILS .tar.xz
124
- rm -f $NAME_GCC .tar.xz
125
- rm -rf $NAME_GCC /
126
- wget ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/$NAME_GCC /$NAME_GCC .tar.xz
110
+ if [ $BUILD_BINUTILS -eq 1 ]; then
111
+ rm -f $NAME_BINUTILS .tar.xz
112
+ rm -rf $NAME_BINUTILS /
113
+ wget ftp://ftp.mirrorservice.org/sites/ftp.gnu.org/gnu/binutils/$NAME_BINUTILS .tar.xz
114
+ fi
115
+
116
+ if [ $BUILD_GCC -eq 1 ]; then
117
+ rm -f $NAME_GCC .tar.xz
118
+ rm -rf $NAME_GCC /
119
+ wget ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/$NAME_GCC /$NAME_GCC .tar.xz
120
+ fi
121
+
127
122
if [ $BUILD_LIBC -eq 1 ]; then
128
- rm -f $NAME_LIBC .tar.bz2
129
123
rm -rf $NAME_LIBC /
130
- if [ " $NAME_LIBC " = " avr-libc-SVN" ]; then
131
- rm -f avrxmega3-v9.diff.bz2
132
- wget -O avrxmega3-v9.diff.bz2 https://savannah.nongnu.org/patch/download.php? file_id=45738
133
- svn co svn://svn.savannah.nongnu.org/avr-libc/trunk
134
- mv trunk/avr-libc $NAME_LIBC
135
- rm -rf trunk
136
- echo " Patching for XMEGA3 support"
137
- cat avrxmega3-v9.diff.bz2 | bzip2 -dc - | patch -d avr-libc-SVN -p0
124
+ if [ " $NAME_LIBC " = " avr-libc.git" ]; then
125
+ git clone https://github.com/stevenj/avr-libc3.git " $NAME_LIBC "
138
126
echo " Preparing"
139
127
cd $NAME_LIBC
128
+ git checkout 8e93ef44b707cdcddf46e5e8d770fd68c59829cc
140
129
./bootstrap
141
130
cd ..
142
131
else
@@ -153,35 +142,38 @@ confMake()
153
142
}
154
143
155
144
# Make AVR-Binutils
156
- echo " Making Binutils..."
157
- echo " Extracting..."
158
- tar xf $NAME_BINUTILS .tar.xz
159
- mkdir -p $NAME_BINUTILS /obj-avr
160
- cd $NAME_BINUTILS /obj-avr
161
- [ $BUILD_LINUX -eq 1 ] && confMake " $PREFIX_LINUX " " $OPTS_BINUTILS "
162
- [ $BUILD_WIN32 -eq 1 ] && confMake " $PREFIX_WIN32 " " $OPTS_BINUTILS " --host=$HOST_WIN32 --build=` ../config.guess`
163
- [ $BUILD_WIN64 -eq 1 ] && confMake " $PREFIX_WIN64 " " $OPTS_BINUTILS " --host=$HOST_WIN64 --build=` ../config.guess`
164
- cd ../../
145
+ if [ $BUILD_BINUTILS -eq 1 ]; then
146
+ echo " Making Binutils..."
147
+ echo " Extracting..."
148
+ tar xf $NAME_BINUTILS .tar.xz
149
+ mkdir -p $NAME_BINUTILS /obj-avr
150
+ cd $NAME_BINUTILS /obj-avr
151
+ [ $BUILD_LINUX -eq 1 ] && confMake " $PREFIX_LINUX " " $OPTS_BINUTILS "
152
+ [ $BUILD_WIN32 -eq 1 ] && confMake " $PREFIX_WIN32 " " $OPTS_BINUTILS " --host=$HOST_WIN32 --build=` ../config.guess`
153
+ [ $BUILD_WIN64 -eq 1 ] && confMake " $PREFIX_WIN64 " " $OPTS_BINUTILS " --host=$HOST_WIN64 --build=` ../config.guess`
154
+ cd ../../
155
+ fi
165
156
166
157
# Make AVR-GCC
167
- echo " Making GCC..."
168
- echo " Extracting..."
169
- tar xf $NAME_GCC .tar.xz
170
- mkdir -p $NAME_GCC /obj-avr
171
- cd $NAME_GCC
172
- chmod +x ./contrib/download_prerequisites
173
- ./contrib/download_prerequisites
174
- cd obj-avr
175
- # fixGCCAVR
176
- [ $BUILD_LINUX -eq 1 ] && confMake " $PREFIX_LINUX " " $OPTS_GCC "
177
- [ $BUILD_WIN32 -eq 1 ] && confMake " $PREFIX_WIN32 " " $OPTS_GCC " --host=$HOST_WIN32 --build=` ../config.guess`
178
- [ $BUILD_WIN64 -eq 1 ] && confMake " $PREFIX_WIN64 " " $OPTS_GCC " --host=$HOST_WIN64 --build=` ../config.guess`
179
- cd ../../
158
+ if [ $BUILD_GCC -eq 1 ]; then
159
+ echo " Making GCC..."
160
+ echo " Extracting..."
161
+ tar xf $NAME_GCC .tar.xz
162
+ mkdir -p $NAME_GCC /obj-avr
163
+ cd $NAME_GCC
164
+ chmod +x ./contrib/download_prerequisites
165
+ ./contrib/download_prerequisites
166
+ cd obj-avr
167
+ [ $BUILD_LINUX -eq 1 ] && confMake " $PREFIX_LINUX " " $OPTS_GCC "
168
+ [ $BUILD_WIN32 -eq 1 ] && confMake " $PREFIX_WIN32 " " $OPTS_GCC " --host=$HOST_WIN32 --build=` ../config.guess`
169
+ [ $BUILD_WIN64 -eq 1 ] && confMake " $PREFIX_WIN64 " " $OPTS_GCC " --host=$HOST_WIN64 --build=` ../config.guess`
170
+ cd ../../
171
+ fi
180
172
181
173
# Make AVR-LibC
182
174
if [ $BUILD_LIBC -eq 1 ]; then
183
175
echo " Making AVR-LibC..."
184
- if [ " $NAME_LIBC " != " avr-libc-SVN " ]; then
176
+ if [ " $NAME_LIBC " != " avr-libc.git " ]; then
185
177
echo " Extracting..."
186
178
bunzip2 -c $NAME_LIBC .tar.bz2 | tar xf -
187
179
fi
0 commit comments