summaryrefslogtreecommitdiff
path: root/gcc/make-cc1.com
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1993-10-01 23:13:57 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1993-10-01 23:13:57 +0000
commite68424cd9c20f36a2e19bb094f99ffc83547caf8 (patch)
treef7f3b8b41433ce0010293a788b7e4a6603eae300 /gcc/make-cc1.com
parentf24a0260763b58f8df1fc934fa0764f3805b9993 (diff)
downloadgcc-e68424cd9c20f36a2e19bb094f99ffc83547caf8.tar.gz
(bc_generate): New VMS DCL function. Takes a BC
header file that needs to be generated, and builds it. Compile entries listed in BI_ALL.OPT, and then call bc_generate for every header file listed in BC_ALL.OPT git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5553 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/make-cc1.com')
-rw-r--r--gcc/make-cc1.com53
1 files changed, 53 insertions, 0 deletions
diff --git a/gcc/make-cc1.com b/gcc/make-cc1.com
index b5828910a1e..7d4350b0e63 100644
--- a/gcc/make-cc1.com
+++ b/gcc/make-cc1.com
@@ -57,6 +57,9 @@ $!
$! INDEPENDENT:
$! Compile language independent source modules. (On by default).
$!
+$! BC:
+$! Compile byte compiler source modules. (On by default).
+$!
$! DEBUG: Link images with /debug.
$!
$! If you want to list more than one option, you should use a spaces to
@@ -84,6 +87,7 @@ $goto cinit
$cinit_done: close cfile$
$DO_INDEPENDENT = 1
$DO_DEFAULT = 1
+$DO_BC = 1
$loop:
$string = f$element(i," ",p1)
$if string.eqs." " then goto done
@@ -108,6 +112,7 @@ $if DO_CC1.eq.1 then echo " Compile C specific object modules."
$if DO_CC1PLUS.eq.1 then echo " Compile C++ specific object modules."
$if DO_CC1OBJ.eq.1 then echo " Compile obj-C specific object modules."
$if DO_INDEPENDENT.eq.1 then echo " Compile language independent object modules."
+$if DO_BC.eq.1 then echo " Compile byte compiler object modules."
$link_only:
$if DO_CC1.eq.1 then echo " Link C compiler (gcc-cc1.exe)."
$if DO_CC1PLUS.eq.1 then echo " Link C++ compiler (gcc-cc1plus.exe)."
@@ -144,6 +149,24 @@ $!
$ if DO_DEBUG.eq.1 then LDFLAGS :='LDFLAGS'/debug
$!
$if DO_LINK.eq.1 then goto compile_cc1
+$!
+$if DO_BC.eq.1
+$ THEN
+$ call compile bi_all.opt ""
+$ open ifile$ bc_all.opt
+$ read ifile$ bc_line
+$ close ifile$
+$ bc_index = 0
+$bc_loop:
+$ tfile = f$element(bc_index, " ", bc_line)
+$ if tfile.eqs." " then goto bc_done
+$ call bc_generate 'tfile' "bi_all.opt/opt,"
+$ bc_index = bc_index + 1
+$ goto bc_loop
+$bc_done:
+$ endif
+$!
+$!
$if DO_INDEPENDENT.eq.1
$ THEN
$!
@@ -359,3 +382,33 @@ $ assign/user 'p1' sys$output:
$ mcr sys$disk:[]GEN'root1' md
$!'f$verify(0)
$endsubroutine
+$!
+$! This subroutine generates the bc-* files. The first argument is the
+$! name of the bc-* file to generate. The second argument contains a
+$! list of any other object modules which must be linked to the gen*.c
+$! program.
+$!
+$! If a previous version of bc-* exists, it is compared to the new one,
+$! and if it has not changed, then the new one is discarded. This is
+$! done so that make like programs do not get thrown off.
+$!
+$bc_generate:
+$subroutine
+$if f$extract(0,3,p1).nes."BC-"
+$ then
+$ write sys$error "Unknown file passed to generate."
+$ exit 1
+$ endif
+$root1=f$parse(f$extract(3,255,p1),,,"NAME")
+$ set verify
+$ 'CC 'CFLAGS BI-'root1'.C
+$ link 'LDFLAGS' BI-'root1','p2' -
+ 'LIBS'
+$! 'f$verify(0)
+$!
+$set verify
+$ assign/user bytecode.def sys$input:
+$ assign/user 'p1' sys$output:
+$ mcr sys$disk:[]BI-'root1'
+$!'f$verify(0)
+$endsubroutine