If the source code for your distribution resides on a disk shared by other machines in the network, you can build for all host types simultaneously by using different build directories. See section Source and Build Directories, for details on building with different source and build directories; also see section Example: different srcdir and objdir, for an example.
Multiple simultaneous builds can be conducted on the same source code
simply by using different build directories. For example, assume we
have source code in `/usr/local/src', and wish to build a
native toolkit for our Sun SPARCstation running SunOS 4.1.3
(sparky
) and our DECstation running Ultrix (deckard
), and
that we also wish to build a cross-development toolkit for each host for
a `m68k-aout' target.
Note: this example shows a complete build for all four configurations, one native development system and one cross-development system for each of two hosts, including installation and links. See section The Heterogeneous Updateable Toolkit, for more general discussions and examples.
All of these toolkits are to be installed into
/usr/local/progressive-94q4
(The cross-development tools are installed with the native tools; however, the cross tools have a prefix of target, e.g., `m68k-aout-gcc'.) They are to be linked so that `/usr/progressive/bin' on each host points toward the correct binaries for that host:
/usr/local/progressive-94q4/H-hosttype/bin
but the machine-independent files in
/usr/local/progressive-94q4
are shared across platforms. We accomplish this by actually installing into a shared disk called `shared', and creating links from `/usr/local'.
first, set up the shared space in `/shared'
$ mkdir /shared/local
$ su (may need root priviledge to put link in `/usr')
# ln -s /shared/local /usr/local
# mkdir /usr/local/progressive-94q4
# exit
now we build the native toolset for the Sun
$ uname -a
SunOS sparky 4.1.3_U1 1 sun4m
$ mkdir /usr/local/obj/sun4native
$ cd /usr/local/obj/sun4native
$ /usr/local/src/configure --prefix=/usr/local/progressive-94q4 \
--exec-prefix=/usr/local/progressive-94q4/H-sun4 \
--srcdir=/usr/local/src
Configuring for a sparc-sun-sunos4.1.3_U1 host.
...time passes...
$ make all info > ./make.log
...time passes...
$ su (may need root priviledge to install in `/usr')
# make install install-info >> ./make.log
# exit
(now the cross toolkit)
$ mkdir /usr/local/obj/sun4-x-m68k
$ cd /usr/local/obj/sun4-x-m68k
$ /usr/local/src/configure --prefix=/usr/local/progressive-94q4 \
--exec-prefix=/usr/local/progressive-94q4/H-sun4 \
--srcdir=/usr/local/src --target=m68k-aout
Configuring for a sparc-sun-sunos4.1.3_U1 host.
...time passes...
$ make all info > ./make.log
...time passes...
$ su (may need root priviledge to install in `/usr')
# make install install-info >> ./make.log
now create the links which bring the toolkit online
# ln -s /usr/local/progressive-94q4 /usr/local/progressive
# ln -s /usr/local/progressive/H-sun4 /usr/progressive
# exit
`/usr/progressive' on sparky
now points to the Sun4-specific installation
(continued on next page...)
`/shared' already exists; now we build
the native toolset for the DECstation
$ rlogin deckard
$ uname -a
ULTRIX deckard 4.2 0 RISC
$ mkdir /usr/local/obj/decnative
$ cd /usr/local/obj/decnative
$ /usr/local/src/configure --prefix=/usr/local/progressive-94q4 \
--exec-prefix=/usr/local/progressive-94q4/H-decstn \
--srcdir=/usr/local/src
Configuring for a mips-dec-ultrix4.2 host.
...time passes...
$ make all info > ./make.log
...time passes...
$ su (may need root priviledge to install in `/usr')
remember, `/usr/local/progressive-94q4' already exists
# make install install-info >> ./make.log
# exit
(now the cross toolkit)
$ mkdir /usr/local/obj/sun4cross
$ cd /usr/local/obj/sun4native
$ /usr/local/src/configure --prefix=/usr/local/progressive-94q4 \
--exec-prefix=/usr/local/progressive-94q4/H-decstn \
--srcdir=/usr/local/src --target=m68k-aout
Configuring for a mips-dec-ultrix4.2 host.
...time passes...
$ make all info > ./make.log
...time passes...
$ su (may need root priviledge to install in `/usr')
# make install install-info >> ./make.log
now create the link which brings the toolkit online; remember, the other link
/usr/local/progressive -> /usr/local/progressive-94q4
already exists from the Sun build
# ln -s /usr/local/progressive/H-decstn /usr/progressive
# exit
`/usr/progressive' on deckard
now points to the DEC-specific installation
(This example shows a Bourne-compatible shell (sh
, bash
,
ksh
); contact Cygnus if you have any trouble.)
`/usr/progressive/bin' on each host now points toward the binaries built for that hosttype, while the machine-independent files in `/usr/local/progressive' are shared between the two builds. In addition, each installation contains both a native development toolkit and a cross-development toolkit for the `m68k-aout' target.
Please contact Cygnus Support if any of this is unclear, or if you have any questions.