1 | $! make-gcc.com -- VMS build procedure for GNU CC. |
---|
2 | $! |
---|
3 | $! Usage: |
---|
4 | $! $ @make-gcc.com [host-compiler] [component list] |
---|
5 | $! |
---|
6 | $! where [host-compiler] is one of "GNUC", "VAXC", "DECC"; |
---|
7 | $! default when none specified is "GNUC", |
---|
8 | $! and where [component list] is space separated list beginning |
---|
9 | $! with "CC1" and optionally followed by "CC1PLUS"; default if |
---|
10 | $! nothing is specified is "CC1" (the C compiler); choosing |
---|
11 | $! "CC1PLUS" (the C++ compiler) without also specifying "CC1" |
---|
12 | $! will not work. (See make-cc1.com for other potential component |
---|
13 | $! values; but unless you're developing or debugging the compiler |
---|
14 | $! suite itself, the two above are the only ones of interest.) |
---|
15 | $! |
---|
16 | $! For a "stage 2" or subsequent build, always specify GNUC as |
---|
17 | $! the host compiler. |
---|
18 | $! |
---|
19 | $! Note: |
---|
20 | $! Even though it is possible to build with VAX C or DEC C, |
---|
21 | $! a prior version of the gcc-vms binary distribution is still |
---|
22 | $! required to be able to use the newly built GNU CC compiler(s), |
---|
23 | $! because the gcc source distribution does not supply the driver |
---|
24 | $! program which the DCL command "GCC" implements or the C header |
---|
25 | $! files and gcclib support library. |
---|
26 | $! |
---|
27 | $ |
---|
28 | $! |
---|
29 | $! Change working directory to the location of this procedure. |
---|
30 | $! |
---|
31 | $ flnm = f$enviroment("PROCEDURE") !get current procedure name |
---|
32 | $ set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")' |
---|
33 | $ |
---|
34 | $! |
---|
35 | $! First, we build the preprocessor. |
---|
36 | $! |
---|
37 | $ @make-cccp.com 'p1' 'p2' |
---|
38 | $! |
---|
39 | $! To install it, copy the resulting GCC-CPP.EXE to the GNU_CC:[000000] |
---|
40 | $! directory. |
---|
41 | $! |
---|
42 | $ |
---|
43 | $! |
---|
44 | $! Now we build the C compiler. To build the C++ compiler too, use |
---|
45 | $! $ @make-gcc GNUC cc1 cc1plus |
---|
46 | $! when invoking this command procedure. Note that you should not |
---|
47 | $! do this for a "stage 1" build. |
---|
48 | $! |
---|
49 | $ @make-cc1.com 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' |
---|
50 | $! |
---|
51 | $! To install it (them), copy the resulting GCC-CC1.EXE (and GCC-CC1PLUS.EXE) |
---|
52 | $! to the GNU_CC:[000000] directory. |
---|
53 | $! |
---|
54 | $ |
---|
55 | $! |
---|
56 | $! Now we build the `libgcc2' support library. It will need to be merged |
---|
57 | $! with the existing gcclib.olb library. |
---|
58 | $! |
---|
59 | $ @make-l2.com 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' |
---|
60 | $! |
---|
61 | $! To install, save a backup copy of GNU_CC:[000000]GCCLIB.OLB somewhere, |
---|
62 | $! then update the original using the newly created LIBGCC2.OLB via |
---|
63 | $! $ library/Obj libgcc2.olb /Extract=*/Output=libgcc2.obj |
---|
64 | $! $ library/Obj gnu_cc:[000000]gcclib.olb libgcc2.obj /Replace |
---|
65 | $! |
---|
66 | $! Depending upon how old your present gcclib library is, you might have |
---|
67 | $! to delete some modules, such as `eprintf' and `new', to avoid conflicting |
---|
68 | $! symbols from obsolete routines. After deleting any such modules, just |
---|
69 | $! repeat the `library/replace' step. |
---|
70 | $! |
---|
71 | $ exit |
---|