diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1997-01-19 20:34:35 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1997-01-19 20:34:35 -0500 |
commit | c14685bf851bfa4cff9bf439385142a747756a7e (patch) | |
tree | 8c64657ab1fcedb89771fe3a2fd3b160c9a62052 | |
parent | d7fd1073804f0270a878d6c984aece6cd78d5f54 (diff) | |
download | gcc-c14685bf851bfa4cff9bf439385142a747756a7e.zip gcc-c14685bf851bfa4cff9bf439385142a747756a7e.tar.gz gcc-c14685bf851bfa4cff9bf439385142a747756a7e.tar.bz2 |
Support building with GNU C vs VAX C vs DEC C from the DCL command line.
From-SVN: r13531
-rw-r--r-- | gcc/make-cc1.com | 148 | ||||
-rw-r--r-- | gcc/make-cccp.com | 126 | ||||
-rw-r--r-- | gcc/make-gcc.com | 6 |
3 files changed, 175 insertions, 105 deletions
diff --git a/gcc/make-cc1.com b/gcc/make-cc1.com index b98d02e..9f816b7 100644 --- a/gcc/make-cc1.com +++ b/gcc/make-cc1.com @@ -1,53 +1,83 @@ -$! Set the def dir to proper place for use in batch. Works for interactive too. -$flnm = f$enviroment("PROCEDURE") ! get current procedure name -$set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")' +$v='f$verify(0) !make-cc1.com $! -$ v=f$verify(0) +$! Build the GNU C compiler on VMS. $! -$! CAUTION: If you want to link gcc-cc1 to the sharable image library -$! VAXCRTL, see the notes in gcc.texinfo (or INSTALL) first. +$! Usage: +$! $ @make-cc1.com [host-compiler] [various] $! -$! Build the GNU "C" compiler on VMS +$! where [host-compiler] is one of "GNUC", "VAXC", "DECC"; +$! default when none specified is "GNUC", +$! and where [various] is one or more of "CC1", "CC1PLUS", +$! "CC1OBJ", "OBJCLIB", "INDEPENDENT", "BC", "ALL", "LINK", "DEBUG". +$! "CC1" (C compiler) is the default; of the others, only +$! "CC1PLUS" (C++ compiler), "CC1OBJ" (Objective-C compiler), +$! and "OBJCLIB" (Objective-C run-time library) are of interest +$! for normal installation. +$! If both [host-compiler] and other option(s) are specified, +$! the host compiler argument must come first. $! -$! Note: to build with DEC's VAX C compiler, uncomment the 2nd CC, CFLAGS, -$! and LIBS alternatives, and also execute the following command: -$! DEFINE SYS SYS$LIBRARY: -$! After a successful build, restore those items and rebuild with gcc. +$ if f$type(gcc_debug).eqs."INTEGER" then if gcc_debug.and.1 then set verify +$ +$ p1 = f$edit(p1,"UPCASE,TRIM") +$ if p1.eqs."" then p1 = "GNUC" +$! +$! Compiler-specific setup (assume GNU C, then override as necessary): +$! +$ CC = "gcc" +$ CFLAGS = "/Debug/noVerbos/CC1=""-mpcc-alignment""" +$ LIBS = "gnu_cc:[000000]gcclib.olb/Libr,sys$library:vaxcrtl.olb/Libr" +$ if p1.eqs."GNUC" +$ then +$ p1 = "" +$ else +$ CC = "cc" +$ CFLAGS = "/noOpt" !disable optimizer when bootstrapping with native cc +$ if p2.eqs."DEBUG" .or. p3.eqs."DEBUG" then CFLAGS = CFLAGS + "/Debug" +$ if p1.eqs."VAXC" +$ then +$ p1 = "" +$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = "cc/VAXC" +$ LIBS = "alloca.obj,sys$library:vaxcrtl.olb/Libr" +$ define/noLog SYS SYS$LIBRARY: +$ else +$ if p1.eqs."DECC" +$ then +$ p1 = "" +$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = "cc/DECC" +$ CC = CC + "/Prefix=All/Warn=Disabl=(ImplicitFunc)" +$ LIBS = "alloca.obj" !DECC$SHR will be found implicitly by linker +$ define/noLog SYS DECC$LIBRARY_INCLUDE: +$ endif !DECC +$ endif !VAXC +$ endif !GNUC $ -$! C compiler -$! -$ CC = "gcc" -$! CC = "cc" !uncomment for VAXC -$ BISON = "bison" -$ BISON_FLAGS= "/Define/Verbose" -$ RENAME= "rename/New_Version" -$ LINK = "link" -$ EDIT = "edit" -$ SEARCH= "search" -$ ABORT = "exit %x002C" -$ echo = "write sys$output" -$! -$! Compiler options -$! -$ CFLAGS = "/Debug/noVerbos/CC1=""-mpcc-alignment""" -$! CFLAGS = "/noOpt" !uncomment for VAXC -$ CINCL1 = "/Incl=[]" !stage 1 -I flags -$ CINCL2 = "/Incl=([],[.ginclude])" !stage 2,3,... flags -$ CINCL_SUB = "/Incl=([],[-],[-.ginclude])" ![.cp] flags $! -$! Link options +$! Other setup: $! $ LDFLAGS = "/noMap" +$ PARSER = "bison" +$ PARSER_FLAGS= "/Define/Verbose" +$ RENAME = "rename/New_Version" +$ LINK = "link" +$ EDIT = "edit" +$ SEARCH = "search" +$ ABORT = "exit %x002C" +$ echo = "write sys$output" $! -$! Link libraries +$! Stage[123] options $! -$ LIBS = "gnu_cc:[000000]gcclib.olb/Libr,sys$library:vaxcrtl.olb/Libr" -$! LIBS = "alloca.obj,sys$library:vaxcrtl.olb/Libr" !uncomment for VAXC +$ CINCL1 = "/Incl=[]" !stage 1 -I flags +$ CINCL2 = "/Incl=([],[.ginclude])" !stage 2,3,... flags +$ CINCL_SUB = "/Incl=([],[-],[-.ginclude])" ![.cp] flags $ $!!!!!!! $! Nothing beyond this point should need any local configuration changes. $!!!!!!! $ +$! Set the default directory to the same place as this command procedure. +$ flnm = f$enviroment("PROCEDURE") !get current procedure name +$ set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")' +$ $! $! First we figure out what needs to be done. This is sort of like a limited $! make facility - the command line options specify exactly what components @@ -70,6 +100,9 @@ $! $! BC: $! Compile byte compiler source modules. (On by default). $! +$! OBJCLIB: +$! Compile Objective-C run-time library. +$! $! DEBUG: Link images with /debug. $! $! If you want to list more than one option, you should use a spaces to @@ -84,7 +117,7 @@ $! If you do not specify which compiler you want to build, it is assumed that $! you want to build GNU-C ("CC1"). $! $! Now figure out what we have been requested to do. -$p1 = p1+" "+p2+" "+p3+" "+p4+" "+p5+" "+p6+" "+p7 +$p1 = p1+" "+p2+" "+p3+" "+p4+" "+p5+" "+p6+" "+p7+" "+p8 $p1 = f$edit(p1,"COMPRESS,TRIM") $i=0 $DO_ALL = 0 @@ -207,12 +240,12 @@ $ if f$search("alloca.obj").nes."" then - !does .obj exist? is it up to date? if f$cvtime(f$file_attributes("alloca.obj","RDT")).gts.- f$cvtime(f$file_attributes("alloca.c","RDT")) then goto skip_alloca $set verify -$ 'CC''CFLAGS'/Define="STACK_DIRECTION=(-1)" alloca.c +$ 'CC''CFLAGS'/Defi=("HAVE_CONFIG_H","STACK_DIRECTION=(-1)") alloca.c $!'f$verify(0) $skip_alloca: $! -$if DO_BC.eq.1 -$ THEN +$if DO_BC.eq.1 +$ then $ call compile bi_all.opt "" $ if f$trnlnm("ifile$").nes."" then close/noLog ifile$ $ open ifile$ bc_all.list @@ -229,8 +262,8 @@ $bc_done: $ endif $! $! -$if DO_INDEPENDENT.eq.1 -$ THEN +$if DO_INDEPENDENT.eq.1 +$ then $! $! First build a couple of header files from the machine description $! These are used by many of the source modules, so we build them now. @@ -415,27 +448,26 @@ $ save_cflags = CFLAGS $ CFLAGS = CFLAGS - CINCL1 - CINCL2 + CINCL_SUB $ endif $! -$if f$locate("parse",flnm).nes.f$length(flnm) -$ then -$ if (f$search("''flnm'.C") .eqs. "") then goto yes_bison -$ if (f$cvtime(f$file_attributes("''flnm'.Y","RDT")).les. - - f$cvtime(f$file_attributes("''flnm'.C","RDT"))) - - then goto no_bison -$yes_bison: -$set verify -$ 'BISON''BISON_FLAGS' 'flnm'.y -$ 'RENAME' 'flnm'_tab.c 'flnm'.c -$ 'RENAME' 'flnm'_tab.h 'flnm'.h +$ if f$locate("parse",flnm).nes.f$length(flnm) +$ then +$ if f$search("''flnm'.c").nes."" then - + if f$cvtime(f$file_attributes("''flnm'.c","RDT")).ges. - + f$cvtime(f$file_attributes("''flnm'.y","RDT")) then goto skip_yacc +$ set verify +$ 'PARSER' 'PARSER_FLAGS' 'flnm'.y +$ 'RENAME' 'flnm'_tab.c 'flnm'.c +$ 'RENAME' 'flnm'_tab.h 'flnm'.h $!'f$verify(0) $ if flnm.eqs."cp-parse" .or. (prfx.eqs."cp" .and. flnm.eqs."parse") $ then ! fgrep '#define YYEMPTY' cp-parse.c >>cp-parse.h +$ if f$trnlnm("JFILE$").nes."" then close/noLog jfile$ $ open/Append jfile$ 'flnm'.h $ 'SEARCH'/Exact/Output=jfile$ 'flnm'.c "#define YYEMPTY" $ close jfile$ $ endif -$no_bison: +$skip_yacc: $ echo " (Ignore any warning about not finding file ""bison.simple"".)" -$ endif +$ endif $! $if f$extract(0,5,flnm).eqs."insn-" then call generate 'flnm'.c $! @@ -461,7 +493,7 @@ $close ifile$ $endsubroutine $! $! This subroutine generates the insn-* files. The first argument is the -$! name of the insn-* file to generate. The second argument contains a +$! name of the insn-* file to generate. The second argument contains a $! list of any other object modules which must be linked to the gen*.c $! program. $! @@ -475,7 +507,7 @@ $ endif $root1=f$parse(f$extract(5,255,p1),,,"NAME") $ set verify $ 'CC''CFLAGS' GEN'root1'.C -$ 'LINK''LDFLAGS' GEN'root1'.OBJ,rtl.obj,obstack.obj,'p2' - +$ 'LINK''f$string(LDFLAGS - "/Debug")' GEN'root1'.OBJ,rtl.obj,obstack.obj,'p2' - 'LIBS' $! 'f$verify(0) $! @@ -486,7 +518,7 @@ $!'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 +$! name of the bc-* file to generate. The second argument contains a $! list of any other object modules which must be linked to the bi*.c $! program. $! @@ -500,7 +532,7 @@ $ endif $root1=f$parse(f$extract(3,255,p1),,,"NAME") $ set verify $ 'CC''CFLAGS' BI-'root1'.C -$ 'LINK''LDFLAGS' BI-'root1'.OBJ,'p2' - +$ 'LINK''f$string(LDFLAGS - "/Debug")' BI-'root1'.OBJ,'p2' - 'LIBS' $! 'f$verify(0) $! diff --git a/gcc/make-cccp.com b/gcc/make-cccp.com index d19940a..e383f31 100644 --- a/gcc/make-cccp.com +++ b/gcc/make-cccp.com @@ -1,79 +1,117 @@ -$! Set the def dir to proper place for use in batch. Works for interactive too. -$flnm = f$enviroment("PROCEDURE") ! get current procedure name -$set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")' +$v='f$verify(0) !make-cccp.com $! -$! Build the GNU "C" pre-processor on VMS +$! Build the GNU C preprocessor on VMS. $! -$! Note: to build with DEC's VAX C compiler, uncomment the 2nd CC, CFLAGS, -$! and LIBS alternatives, and also execute the following command: -$! DEFINE SYS SYS$LIBRARY: -$ +$! Usage: +$! $ @make-cccp.com [compiler] [link-only] $! -$! C compiler +$! where [compiler] is one of "GNUC", "VAXC", "DECC"; +$! default when none specified is "GNUC", +$! and where [link-only] is "LINK" or omitted. +$! If both options are specified, the compiler must come first. $! -$ CC = "gcc" -$! CC = "cc" !uncomment for VAXC -$ BISON = "bison" -$ RENAME= "rename/New_Version" -$ LINK = "link" -$ echo = "write sys$output" +$ if f$type(gcc_debug).eqs."INTEGER" then if gcc_debug.and.1 then set verify +$ +$ p1 = f$edit(p1,"UPCASE,TRIM") +$ if p1.eqs."" then p1 = "GNUC" $! -$! Compiler options +$! Compiler-specific setup (assume GNU C, then override as necessary): $! -$ CFLAGS = "/Debug/noVerbos" -$! CFLAGS = "/noOpt" !uncomment for VAXC +$ CC = "gcc" +$ CFLAGS = "/Debug/noVerbos" +$ LIBS = "gnu_cc:[000000]gcclib.olb/Libr,sys$library:vaxcrtl.olb/Libr" +$ if p1.nes."GNUC" +$ then +$ CC = "cc" +$ CFLAGS = "/noOpt" !disable optimizer when bootstrapping with native cc +$ if p1.eqs."VAXC" +$ then +$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = "cc/VAXC" +$ LIBS = "alloca.obj,sys$library:vaxcrtl.olb/Libr" +$ define/noLog SYS SYS$LIBRARY: +$ else +$ if p1.eqs."DECC" +$ then +$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = "cc/DECC" +$ LIBS = "alloca.obj" !DECC$SHR will be found implicitly by linker +$ define/noLog SYS DECC$LIBRARY_INCLUDE: +$ else +$ if p1.nes."LINK" +$ then +$ type sys$input: /Output=sys$error: +$DECK +[compiler] argument should be one of "GNUC", "VAXC", or "DECC". + +Usage: +$ @make-cccp.com [compiler] [link-only] + +$EOD +$ exit %x1000002C + 0*f$verify(v) !%SYSTEM-F-ABORT +$ endif !!LINK +$ endif !DECC +$ endif !VAXC +$ endif !!GNUC +$ $! -$! Link options +$! Other setup: $! $ LDFLAGS = "/noMap" -$! -$! Link libraries -$! -$ LIBS = "gnu_cc:[000000]gcclib.olb/Libr,sys$library:vaxcrtl.olb/Libr" -$! LIBS = "alloca.obj,sys$library:vaxcrtl.olb/Libr" !uncomment for VAXC +$ PARSER = "bison" +$ RENAME = "rename/New_Version" +$ LINK = "link" +$ echo = "write sys$output" $ $!!!!!!! $! Nothing beyond this point should need any local configuration changes. $!!!!!!! $ -$ if "''p1'" .eqs. "LINK" then goto Link +$! Set the default directory to the same place as this command procedure. +$ flnm = f$enviroment("PROCEDURE") !get current procedure name +$ set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")' +$ +$ if p1.eqs."LINK" .or. p2.eqs."LINK" then goto Link $ echo " Building the preprocessor." +$ +$! Compile the simplest file first, to catch problem with compiler setup early. +$ set verify +$ 'CC''CFLAGS' version.c +$!'f$verify(0) +$ $ set verify $ 'CC''CFLAGS' cccp.c $!'f$verify(0) -$ t1:='f$search("CEXP.C")' -$ if "''t1'" .eqs. "" then goto 10$ -$ t1:='f$file_attributes("CEXP.Y","RDT")' -$ t1:='f$cvtime(t1)' -$ t2:='f$file_attributes("CEXP.C","RDT")' -$ t2:='f$cvtime(t2)' -$ if t1 .les. t2 then goto 20$ -$10$: +$ +$! Compile preprocessor's parser, possibly making it with yacc first. +$ if f$search("CEXP.C").nes."" then - + if f$cvtime(f$file_attributes("CEXP.C","RDT")).ges.- + f$cvtime(f$file_attributes("CEXP.Y","RDT")) then goto skip_yacc $ set verify -$ 'BISON' cexp.y +$ 'PARSER' cexp.y $ 'RENAME' cexp_tab.c cexp.c $!'f$verify(0) -$20$: -$! +$skip_yacc: +$ echo " (Ignore any warning about not finding file ""bison.simple"".)" +$ set verify +$ 'CC''CFLAGS' cexp.c +$!'f$verify(0) +$ +$! In case there's no builtin alloca support, use the C simulation. $ if f$locate("alloca.obj",f$edit(LIBS,"lowercase")).lt.f$length(LIBS) $ then $ set verify -$ 'CC''CFLAGS'/Define="STACK_DIRECTION=(-1)" alloca.c !#'f$verify(1) +$ 'CC''CFLAGS'/Incl=[]/Defi=("HAVE_CONFIG_H","STACK_DIRECTION=(-1)") alloca.c $!'f$verify(0) $ endif $! -$ echo " (Ignore any warning about not finding file ""bison.simple"".)" -$ set verify -$ 'CC''CFLAGS' cexp.c -$ 'CC''CFLAGS' version.c -$!'f$verify(0) +$ $Link: $ echo " Linking the preprocessor." $ set verify -$ 'LINK''LDFLAGS'/Exe=gcc-cpp.exe cccp.obj,cexp.obj,version.obj,version.opt/Opt,- +$ 'LINK''LDFLAGS'/Exe=gcc-cpp.exe - + cccp.obj,cexp.obj,version.obj,version.opt/Opt,- 'LIBS' $!'f$verify(0) $! $! Done $! -$ exit +$ exit 1+0*f$verify(v) diff --git a/gcc/make-gcc.com b/gcc/make-gcc.com index 5bae519..03235ee 100644 --- a/gcc/make-gcc.com +++ b/gcc/make-gcc.com @@ -8,7 +8,7 @@ $! $! $! First, build the preprocessor. $! -$ @make-cccp +$ @make-cccp.com 'p1' 'p2' $! $! To build the GNU C++ compiler in addition to the GNU CC compiler, comment $! out the `@make-cc1' line, and uncomment the `@make-cc1 cc1 cc1plus' line. @@ -16,7 +16,7 @@ $! To also build Objective-C, add "cc1obj" to the list. $! $! See the file make-cc1.com for a complete list of options. $! -$ @make-cc1 +$ @make-cc1.com 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' $! @make-cc1 cc1 cc1plus $! $! @@ -28,5 +28,5 @@ $! these same routines with different module names. $! $! Now build gcclib2.olb $! -$ @make-l2 +$ @make-l2.com $! |