Support building with GNU C vs VAX C vs DEC C from the DCL command line.
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 20 Jan 1997 01:34:35 +0000 (20:34 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 20 Jan 1997 01:34:35 +0000 (20:34 -0500)
From-SVN: r13531

gcc/make-cc1.com
gcc/make-cccp.com
gcc/make-gcc.com

index b98d02efbf16b22c4913c70970b7a8f571b49eae..9f816b78d745b940ef21fc69c7ea126572c3721e 100644 (file)
@@ -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)
 $!
index d19940a4f28ba21deb0b6fe226af9d7de342ef0e..e383f310df267b2c5da5170b9d628d26fca368bd 100644 (file)
-$! 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)
index 5bae51939e638a70994d3e994712186b63fc8615..03235eecd1491c2bc42b9fe106a6ad99c8589f72 100644 (file)
@@ -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
 $!