home *** CD-ROM | disk | FTP | other *** search
- $ ON CONTROL_Y THEN GOTO GCC_CONTROL_Y
- $ ON WARNING THEN GOTO GCC_BOO_BOO
- $!
- $ IF P1 .NES. "VMI$_INSTALL" THEN EXIT VMI$_UNSUPPORTED
- $!
- $foo_loop:
- $ if f$trnlnm("gnu_cc","lnm$process_table").nes."" then deassign gnu_cc
- $ if f$trnlnm("gnu_bison","lnm$process_table").nes."" then deassign gnu_bison
- $!
- $type sys$input
-
- Installation of GCC 1.40 for VMS.
-
- $ IF P2 THEN SET VERIFY
- $!
- $!
- $ blocks=4000
- $ VMI$CALLBACK CHECK_NET_UTILIZATION GCC_BLOCKS 'blocks' 300 'blocks'
- $ IF .NOT. GCC_BLOCKS
- $ THEN
- $ VMI$CALLBACK MESSAGE E LITTLEDISK -
- "You need a minimum of ''BLOCKS' blocks to install GCC."
- $ EXIT VMI$_FAILURE
- $ ENDIF
- $!
- $ VMI$CALLBACK SET SAFETY CONDITIONAL 'blocks+2000'
- $!
- $ DEFAULT_INSTALL_ROOT = "SYS$SYSDEVICE:[GCC]"
- $ IF F$TRNLNM("GNU_CC") .NES. "" THEN DEFAULT_INSTALL_ROOT = -
- F$PARSE ("GNU_CC:[000000]",,,"DEVICE","NO_CONCEAL") -
- + F$PARSE ("GNU_CC:[000000]",,,"DIRECTORY","NO_CONCEAL") -
- - ".][000000]" + "]"
- $!
- $ TYPE SYS$INPUT:
-
- GCC is installed in a private directory structure. This can be located
- anywhere you want, but you must have the disk quotas turned off or
- there must be sufficient disk quota to hold all of the GCC executables,
- header files, and misc support files.
-
- $!
- $ if f$type(gnu_cc).nes."" then delete/symbol/local gnu_cc
- $ VMI$CALLBACK ASK GNU_CC "Where should the GCC top directory be located?" -
- "''DEFAULT_INSTALL_ROOT'"
- $ GCC_TMP = F$PARSE (GNU_CC,,,,"NO_CONCEAL,SYNTAX_ONLY") - "]["
- $ GCC_INSTALL_ROOT = F$PARSE (GCC_TMP,,,"DEVICE") + -
- F$PARSE (GCC_TMP,,,"DIRECTORY") - "]" + ".]"
- $ DEFINE GNU_CC 'GCC_INSTALL_ROOT'/TRANSLATION=CONCEALED
- $ GNU_CC = GCC_INSTALL_ROOT - ".]"
- $!
- $ type sys$input
-
- BISON is the GNU version of YACC. It is not required to use GCC, however
- BISON may be required before you can recompile GCC from it's sources.
-
- $!
- $ VMI$CALLBACK ASK INSTALL_BISON "Do you wish to install BISON?" "YES" B
- $!
- $ IF INSTALL_BISON
- $ THEN
- $!
- $ DEFAULT_INSTALL_ROOT = "SYS$SYSDEVICE:[BISON]"
- $ IF F$TRNLNM("GNU_BISON") .NES. "" THEN DEFAULT_INSTALL_ROOT = -
- F$PARSE ("GNU_BISON:[000000]",,,"DEVICE","NO_CONCEAL") -
- + F$PARSE ("GNU_BISON:[000000]",,,"DIRECTORY","NO_CONCEAL") -
- - ".][000000]" + "]"
- $!
- $!
- $ TYPE SYS$INPUT:
-
- BISON can be located on any disk, but the disk must either have disk
- quotas turned off, or have a sufficient quota to hold the BISON
- executable, and template files.
-
- This can be the same directory as is used for the GCC.
-
- $!
- $ if f$type(gnu_bison).nes."" then delete/symbol/local gnu_bison
- $ VMI$CALLBACK ASK GNU_BISON "Where should the BISON top directory be located?" -
- "''DEFAULT_INSTALL_ROOT'"
- $ TMP = F$PARSE (GNU_BISON,,,,"NO_CONCEAL,SYNTAX_ONLY") - "]["
- $ BISON_ROOT = F$PARSE (TMP,,,"DEVICE") + -
- F$PARSE (TMP,,,"DIRECTORY") - "]" + ".]"
- $ GNU_BISON = BISON_ROOT - ".]"
- $ DEFINE GNU_BISON 'BISON_ROOT'/TRANSLATION=CONCEALED
- $!
- $ ENDIF
- $!
- $ type sys$input
-
- There are info files supplied with this distribution. These can
- are designed to be used with Emacs, however they can also easily be
- examined with a text editor.
-
- The info files describe installation details, sources of
- incompatibility, and GNU extensions to the C language.
-
- $!
- $ VMI$CALLBACK ASK INSTALL_DOCS "Do you wish to install the info files?" "YES" B
- $!
- $ VMI$CALLBACK SET PURGE ASK
- $!
- $ VMI$CALLBACK ASK GCC_OK "OK to proceed?" "YES" B
- $ IF .NOT. GCC_OK THEN goto foo_loop
- $!
- $!--- no more questions after this point ---
- $!
- $ TYPE SYS$INPUT:
-
- No more questions will be asked. Put your feet up and grab
- a magazine. This should take around 10 minutes.
-
- $!
- $!
- $ VMI$CALLBACK CREATE_DIRECTORY USER 'GNU_CC'] -
- "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"
- $ VMI$CALLBACK CREATE_DIRECTORY USER 'GNU_CC'.INCLUDE] -
- "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"
- $ VMI$CALLBACK CREATE_DIRECTORY USER 'GNU_CC'.INCLUDE.SYS] -
- "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"
- $ VMI$CALLBACK CREATE_DIRECTORY USER 'GNU_CC'.INCLUDE.VMS] -
- "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"
- $ if INSTALL_BISON
- $ then
- $ if (gnu_cc.nes.gnu_bison) then -
- VMI$CALLBACK CREATE_DIRECTORY USER 'GNU_BISON'] -
- "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"
- $ endif
- $!
- $ VMI$CALLBACK RESTORE_SAVESET B
- $!
- $ VMI$CALLBACK PROVIDE_DCL_COMMAND GCC.CLD
- $ VMI$CALLBACK MESSAGE I DCLCMD "Providing GCC DCL command."
- $ VMI$CALLBACK PROVIDE_DCL_HELP GCC.HLP
- $ VMI$CALLBACK MESSAGE I DCLHLP "Providing VMS help for GCC."
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP GCC.EXE 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP GCC-AS.EXE 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP GCC-CC1.EXE 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP GCC-CPP.EXE 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP AAAREAD.ME 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP CHANGELOG. 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP COPYING. 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC-AS.DIFF 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.CLD 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.COM 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.HLP 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCCLIB.OLB 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC_INSTALL.COM 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC-SRC.SAV 'gnu_cc']
- $!
- $!
- $if INSTALL_DOCS
- $ THEN
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP CPP.INFO 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP CPP.INFO-1 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP CPP.INFO-2 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.INFO 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.INFO-1 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.INFO-2 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.INFO-3 'gnu_cc']
- $ VMI$CALLBACK PROVIDE_FILE GCC_TMP GCC.INFO-4 'gnu_cc']
- $type sys$input
- The GCC info files will be moved to the GNU_CC:[000000] directory.
-
- $!
- $ ENDIF
- $! Provide GCC header files.
- $!
- $! These are unpacked directly into the include directory.
- $!
- $ VMI$CALLBACK MESSAGE I "UPCKHDR" "Unpacking header files."
- $ backup vmi$kwd:gcc-include.sav/save 'gnu_cc'...]*.*;/nolog/new_version
- $!
- $! GCC Installation is complete. Now install BISON
- $!
- $if INSTALL_BISON
- $ THEN
- $ VMI$CALLBACK RESTORE_SAVESET C
- $ VMI$CALLBACK PROVIDE_DCL_COMMAND BISON.CLD
- $ VMI$CALLBACK MESSAGE I DCLCMD "Providing BISON DCL command."
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP BISON.CLD 'gnu_bison']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP BISON.EXE 'gnu_bison']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP BISON.HAIRY 'gnu_bison']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP BISON.SIMPLE 'gnu_bison']
- $ VMI$CALLBACK PROVIDE_IMAGE GCC_TMP INSTALL_BISON.COM 'gnu_bison']
- $ ENDIF
- $!
- $ TYPE SYS$INPUT
-
- As soon as the installation procedure is complete, you should execute
- the following command(s):
-
- $write sys$output " $ @''gnu_cc']GCC_INSTALL"
- $if INSTALL_BISON then -
- write sys$output " $ @''gnu_bison']INSTALL_BISON"
- $ TYPE SYS$INPUT
-
- If this is a new installation, you should also edit SYSTARTUP_V5.COM
- and include the above command(s).
-
- $ if f$trnlnm("gnu_cc","lnm$process_table").nes."" then deassign gnu_cc
- $ if f$trnlnm("gnu_bison","lnm$process_table").nes."" then deassign gnu_bison
- $ EXIT VMI$_SUCCESS
- $!
- $GCC_CONTROL_Y:
- $ if f$trnlnm("gnu_cc","lnm$process_table").nes."" then deassign gnu_cc
- $ if f$trnlnm("gnu_bison","lnm$process_table").nes."" then deassign gnu_bison
- $ VMI$CALLBACK CONTROL_Y
- $!
- $GCC_BOO_BOO:
- $ GCC_STATUS == $STATUS
- $ if f$trnlnm("gnu_cc","lnm$process_table").nes."" then deassign gnu_cc
- $ if f$trnlnm("gnu_bison","lnm$process_table").nes."" then deassign gnu_bison
- $ EXIT 'GCC_STATUS
- $!
-