File: tools-install.dox

package info (click to toggle)
avr-libc 1%3A1.6.2.cvs20080610-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 14,848 kB
  • ctags: 55,619
  • sloc: ansic: 92,267; asm: 6,692; sh: 4,131; makefile: 2,481; python: 976; pascal: 426; perl: 116
file content (777 lines) | stat: -rw-r--r-- 27,297 bytes parent folder | download
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
/* Copyright (c) 2002,2005, Theodore Roth
   Copyright (c) 2006, Joerg Wunsch
   Copyright (c) 2007, Eric B. Weddington
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:

   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.
   * Neither the name of the copyright holders nor the names of
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE. */

/* $Id: tools-install.dox,v 1.17 2007/12/20 14:17:56 joerg_wunsch Exp $ */

/** 

\page install_tools Building and Installing the GNU Tool Chain
\addindex installation

This chapter shows how to build and install, from source code, a complete 
development environment for the AVR processors using the GNU toolset. There are 
two main sections, one for Linux, FreeBSD, and other Unix-like operating systems, 
and another section for Windows.

\section install_unix Building and Installing under Linux, FreeBSD, and Others

The default behaviour for most of these tools is to install every thing under
the \c /usr/local directory.  In order to keep the AVR tools separate from the
base system, it is usually better to install everything into
<tt>/usr/local/avr</tt>.  If the \c /usr/local/avr directory does not exist,
you should create it before trying to install anything.  You will need
<tt>root</tt> access to install there.  If you don't have root access to the
system, you can alternatively install in your home directory, for example, in
<tt>$HOME/local/avr</tt>.  Where you install is a completely arbitrary
decision, but should be consistent for all the tools.

You specify the installation directory by using the <tt>--prefix=dir</tt>
option with the \c configure script.  It is important to install all the AVR
tools in the same directory or some of the tools will not work correctly.  To
ensure consistency and simplify the discussion, we will use \c $PREFIX to
refer to whatever directory you wish to install in.  You can set this as an
environment variable if you wish as such (using a Bourne-like shell):

\addindex $PREFIX
\addindex --prefix
\verbatim
$ PREFIX=$HOME/local/avr
$ export PREFIX
\endverbatim

\addindex $PATH
\anchor path \note Be sure that you have your \c PATH environment variable set
to search the directory you install everything in \e before you start
installing anything.  For example, if you use <tt>--prefix=$PREFIX</tt>, you
must have \c $PREFIX/bin in your exported <tt>PATH</tt>. As such:

\verbatim
$ PATH=$PATH:$PREFIX/bin
$ export PATH
\endverbatim

\warning If you have \c CC set to anything other than \c avr-gcc in your
environment, this will cause the configure script to fail. It is best to not
have \c CC set at all.

\note It is usually the best to use the latest released version of
each of the tools.

\section required_tools Required Tools
\addindex tools, required

- <b>GNU Binutils</b><br>
  http://sources.redhat.com/binutils/ <br>
  \ref install_avr_binutils "Installation"

- <b>GCC</b><br>
  http://gcc.gnu.org/ <br>
  \ref install_avr_gcc "Installation"

- <b>AVR Libc</b><br>
  http://savannah.gnu.org/projects/avr-libc/ <br>
  \ref install_avr_libc "Installation"<br>

\section optional_tools Optional Tools
\addindex tools, optional

You can develop programs for AVR devices without the following tools.  They may
or may not be of use for you.

- <b>AVRDUDE</b><br>
  http://savannah.nongnu.org/projects/avrdude/ <br>
  \ref install_avrprog "Installation" <br>
  \ref using_avrprog "Usage Notes"

- <b>GDB</b><br>
  http://sources.redhat.com/gdb/ <br>
  \ref install_gdb "Installation"<br>

- <b>SimulAVR</b><br>
  http://savannah.gnu.org/projects/simulavr/ <br>
  \ref install_simulavr "Installation"

- <b>AVaRICE</b><br>
  http://avarice.sourceforge.net/ <br>
  \ref install_avarice "Installation"<br>



\section install_avr_binutils GNU Binutils for the AVR target
\addindex installation, binutils

The <tt><b>binutils</b></tt> package provides all the low-level utilities
needed in building and manipulating object files.  Once installed, your
environment will have an AVR assembler (<tt>avr-as</tt>), linker
(<tt>avr-ld</tt>), and librarian (<tt>avr-ar</tt> and <tt>avr-ranlib</tt>).
In addition, you get tools which extract data from object files
(<tt>avr-objcopy</tt>), dissassemble object file information
(<tt>avr-objdump</tt>), and strip information from object files
(<tt>avr-strip</tt>).  Before we can build the C compiler, these tools need to
be in place.

Download and unpack the source files:

\verbatim
$ bunzip2 -c binutils-<version>.tar.bz2 | tar xf -
$ cd binutils-<version>
\endverbatim

\note Replace \c &lt;version&gt; with the version of the package you downloaded.

\note If you obtained a gzip compressed file (.gz), use <tt>gunzip</tt>
instead of <tt>bunzip2</tt>.

It is usually a good idea to configure and build <tt><b>binutils</b></tt> in a
subdirectory so as not to pollute the source with the compiled files.  This is
recommended by the <tt><b>binutils</b></tt> developers.

\verbatim
$ mkdir obj-avr
$ cd obj-avr
\endverbatim

The next step is to configure and build the tools. This is done by supplying
arguments to the <tt>configure</tt> script that enable the AVR-specific
options.

\verbatim
$ ../configure --prefix=$PREFIX --target=avr --disable-nls
\endverbatim

If you don't specify the <tt>--prefix</tt> option, the tools will get
installed in the \c /usr/local hierarchy (i.e. the binaries will get installed
in <tt>/usr/local/bin</tt>, the info pages get installed in
<tt>/usr/local/info</tt>, etc.) Since these tools are changing frequently, It
is preferrable to put them in a location that is easily removed.

When <tt>configure</tt> is run, it generates a lot of messages while it
determines what is available on your operating system. When it finishes, it
will have created several <tt>Makefile</tt>s that are custom tailored to your
platform. At this point, you can build the project.

\verbatim
$ make
\endverbatim

\note BSD users should note that the project's <tt>Makefile</tt> uses GNU
<tt>make</tt> syntax. This means FreeBSD users may need to build the tools by
using <tt>gmake</tt>.

If the tools compiled cleanly, you're ready to install them. If you specified
a destination that isn't owned by your account, you'll need <tt>root</tt>
access to install them. To install:

\verbatim
$ make install
\endverbatim

You should now have the programs from binutils installed into
<tt>$PREFIX/bin</tt>.  Don't forget to \ref path "set your PATH" environment
variable before going to build avr-gcc.

\note The official version of binutils might lack support for recent AVR
devices.  A patch that adds more AVR types can be found at
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/avr-binutils/files/patch-newdevices



\section install_avr_gcc GCC for the AVR target
\addindex installation, gcc

\warning You <em><b>must</b></em> install 
\ref install_avr_binutils "avr-binutils" and make sure your 
\ref path "path is set" properly before installing avr-gcc.

The steps to build \c avr-gcc are essentially same as for 
\ref install_avr_binutils "binutils":

\verbatim
$ bunzip2 -c gcc-<version>.tar.bz2 | tar xf -
$ cd gcc-<version>
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX --target=avr --enable-languages=c,c++ \
    --disable-nls --disable-libssp --with-dwarf2
$ make
$ make install
\endverbatim

To save your self some download time, you can alternatively download only the
<tt>gcc-core-\<version\>.tar.bz2</tt> and <tt>gcc-c++-\<version\>.tar.bz2</tt>
parts of the gcc.  Also, if you don't need C++ support, you only need the core
part and should only enable the C language support.

\note Early versions of these tools did not support C++.

\note The stdc++ libs are not included with C++ for AVR due to the size
limitations of the devices.

\note The official version of GCC might lack support for recent AVR
devices.  A patch that adds more AVR types can be found at
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/avr-gcc/files/patch-newdevices



\section install_avr_libc AVR Libc
\addindex installation, avr-libc

\warning You <em><b>must</b></em> install 
\ref install_avr_binutils "avr-binutils",
\ref install_avr_gcc "avr-gcc" and make sure your
\ref path "path is set" properly before installing avr-libc.

\note If you have obtained the latest avr-libc from cvs, you will have to run
the \c bootstrap script before using either of the build methods described below.

To build and install avr-libc:

\verbatim
$ gunzip -c avr-libc-<version>.tar.gz | tar xf -
$ cd avr-libc-<version>
$ ./configure --prefix=$PREFIX --build=`./config.guess` --host=avr
$ make
$ make install
\endverbatim


\section install_avrprog AVRDUDE
\addindex installation, avrprog
\addindex installation, avrdude

\note It has been ported to windows (via MinGW or cygwin), Linux and Solaris. Other Unix systems
should be trivial to port to.

<tt><b>avrdude</b></tt> is part of the FreeBSD ports system. To install it,
simply do the following:

\verbatim
# cd /usr/ports/devel/avrdude
# make install
\endverbatim

\note Installation into the default location usually requires root
permissions.  However, running the program only requires access
permissions to the appropriate \c ppi(4) device.

Building and installing on other systems should use the \c configure system,
as such:

\verbatim
$ gunzip -c avrdude-<version>.tar.gz | tar xf -
$ cd avrdude-<version>
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX
$ make
$ make install
\endverbatim



\section install_gdb GDB for the AVR target
\addindex Installation, gdb

GDB also uses the \c configure system, so to build and install:

\verbatim
$ bunzip2 -c gdb-<version>.tar.bz2 | tar xf -
$ cd gdb-<version>
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX --target=avr
$ make
$ make install
\endverbatim

\note If you are planning on using <tt>avr-gdb</tt>, you will probably want to
install either \ref install_simulavr "simulavr" or
\ref install_avarice "avarice" since avr-gdb needs one of these to run as a
a remote target backend.



\section install_simulavr SimulAVR
\addindex installation, simulavr

SimulAVR also uses the \c configure system, so to build and install:

\verbatim
$ gunzip -c simulavr-<version>.tar.gz | tar xf -
$ cd simulavr-<version>
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX
$ make
$ make install
\endverbatim

\note You might want to have already installed
\ref install_avr_binutils "avr-binutils",
\ref install_avr_gcc "avr-gcc" and 
\ref install_avr_libc "avr-libc"
if you want to have the test programs built in the simulavr source.



\section install_avarice AVaRICE
\addindex installation, avarice

\note These install notes are not applicable to avarice-1.5 or older. You
probably don't want to use anything that old anyways since there have been
many improvements and bug fixes since the 1.5 release.

AVaRICE also uses the \c configure system, so to build and install:

\verbatim
$ gunzip -c avarice-<version>.tar.gz | tar xf -
$ cd avarice-<version>
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX
$ make
$ make install
\endverbatim

\note AVaRICE uses the BFD library for accessing various binary file formats.
You may need to tell the configure script where to find the lib and headers
for the link to work. This is usually done by invoking the configure script
like this (Replace <tt>\<hdr_path\></tt> with the path to the \c bfd.h file on
your system. Replace <tt>\<lib_path\></tt> with the path to \c libbfd.a on your
system.):

\verbatim
$ CPPFLAGS=-I<hdr_path> LDFLAGS=-L<lib_path> ../configure --prefix=$PREFIX
\endverbatim



\section install_windows Building and Installing under Windows

Building and installing the toolchain under Windows requires more effort because
all of the tools required for building, and the programs themselves, are mainly
designed for running under a POSIX environment such as Unix and Linux. Windows
does not natively provide such an environment.

There are two projects available that provide such an environment, Cygwin and
MinGW/MSYS. There are advantages and disadvantages to both. Cygwin provides a 
very complete POSIX environment that allows one to build many Linux based tools
from source with very little or no source modifications. However, POSIX 
functionality is provided in the form of a DLL that is linked to the application.
This DLL has to be redistributed with your application and there are issues if 
the Cygwin DLL already exists on the installation system and different versions
of the DLL. On the other hand, MinGW/MSYS can compile code as native Win32
applications. However, this means that programs designed for Unix and Linux (i.e.
that use POSIX functionality) will not compile as MinGW/MSYS does not provide
that POSIX layer for you. Therefore most programs that compile on both types of
host systems, usually must provide some sort of abstraction layer to allow an
application to be built cross-platform. 

MinGW/MSYS does provide somewhat of a POSIX environment that allows you to 
build Unix and Linux applications as they woud normally do, with a \c configure 
step and a \c make step. Cygwin also provides such an environment. This means
that building the AVR toolchain is very similar to how it is built in Linux,
described above. The main differences are in what the PATH environment variable 
gets set to, pathname differences, and the tools that are required to build the 
projects under Windows. We'll take a look at the tools next.


\section install_windows_tools Tools Required for Building the Toolchain for Windows

These are the tools that are currently used to build WinAVR 20070525 (or later).
This list may change, either the version of the tools, or the tools themselves,
as improvements are made.

- <b>MinGW/MSYS</b><br>
    <http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe?use_mirror=superb-east>
    - Put MinGW-5.1.3.exe in it's own directory (for example: C:\\MinGWSetup)
    - Run MinGW-5.1.3.exe
    - Select "Download and install"
    - Select "Current" package.
    - Select type of install: Full.

- <b>Install MSYS-1.0.10.exe package.</b><br>
    <http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download>
    - Default selections
    - Batch file will ask:
        - "Do you wish to continue with the post install?" Press "y" and press enter.
        - "Do you have MinGW installed?" Press "y" and press enter.
        - "Where is your MinGW installation?" Type in "c:/mingw" (without quotes) and press enter
        - "Do you wish for me to add mount bindings for c:/mingw to /mingw?" Press "y" and press enter.
        - It will display some messages on the screen, then it will display: "Press any key to continue . . .". Press any key.

- <b>Edit c:\\msys\\1.0\\msys.bat</b><br>
    Change line (should be line 41):
    \verbatim
        if EXIST rxvt.exe goto startrxvt
    \endverbatim
    to:
    \verbatim
        rem if EXIST rxvt.exe goto startrxvt
    \endverbatim
    to remark out this line. Doing this will cause MSYS to always use the bash shell and not the rxvt shell.

\note The order of the next three is important. Install MSYS Developer toolkit before the autotools.

- <b>MSYS Developer Toolkit version 1.0.1</b><br>
    - This is needed to build avr-libc in MinGW.
    - <http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe?use_mirror=internap>
    - Single file installer executable. Install.

- <b>autoconf 2.59 from the "MSYS Developer Toolkit" release</b><br>
    - autoconf 2.59/2.60 is needed to build avr-libc in MinGW.
    - <http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2?use_mirror=internap>
    - Extract to c:\\msys\\1.0
    
- <b>automake 1.8.2</b><br>
    - automake 1.8/1.9 is needed to build avr-libc in MinGW.
    - <http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2?use_mirror=internap>
    - Extract to c:\\msys\\1.0


- <b>Install Cygwin</b><br>
    - Install everything, all users, UNIX line endings. This will take a *long* time.
    A fat internet pipe is highly recommended. It is also recommended that you 
    download all to a directory first, and then install from that directory to
    your machine.
 
\note MPFR requires GMP, so build it first.

- <b>Build GMP for MinGW</b><br>
    - Version 4.2.1
    - <http://gmplib.org/>
    - Build script:
        \verbatim
        ./configure  2>&1 | tee gmp-configure.log
        make         2>&1 | tee gmp-make.log
        make check   2>&1 | tee gmp-make-check.log
        make install 2>&1 | tee gmp-make-install.log
        \endverbatim
    - GMP headers will be installed under /usr/local/include and library installed
    under /usr/local/lib.

- <b>Build MPFR for MinGW</b><br>
    - Version 2.2.1
    - <http://www.mpfr.org/>
    - Build script:
        \verbatim
        ./configure --with-gmp=/usr/local 2>&1 | tee mpfr-configure.log
        make         2>&1 | tee mpfr-make.log
        make check   2>&1 | tee mpfr-make-check.log
        make install 2>&1 | tee mpfr-make-install.log
        \endverbatim
    - MPFR headers will be installed under /usr/local/include and library installed
    under /usr/local/lib.
 
- <b>Install Doxygen</b><br>
    - Version 1.4.7
    - <http://www.stack.nl/~dimitri/doxygen/>
    - Download and install.

- <b>Install NetPBM</b><br>
    - Version 10.27.0
    - From the GNUWin32 project: <http://gnuwin32.sourceforge.net/packages.html>
    - Download and install.

- <b>Install fig2dev</b><br>
    - Version 3.2 Patchlevel 5-alpha7
    - From WinFig 1.71: <http://www.schmidt-web-berlin.de/winfig/>
    - Unzip the download file and install in a location of your choice.

- <b>Install MiKTex</b><br>
    - Version 2.5
    - <http://miktex.org/>
    - Download and install.

- <b>Install Ghostscript</b><br>
    - Version 8.54
    - <http://www.cs.wisc.edu/~ghost/>
    - Download and install.

- Set the TEMP and TMP environment variables to <b>c:\\temp</b> or to the short filename 
    version. This helps to avoid NTVDM errors during building.


\section install_windows_building Building the Toolchain for Windows

All directories in the PATH enviornment variable should be specified using their 
short filename (8.3) version. This will also help to avoid NTVDM errors during
building. These short filenames can be specific to each machine.

Build the tools below in MSYS.

- <b>Binutils</b><br>
    - Open source code pacakge and patch as necessary.
    - Configure and build in a directory outside of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /mingw/bin
        - c:/cygwin/bin
        - \<install directory\>/bin
    - Configure
        \verbatim
        CFLAGS=-D__USE_MINGW_ACCESS  \
        ../$archivedir/configure \
            --prefix=$installdir \
            --target=avr \
            --disable-nls \
            --enable-doc \
            --datadir=$installdir/doc/binutils \
            --with-gmp=/usr/local \
            --with-mpfr=/usr/local \
            2>&1 | tee binutils-configure.log
        \endverbatim
    - Make
        \verbatim
        make all html install install-html 2>&1 | tee binutils-make.log
        \endverbatim
    - Manually change documentation location.


- <b>GCC</b><br>
    - Open source code pacakge and patch as necessary.
    - Configure and build in a directory outside of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /mingw/bin
        - c:/cygwin/bin
        - \<install directory\>/bin
    - Configure
        \verbatim
        CFLAGS=-D__USE_MINGW_ACCESS  \
        ../gcc-$version/configure \
            --prefix=$installdir \
            --target=$target \
            --enable-languages=c,c++ \
            --with-dwarf2 \
            --enable-win32-registry=WinAVR-$release \
            --disable-nls \
            --with-gmp=/usr/local \
            --with-mpfr=/usr/local \
            --enable-doc \
            --disable-libssp \
            2>&1 | tee $package-configure.log
        \endverbatim
    - Make
        \verbatim
        make all html install 2>&1 | tee $package-make.log
        \endverbatim
    - Manually copy the HTML documentation from the source code tree to the
    installation tree.


- <b>avr-libc</b><br>
    - Open source code package.
    - Configure and build at the top of the source code tree.
    - Set PATH, in order:
        - /usr/local/bin
        - /mingw/bin
        - /bin
        - \<MikTex executables\>
        - \<install directory\>/bin
        - \<Doxygen executables\>
        - \<NetPBM executables\>
        - \<fig2dev executables\>
        - \<Ghostscript executables\>
        - c:/cygwin/bin
    - Configure
        \verbatim
        ./configure \
            --host=avr \
            --prefix=$installdir \
            --enable-doc \
            --disable-versioned-doc \
            --enable-html-doc \
            --enable-pdf-doc \
            --enable-man-doc \
            --mandir=$installdir/man \
            --datadir=$installdir \
            2>&1 | tee $package-configure.log 
        \endverbatim
    - Make
        \verbatim
        make all install 2>&1 | tee $package-make.log
        \endverbatim
    - Manually change location of man page documentation.
    - Move the examples to the top level of the install tree.
    - Convert line endings in examples to Windows line endings.
    - Convert line endings in header files to Windows line endings.

- <b>AVRDUDE</b><br>
    - Open source code package.
    - Configure and build at the top of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /mingw/bin
        - c:/cygwin/bin
        - \<install directory\>/bin
    - Set location of LibUSB headers and libraries
        \verbatim
        export CPPFLAGS="-I../../libusb-win32-device-bin-$libusb_version/include"
        export CFLAGS="-I../../libusb-win32-device-bin-$libusb_version/include"
        export LDFLAGS="-L../../libusb-win32-device-bin-$libusb_version/lib/gcc"
        \endverbatim
    - Configure
        \verbatim
        ./configure \
            --prefix=$installdir \
            --datadir=$installdir \
            --sysconfdir=$installdir/bin \
            --enable-doc \
            --disable-versioned-doc \
            2>&1 | tee $package-configure.log 
        \endverbatim
    - Make
        \verbatim
        make -k all install 2>&1 | tee $package-make.log
        \endverbatim
    - Convert line endings in avrdude config file to Windows line endings.
    - Delete backup copy of avrdude config file in install directory if exists.

- <b>Insight/GDB</b><br>
    - Open source code pacakge and patch as necessary.
    - Configure and build in a directory outside of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /mingw/bin
        - c:/cygwin/bin
        - \<install directory\>/bin
    - Configure
        \verbatim
        CFLAGS=-D__USE_MINGW_ACCESS  \
        LDFLAGS='-static' \
        ../$archivedir/configure \
            --prefix=$installdir \
            --target=avr \
            --with-gmp=/usr/local \
            --with-mpfr=/usr/local \
            --enable-doc \
            2>&1 | tee insight-configure.log
        \endverbatim
    - Make
        \verbatim
        make all install 2>&1 | tee $package-make.log
        \endverbatim

- <b>SRecord</b><br>
    - Open source code package.
    - Configure and build at the top of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /mingw/bin
        - c:/cygwin/bin
        - \<install directory\>/bin
    - Configure
        \verbatim
        ./configure \
            --prefix=$installdir \
            --infodir=$installdir/info \
            --mandir=$installdir/man \
            2>&1 | tee $package-configure.log 
        \endverbatim
    - Make
        \verbatim
        make all install 2>&1 | tee $package-make.log
        \endverbatim


Build the tools below in Cygwin.

- <b>AVaRICE</b><br>
    - Open source code package.
    - Configure and build in a directory outside of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - \<install directory\>/bin
    - Set location of LibUSB headers and libraries
        \verbatim
        export CPPFLAGS=-I$startdir/libusb-win32-device-bin-$libusb_version/include
        export CFLAGS=-I$startdir/libusb-win32-device-bin-$libusb_version/include
        export LDFLAGS="-static -L$startdir/libusb-win32-device-bin-$libusb_version/lib/gcc "
        \endverbatim
    - Configure
        \verbatim
        ../$archivedir/configure \
        --prefix=$installdir \
        --datadir=$installdir/doc \
        --mandir=$installdir/man \
        --infodir=$installdir/info \
        2>&1 | tee avarice-configure.log
        \endverbatim
    - Make
        \verbatim
        make all install 2>&1 | tee avarice-make.log
        \endverbatim

- <b>SimulAVR</b><br>
    - Open source code package.
    - Configure and build in a directory outside of the source code tree.
    - Set PATH, in order:
        - \<MikTex executables\>
        - /usr/local/bin
        - /usr/bin
        - /bin
        - \<install directory\>/bin
    - Configure
        \verbatim
        export LDFLAGS="-static"
        ../$archivedir/configure \
            --prefix=$installdir \
            --datadir=$installdir \
            --disable-tests \
            --disable-versioned-doc \
            2>&1 | tee simulavr-configure.log
        \endverbatim
    - Make
        \verbatim
        make -k all install 2>&1 | tee simulavr-make.log
        make pdf install-pdf 2>&1 | tee simulavr-pdf-make.log
        \endverbatim


*/