From 2de1b621128ed0a4845cbfd71cf7145c508579a3 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Tue, 1 Oct 2002 15:32:14 +0000 Subject: [PATCH] Add VMS updates from Martin Zinser. --- ChangeLog | 5 +++++ makefile.com | 59 +++++++++++++++++++++++++++++++++++++++++++++++++--- makefile.vms | 6 ++++-- 3 files changed, 65 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5feb3e94..7be6353b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-09-30 Martin P.J. Zinser + + * makefile.com: Updates for GNU make 3.80. + * makefile.vms: Ditto. + 2002-09-23 Paul D. Smith * read.c (enum make_word_type): Remove w_comment. diff --git a/makefile.com b/makefile.com index 4d55923d..dd94bc32 100644 --- a/makefile.com +++ b/makefile.com @@ -4,9 +4,11 @@ $! $! P1 is non-empty if you want to link with the VAXCRTL library instead $! of the shareable executable $! P2 = DEBUG will build an image with debug information +$! P3 = WALL will enable all warning messages (some are suppressed since +$! one macro intentionally causes an error condition) $! $! In case of problems with the install you might contact me at -$! zinser@decus.decus.de (preferred) or martin_zinser@exchange.de +$! zinser@decus.de (preferred) or zinser@sysdev.deutsche-boerse.com $ $! hb $! But don't ask Martin Zinser about the lines, I added/changed. @@ -15,6 +17,14 @@ $ on error then $ goto cleanup $! in case somebody set up her/his own symbol for cc $ set symbol/scope=(nolocal,noglobal) $! +$! Just some general constants... +$! +$ true = 1 +$ false = 0 +$ tmpnam = "temp_" + f$getjpi("","pid") +$ tt = tmpnam + ".txt" +$ tc = tmpnam + ".c" +$! $! Look for the compiler used $! $ lval = "" @@ -49,7 +59,17 @@ $ lopt = "/debug" $ else $ lopt = "" $ endif -$ filelist = "alloca ar arscan commands default dir expand file function hash implicit job main misc read remake remote-stub rule signame variable version vmsfunctions vmsify vpath [.glob]glob [.glob]fnmatch getopt1 getopt" +$! +$! Do we want to see all warnings +$! +$ if (p3.nes."WALL") +$ then +$ gosub check_cc_qual +$ endif +$ filelist = "alloca ar arscan commands default dir expand file function " + - + "hash implicit job main misc read remake remote-stub rule " + - + "signame variable version vmsfunctions vmsify vpath " + - + "[.glob]glob [.glob]fnmatch getopt1 getopt" $ copy config.h-vms config.h $ n=0 $ open/write optf make.opt @@ -75,11 +95,44 @@ $ if f$trnlnm("OPTF").nes."" then $ close optf $ if f$search("make.opt").nes."" then $ del make.opt;* $ exit $! +$!------------------------------------------------------------------------------ +$! +$! Check if this is a define relating to the properties of the C/C++ +$! compiler +$! +$CHECK_CC_QUAL: +$ open/write tmpc 'tc +$ ccqual = "/warn=(disable=questcompare)" +$ write tmpc "#include " +$ write tmpc "unsigned int i = 1;" +$ write tmpc "int main(){" +$ write tmpc "if (i < 0){printf(""Mission impossible\n"");}}" +$ close tmpc +$ gosub cc_qual_check +$ return +$! +$!------------------------------------------------------------------------------ +$! +$! Check for properties of C/C++ compiler +$! +$CC_QUAL_CHECK: +$ cc_qual = false +$ set message/nofac/noident/nosever/notext +$ cc 'ccqual' 'tmpnam' +$ if $status then cc_qual = true +$ set message/fac/ident/sever/text +$ delete/nolog 'tmpnam'.*;* +$ if cc_qual then ccopt = ccopt + ccqual +$ return +$!------------------------------------------------------------------------------ +$! $ compileit : subroutine $ ploc = f$locate("]",p1) $ filnam = p1 $ if ploc .lt. f$length(p1) then filnam=f$extract(ploc+1,100,p1) $ write optf "''filnam'" -$ cc'ccopt'/include=([],[.glob])/define=("allocated_variable_expand_for_file=alloc_var_expand_for_file","unlink=remove","HAVE_CONFIG_H","VMS") 'p1' +$ cc'ccopt'/include=([],[.glob]) - + /define=("allocated_variable_expand_for_file=alloc_var_expand_for_file","unlink=remove","HAVE_CONFIG_H","VMS") - + 'p1' $ exit $ endsubroutine : compileit diff --git a/makefile.vms b/makefile.vms index 9a780d86..3ada8314 100644 --- a/makefile.vms +++ b/makefile.vms @@ -4,6 +4,7 @@ # VMS extensions from GNU Make 3.60 imported by # Klaus Kämpf (kkaempf@rmi.de) # Modified for version 3.78.1 by Hartmut.Becker@compaq.com. +# Modified for version 3.80 by zinser@decus.de # # GNU Make is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -86,11 +87,11 @@ mandir = [] # Number to put on the man page filename. manext = 1 -objs = commands.obj,job.obj,dir.obj,file.obj,misc.obj,\ +objs = commands.obj,job.obj,dir.obj,file.obj,misc.obj,hash.obj,\ main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\ default.obj,variable.obj,expand.obj,function.obj,\ vpath.obj,version.obj$(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob) -srcs = commands.c job.c dir.c file.c misc.c \ +srcs = commands.c job.c dir.c file.c misc.c hash.c\ main.c read.c remake.c rule.c implicit.c \ default.c variable.c expand.c function.c \ vpath.c version.c vmsfunctions.c vmsify.c $(ARCHIVES_SRC) $(ALLOCASRC) \ @@ -119,6 +120,7 @@ job.obj: job.c make.h commands.h job.h filedef.h variable.h dir.obj: dir.c make.h file.obj: file.c make.h commands.h dep.h filedef.h variable.h misc.obj: misc.c make.h dep.h +hash.obj: hash.c make.h hash.h main.obj: main.c make.h commands.h dep.h filedef.h variable.h job.h read.obj: read.c make.h commands.h dep.h filedef.h variable.h remake.obj: remake.c make.h commands.h job.h dep.h filedef.h