-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
191 lines (144 loc) · 4.73 KB
/
README
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#
# This is a makefile that allows you to configure the versions of the source code and install directories for avr-gcc#
#Assumptions: curl is installed
#You are familiar sudo, because the install targets use sudo for installing to the system
#You will put the executables in the PATH appropriately
Makefile.master are the global settings and compilation.
Makefile.gccver are the local and overide settings and patches
The "all" target and builds the complete package and install everything in a default ./out/bin
In order to try this out you need to do the following:
git clone git@github.com:ricklon/avrgcc-macosx-makefile.git
cd avrgcc-macosx-makefile
make -f Makefile.435
About 20 minutes later you should have a working locally compiled binary version of avr gcc.
For quick reference all open avr gcc bugs can be found using this url:
#gcc avr bugs all open and closed since 4.3.5 http://tinyurl.com/23wjmhv good source of patches
avr libc open bugs: http://savannah.nongnu.org/bugs/?group=avr-libc
MORE DEATILS:
The Makefile has the following targets, and it's recommended to run them in this order:
setup:
getsources: setup
unpacksources:
build-gmp:
install-gmp:
build-mpfr:
install-mpfr:
build-mpc:
install-mpc:
build-binutils:
install-binutils:
build-linkprereqs:
build-avrgccgxx:
install-avrgccgxx:
build-avrlibc:
install-avrlibc:
build-avrdude:
install-avrdude:
build-avrgdb:
install-avrgdb:
The code should be working as expected at this point for compiling. Feel free to create tests to verify
that it is correctly working.
This process was based heavily off of this websites documentation:
The following steps were used for the initial development of the Makeile.
Get sources:
curl -O ftp://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-g++-4.5.1.tar.gz
curl -O ftp://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-core-4.5.1.tar.gz
curl -O http://mirror.its.uidaho.edu/pub/savannah/avrdude/avrdude-5.9.tar.gz
curl -O http://nongnu.askapache.com/avr-libc/avr-libc-1.7.0.tar.bz2
curl -O http://ftp.gnu.org/gnu/gdb/gdb-7.1.tar.gz
curl -O ftp://ftp.gmplib.org/pub/gmp-4.3.2/gmp-4.3.2.tar.bz2
curl -O http://www.mpfr.org/mpfr-2.3.1/mpfr-2.3.1.tar.gz
curl -O http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz
curl -O ftp://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.gz
curl -O http://ftp.gnu.org/gnu/libtool/libtool-2.2.10.tar.gz
Unpack Sources:
bunzip2 ../src/gmp-4.3.2.tar.bz2
tar xvf gmp-4.3.2.tar
tar xvzf ../src/mpc-0.8.2.tar.gz
tar xvzf ../src/mpfr-2.3.1.tar.gz
#unpack gcc-4.5.1
tar xvzf ../src/binutils-2.20.1.tar.gz
tar xvzf ../src/gcc-core-4.5.1.tar.gz
tar xvzf ../src/gcc-g++-4.5.1.tar.gz
bunzip2 ../src/avr-libc-1.7.0.tar.bz2
tar xvf ../src/avr-libc-1.7.0.tar
tar xvzf ../src/avrdude-5.9.tar.gz
tar xvzf ../src/gdb-7.1.tar.gz
#Build prereqs for gcc,g++
##GMP, MPFR and/or MPC are required for the following steps
#gmp
cd gmp-4.3.2/
mkdir tmp
cd tmp
../configure --prefix=/usr/local/test/lib
make
make check
sudo make install
ls /usr/local/test/lib
#mpfr
cd cd mpfr-2.3.1/
mkdir tmp
cd tmp
../configure --prefix=/usr/local/test/lib --with-gmp-build=../../gmp-4.3.2/tmp
#../configure --prefix=/usr/local/test/lib --with-gmp=/usr/local/test/lib/lib
make
make check
sudo make install
#mpc
cd mpc-0.8.2
mkdir tmp
cd tmp
./configure --prefix=/usr/local/test/lib --with-gmp=/usr/local/test/lib
make
sudo make install
#all of the above is needed, then this shortcut of link to the built source works
cd gcc-4.5.1
ln -s ../mpfr-2.3.1 mpfr
ln -s ../mpc-0.8.2/ mpc
ln -s ../gmp-4.3.2/ gmp
#avr-binutils
cd binutils-2.20.1
mkdir tmp
cd tmp
../configure --target=avr --prefix=/usr/local/test/avr --disable-nsl --enable-install-libbfd --disable-werror
make
sudo make install
#Confirm working
/usr/local/test/avr/bin/avr-as --help
#avr-gcc,g++
#GMP, MPFR and/or MPC are required for the following steps
#Build and simlink the directoris into the source tree
cd gcc-4.5.1
#symlink workaround
ln -s ../mpfr-2.3.1 mpfr
ln -s ../mpc-0.8.2/ mpc
ln -s ../gmp-4.3.2/ gmp
mkdir tmp
cd tmp
#my custom library location is not working
#../configure --target=avr --prefix=/usr/local/test/avr --disable-nsl --enable-languages=c,c++ --disable-libssp -with-gmp=/usr/local/test/lib/lib --with-mpfr=/usr/local/test/lib/lib --with-mpc=/usr/local/test/lib/lib
../configure --target=avr --prefix=/usr/local/test/avr --disable-nsl --enable-languages=c,c++ --disable-libssp
make
sudo make install
/usr/local/test/avr/avr-gcc --version
#avr-libc
cd avr-libc-1.7.0/
mkdir tmp
cd tmp
../configure --build=`../config.guess` --host=avr --prefix=/usr/local/test/avr
make
sudo make install
#avrdude
avrdude-5.9/
mkdir tmp
cd tmp
../configure --prefix=/usr/local/test/avr
make
sudo make install
#var-gdb
cd gdb-7.1/
mkdir tmp
cd tmp
../configure --target=avr --prefix=/usr/local/test/avr --disable-werror
make
sudo make install