diff options
Diffstat (limited to 'gcc_arm/make-cccp.com')
-rwxr-xr-x | gcc_arm/make-cccp.com | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/gcc_arm/make-cccp.com b/gcc_arm/make-cccp.com new file mode 100755 index 0000000..342c710 --- /dev/null +++ b/gcc_arm/make-cccp.com @@ -0,0 +1,119 @@ +$v='f$verify(0) !make-cccp.com +$! +$! Build the GNU C preprocessor on VMS. +$! +$! Usage: +$! $ @make-cccp.com [compiler] [link-only] +$! +$! 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. +$! +$ 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 = "/Opt=2/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" +$ CC = CC + "/Prefix=All" +$ 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 +$ +$! +$! Other setup: +$! +$ LDFLAGS = "/noMap" +$ PARSER = "bison" +$ RENAME = "rename/New_Version" +$ LINK = "link" +$ echo = "write sys$output" +$ +$!!!!!!! +$! 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")' +$ +$ 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) +$ +$! 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 +$ 'PARSER' cexp.y +$ 'RENAME' cexp_tab.c cexp.c +$!'f$verify(0) +$skip_yacc: +$ echo " (Ignore any warning about not finding file ""bison.simple"".)" +$ set verify +$ 'CC''CFLAGS' cexp.c +$ 'CC''CFLAGS'/Define="PREFIX=""_dummy_""" prefix.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'/Incl=[]/Defi=("HAVE_CONFIG_H","STACK_DIRECTION=(-1)") alloca.c +$!'f$verify(0) +$ endif +$! +$ +$Link: +$ echo " Linking the preprocessor." +$ set verify +$ 'LINK''LDFLAGS'/Exe=gcc-cpp.exe - + cccp.obj,cexp.obj,prefix.obj,version.obj,version.opt/Opt,- + 'LIBS' +$!'f$verify(0) +$! +$! Done +$! +$ exit 1+0*f$verify(v) |