Go to the first, previous, next, last section, table of contents.

Multiple simultaneous builds

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.


Go to the first, previous, next, last section, table of contents.