4.4BSD/usr/src/contrib/gcc-2.3.3/make-cccp.com

$! 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")'
$!
$!	Build the GNU "C" pre-processor 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:
$
$!
$!	C compiler
$!
$ CC	:=	gcc
$! CC	:=	cc	!uncomment for VAXC
$ BISON	:=	bison
$ RENAME :=	rename
$ LINK	:=	link
$!
$!	Compiler options
$!
$ CFLAGS =	"/debug/incl=([],[.config])"
$! CFLAGS =	"/noopt/incl=([],[.config])"	!uncomment for VAXC
$!
$!	Link options
$!
$ 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
$
$ if "''p1'" .eqs. "LINK" then goto Link
$ 'CC 'CFLAGS cccp.c
$ 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$:
$ bison cexp.y
$ rename cexp_tab.c cexp.c
$ 20$:
$!
$ if f$locate("alloca.obj",f$edit(LIBS,"lowercase")).lt.f$length(LIBS) then -
  'CC 'CFLAGS /define="STACK_DIRECTION=(-1)" alloca.c
$!
$ 'CC 'CFLAGS cexp.c
$ 'CC 'CFLAGS version.c
$ Link:
$ link 'LDFLAGS /exe=gcc-cpp cccp,cexp,version,version.opt/opt,'LIBS'
$!
$!	Done
$!
$ exit