|
|
1.1 root 1: $!
2: $! Build GCC
3: $!
4: $! Set the def dir to proper place for use in batch. Works for interactive too.
5: $flnm = f$enviroment("PROCEDURE") ! get current procedure name
6: $set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")'
7: $!
8: $! First, build the preprocesor.
9: $!
10: $ @make-cccp
11: $!
12: $! To build the GNU C++ compiler in addition to the GNU CC compiler, comment
13: $! out the `@make-cc1' line, and uncomment the `@make-cc1 cc1 cc1plus' line.
14: $! To also build Objective-C, add "cc1obj" to the list.
15: $!
16: $! See the file make-cc1.com for a complete list of options.
17: $!
18: $ @make-cc1
19: $! @make-cc1 cc1 cc1plus
1.1.1.2 ! root 20: $!
! 21: $!
! 22: $! Now build the library routines that are required. These will be placed in
! 23: $! libgcc2.olb. To install, extract all of the modules from libgcc2.olb and
! 24: $! add them to gnu_cc:[000000]gcclib.olb. You may have to delete the eprintf
! 25: $! and new modules from the gnu_cc:[000000]gcclib.olb, since libgcc2 supplies
! 26: $! these same routines with different module names.
! 27: $!
! 28: $! Set up the logical names to use the compiler that we just built.
! 29: $!
! 30: $ Procedure:='f$environment("PROCEDURE")'
! 31: $ Device:='f$parse(Procedure,,,"DEVICE","NO_CONCEAL")'
! 32: $ Directory:='f$parse(Procedure,,,"DIRECTORY","NO_CONCEAL")'
! 33: $ Path:="''Device'''Directory'"
! 34: $!
! 35: $! Check for "rooted" directory specs
! 36: $!
! 37: $ l = 'f$length(Path)'
! 38: $ tmp = 'f$locate(".][",Path)'
! 39: $ if 'tmp' .ne. 'l' then goto 10$
! 40: $ tmp = 'f$locate(".><",Path)'
! 41: $ if 'tmp' .ne. 'l' then goto 10$
! 42: $ goto 100$
! 43: $!
! 44: $! Eliminate rooted directory specs
! 45: $!
! 46: $ 10$:
! 47: $ if "''f$extract(tmp,255,Path)'" .eqs. ".][000000]" then goto 20$
! 48: $ if "''f$extract(tmp,255,Path)'" .eqs. ".><000000>" then goto 20$
! 49: $ l = tmp + 3
! 50: $ Path:="''f$extract(0,tmp,Path)'.''f$extract(l,255,Path)'"
! 51: $ goto 100$
! 52: $ 20$:
! 53: $ l = tmp + 1
! 54: $ Path:="''f$extract(0,tmp,Path)'''f$extract(l,1,Path)'"
! 55: $ 100$:
! 56: $!
! 57: $! Calculate the prefix and suffix (used in generating desired paths)
! 58: $!
! 59: $ l = 'f$length(Path)' - 1
! 60: $ Prefix:='f$Extract(0,l,Path)'
! 61: $ Suffix:='f$extract(l,1,Path)'
! 62: $!
! 63: $ gnu_cc_path:="''Prefix'.''Suffix'"
! 64: $!
! 65: $oldgcc=f$trnlnm("GNU_CC")
! 66: $ assign 'gnu_cc_path'/translation=concealed, -
! 67: 'f$trnlnm("GNU_CC")/translation=concealed GNU_CC
! 68: $!
! 69: $! Set the version number from version.opt.
! 70: $!
! 71: $open ifile$ version.opt
! 72: $read ifile$ line
! 73: $close ifile$
! 74: $ijk = f$locate("=",line) + 1
! 75: $line='f$extract(ijk,255,line)
! 76: $assign 'line' gnu_cc_version
! 77: $!
! 78: $! Now build gcclib2.olb
! 79: $!
! 80: $@make-l2
! 81: $!
! 82: $! Deassign logical names.
! 83: $!
! 84: $deassign gnu_cc_version
! 85: $deassign gnu_cc
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.