Add VMS updates from Martin Zinser.
authorPaul Smith <psmith@gnu.org>
Tue, 1 Oct 2002 15:32:14 +0000 (15:32 +0000)
committerPaul Smith <psmith@gnu.org>
Tue, 1 Oct 2002 15:32:14 +0000 (15:32 +0000)
ChangeLog
makefile.com
makefile.vms

index 5feb3e9466c81ab2662c5cc7d78b999cf7ff3e3f..7be6353bbc275d19d096dfad8065a093d0b871f9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-30  Martin P.J. Zinser  <zinser@decus.de>
+
+       * makefile.com: Updates for GNU make 3.80.
+       * makefile.vms: Ditto.
+
 2002-09-23  Paul D. Smith  <psmith@gnu.org>
 
        * read.c (enum make_word_type): Remove w_comment.
index 4d55923d095ffcc8d4e90bfc810b6ca655394bf5..dd94bc32c7296a80088e17ac4aff4420b6d0ce93 100644 (file)
@@ -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 <stdio.h>"
+$ 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
index 9a780d860a2d38959be0c22368b3ee4cc9c7ea46..3ada8314d58649079c7d0027bed8430306c1265d 100644 (file)
@@ -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