summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>1999-07-21 16:06:18 +0000
committerPaul Smith <psmith@gnu.org>1999-07-21 16:06:18 +0000
commitc69d4c95bf2027252e13e4dec3fb2dcfd10fc4e7 (patch)
treed27151a5249aad92d389f8da736210d33ee4ddc4
parent588da9812e055fbceb900c350ab406f97eccbf37 (diff)
downloadgunmake-c69d4c95bf2027252e13e4dec3fb2dcfd10fc4e7.tar.gz
* Installed VMS fixes.
-rw-r--r--ChangeLog57
-rw-r--r--NEWS8
-rw-r--r--config.h-vms.template14
-rw-r--r--dir.c2
-rw-r--r--makefile.com25
5 files changed, 69 insertions, 37 deletions
diff --git a/ChangeLog b/ChangeLog
index 25978d7..331d02e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -398,13 +398,20 @@
1999-02-16 Glenn D. Wolf <Glenn_Wolf@email.sps.mot.com>
- * arscan.c (ar_scan): [VMS] Initialized VMS_member_date before
+ * arscan.c (ar_scan) [VMS]: Initialized VMS_member_date before
calling lbr$get_index since if the archive is empty,
VMS_get_member_info won't get called at all, and any leftover date
will be used. This bug shows up if any member of any archive is
made, followed by a dependency check on a different, empty
archive.
+1998-12-13 Martin Zinser <zinser@decus.decus.de>
+
+ * config.h-vms [VMS]: Set _POSIX_C_SOURCE. Redefine the getopt
+ functions so we don't use the broken VMS versions.
+ * makefile.com [VMS]: Allow debugging.
+ * dir.c (dir_setup_glob) [VMS]: Don't extern stat() on VMS.
+
1998-11-30 Paul D. Smith <psmith@gnu.org>
* signame.c (init_sig): Check the sizes of signals being set up to
@@ -877,7 +884,7 @@
1998-05-11 Rob Tulloh <rob_tulloh@tivoli.com>
- * job.c (construct_command_argv_internal): [WINDOWS32] Turn off
+ * job.c (construct_command_argv_internal) [WINDOWS32]: Turn off
echo when using a batch file, and make sure the command ends in a
newline.
@@ -1010,8 +1017,8 @@
Tue Oct 07 15:00:00 1997 Phil Brooks <phillip_brooks@hp.com>
- * make.h: [WINDOWS32] make case sensitivity configurable
- * dir.c: [WINDOWS32] make case sensitivity configurable
+ * make.h [WINDOWS32]: make case sensitivity configurable
+ * dir.c [WINDOWS32]: make case sensitivity configurable
* README.W32: Document case sensitivity
* config.ami: Share case warping code with Windows
@@ -1019,20 +1026,20 @@ Mon Oct 6 18:48:45 CDT 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com>
* w32/subproc/sub_proc.c: Added support for MKS toolkit shell
(turn on HAVE_MKS_SHELL).
- * read.c: [WINDOWS32] Fixed a problem with multiple target rules
+ * read.c [WINDOWS32]: Fixed a problem with multiple target rules
reported by Gilbert Catipon (gcatipon@tibco.com). If multiple
path tokens in a rule did not have drive letters, make would
incorrectly concatenate the 2 tokens together.
- * main.c/variable.c: [WINDOWS32] changed SHELL detection code to
+ * main.c/variable.c [WINDOWS32]: changed SHELL detection code to
follow what MSDOS did. In addition to watching for SHELL variable
updates, make's main will attempt to default the value of SHELL
before and after makefiles are parsed.
- * job.c/job.h: [WINDOWS32] The latest changes made to enable use
+ * job.c/job.h [WINDOWS32]: The latest changes made to enable use
of the GNUWIN32 shell from make could cause make to fail due to a
concurrency condition between parent and child processes. Make
now creates a batch file per job instead of trying to reuse the
same singleton batch file.
- * job.c/job.h/function.c/config.h.W32: [WINDOWS32] Renamed macro
+ * job.c/job.h/function.c/config.h.W32 [WINDOWS32]: Renamed macro
from HAVE_CYGNUS_GNUWIN32_TOOLS to BATCH_MODE_ONLY_SHELL. Reworked
logic to reduce complexity. WINDOWS32 now uses the unixy_shell
variable to detect Bourne-shell compatible environments. There is
@@ -1048,19 +1055,19 @@ Mon Oct 6 18:48:45 CDT 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com>
Mon Oct 6 00:04:25 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com>
- * main.c: [WINDOWS32] The function define_variable() does not
+ * main.c [WINDOWS32]: The function define_variable() does not
handle NULL. Test before calling it to set Path.
- * main.c: [WINDOWS32] Search Path again after makefiles have been
+ * main.c [WINDOWS32]: Search Path again after makefiles have been
parsed to detect sh.exe.
- * job.c: [WINDOWS32] Added support for Cygnus GNU WIN32 tools.
+ * job.c [WINDOWS32]: Added support for Cygnus GNU WIN32 tools.
To use, turn on HAVE_CYGNUS_GNUWIN32_TOOLS in config.h.W32.
* config.h.W32: Added HAVE_CYGNUS_GNUWIN32_TOOLS macro.
Sun Oct 5 22:43:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
- * glob/glob.c (glob_in_dir): [VMS] Globbing shouldn't be
+ * glob/glob.c (glob_in_dir) [VMS]: Globbing shouldn't be
case-sensitive.
- * job.c (child_execute_job): [VMS] Use a VMS .com file if the
+ * job.c (child_execute_job) [VMS]: Use a VMS .com file if the
command contains a newline (e.g. from a define/enddef block).
* vmsify.c (vmsify): Return relative pathnames wherever possible.
* vmsify.c (vmsify): An input string like "../.." returns "[--]".
@@ -1070,22 +1077,22 @@ Wed Oct 1 15:45:09 1997 Rob Tulloh <rob_tulloh@tivoli.com>
* NMakefile: Changed nmake to $(MAKE).
* subproc.bat: Take the make command name from the command
line. If no command name was given, default to nmake.
- * job.c: [WINDOWS32/MSDOS] Fix memory stomp: temporary file names
+ * job.c [MSDOS, WINDOWS32]: Fix memory stomp: temporary file names
are now always created in heap memory.
* w32/subproc/sub_proc.c: New implementation of make_command_line()
which is more compatible with different Bourne shell implementations.
Deleted the now obsolete fix_command_line() function.
- * main.c: [WINDOWS32] Any arbitrary spelling of Path can be
+ * main.c [WINDOWS32]: Any arbitrary spelling of Path can be
detected. Make will ensure that the special spelling `Path' is
inserted into the environment when the path variable is propagated
within itself and to make's children.
- * main.c: [WINDOWS32] Detection of sh.exe was occurring too
+ * main.c [WINDOWS32]: Detection of sh.exe was occurring too
soon. The 2nd check for the existence of sh.exe must come after
the call to read_all_makefiles().
Fri Sep 26 01:14:18 1997 <zinser@axp602.gsi.de>
- * makefile.com: [VMS] Fixed definition of sys.
+ * makefile.com [VMS]: Fixed definition of sys.
* readme.vms: Comments on what's changed lately.
Fri Sep 26 01:14:18 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
@@ -1136,7 +1143,7 @@ Fri Aug 29 02:01:27 1997 Paul D. Smith <psmith@baynetworks.com>
Thu Aug 28 19:39:06 1997 Rob Tulloh <rob_tulloh@tivoli.com>
- * job.c (exec_command): [WINDOWS32] If exec_command() is invoked
+ * job.c (exec_command) [WINDOWS32]: If exec_command() is invoked
from main() to re-exec make, the call to execvp() would
incorrectly return control to parent shell before the exec'ed
command could run to completion. I believe this is a feature of
@@ -1156,7 +1163,7 @@ Thu Aug 28 17:04:47 1997 Paul D. Smith <psmith@baynetworks.com>
* configure.in: Check for pstat_getdynamic for getloadvg on HP.
- * job.c (start_job_command): [VMS,_AMIGA] Don't perform empty
+ * job.c (start_job_command) [VMS, _AMIGA]: Don't perform empty
command optimization on these systems; it doesn't make sense.
Wed Aug 27 17:09:32 1997 Paul D. Smith <psmith@baynetworks.com>
@@ -1188,7 +1195,7 @@ Sat Aug 23 1997 Eli Zaretskii <eliz@is.elta.co.il>
Fri Aug 22 1997 Eli Zaretskii <eliz@is.elta.co.il>
- * job.c (start_job_command): [__MSDOS__] Don't test for "/bin/sh"
+ * job.c (start_job_command) [__MSDOS__]: Don't test for "/bin/sh"
literally, use value of unixy_shell instead.
* filedef.h (NEW_MTIME): Use 1 less than maximum possible value if
@@ -1210,7 +1217,7 @@ Fri Aug 8 15:18:09 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
Thu Aug 7 22:24:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
- * ar.c: [VMS] Don't declare ar_member_touch.
+ * ar.c [VMS]: Don't declare ar_member_touch.
Delete VMS version of ar_member_date.
Enable non-VMS versions of ar_member_date and ar_member_date_1 for
VMS too.
@@ -1223,11 +1230,11 @@ Thu Aug 7 22:24:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu>
* remake.c: Delete declaration of vms_stat.
(name_mtime): Don't call vms_stat.
- (f_mtime): [VMS] Funky time value manipulation no longer necessary.
+ (f_mtime) [VMS]: Funky time value manipulation no longer necessary.
* file.c (print_file): [VMS] Use ctime, not cvt_time.
- * make.h: [VMS] Don't define POSIX.
+ * make.h [VMS]: Don't define POSIX.
* makefile.com (filelist): Include ar and arscan.
Also include them in the link commands.
@@ -1507,9 +1514,9 @@ Thu Jul 25 19:53:31 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
when killing final space and dash before setting MFLAGS.
From Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>:
- * dir.c [__MSDOS__] [DJGPP > 1]: Include <libc/dosio.h> and defin
+ * dir.c [__MSDOS__ && DJGPP > 1]: Include <libc/dosio.h> and defin
`__opendir_flags' initialized to 0.
- [__MSDOS__] (dosify) [DJGPP > 1]: Return name unchanged if _USE_LFN.
+ (dosify) [__MSDOS__ && DJGPP > 1]: Return name unchanged if _USE_LFN.
(find_directory) [__MSDOS__ && DJGPP > 1]: If _USE_LGN, set
__opendir_flags to __OPENDIR_PRESERVE_CASE.
diff --git a/NEWS b/NEWS
index 4775cb4..8f04869 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
GNU make NEWS -*-indented-text-*-
History of user-visible changes.
- 13 Apr 1999
+ 21 Jul 1999
Copyright (C) 1992,93,94,95,96,97,98,1999 Free Software Foundation, Inc.
See the end for copying conditions.
@@ -18,15 +18,15 @@ Version 3.78
causes the text provided to be printed as a warning message, but make
proceeds normally.
-* A new function, $(apply ...) is provided. This allows users to create
- their own parameterized macros and invoke them later. This
+* A new function, $(call ...) is provided. This allows users to create
+ their own parameterized macros and invoke them later. Original
implementation of this feature was provided by Han-Wen Nienhuys
<hanwen@cs.uu.nl>.
* Make defines a new variable, .LIBPATTERNS. This variable controls how
library dependency expansion (dependencies like ``-lfoo'') is performed.
-* Make allows CRLF sequences as well as traditional LF, for
+* Make accepts CRLF sequences as well as traditional LF, for
compatibility with makefiles created on other operating systems.
* Make accepts a new option: -R, or --no-builtin-variables. This option
diff --git a/config.h-vms.template b/config.h-vms.template
index dca4bda..4effc66 100644
--- a/config.h-vms.template
+++ b/config.h-vms.template
@@ -123,8 +123,12 @@
with this defined. */
/* #undef _POSIX_1_SOURCE */
+#include <sys/types.h>
+#include <ctype.h>
+#include <signal.h>
+
/* Define if you need to in order for stat and other things to work. */
-/* #undef _POSIX_SOURCE */
+#define _POSIX_C_SOURCE 1
/* Define as the return type of signal handlers (int or void). */
#define RETSIGTYPE void
@@ -321,6 +325,14 @@
#define INCLUDEDIR "sys$sysroot:[syslib]"
#define LIBDIR "sys$sysroot:[syslib]"
+/* Avoid broken RTL functions on OpenVMS */
+#include <unixlib.h>
+#define getopt gnu_getopt
+#define optarg gnu_optarg
+#define optopt gnu_optopt
+#define optind gnu_optind
+#define opterr gnu_opterr
+
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
#undef PARAMS
#define PARAMS(protos) protos
diff --git a/dir.c b/dir.c
index 9812f92..fc0b6f5 100644
--- a/dir.c
+++ b/dir.c
@@ -1061,7 +1061,9 @@ void
dir_setup_glob (gl)
glob_t *gl;
{
+#ifndef VMS
extern int stat ();
+#endif
/* Bogus sunos4 compiler complains (!) about & before functions. */
gl->gl_opendir = open_dirstream;
diff --git a/makefile.com b/makefile.com
index b7bb65c..f180df2 100644
--- a/makefile.com
+++ b/makefile.com
@@ -3,9 +3,10 @@ $! Makefile.com - builds GNU Make for VMS
$!
$! 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
$!
-$! In case of problems with the install you might contact me at
-$! zinser@decus.decus.de (preferred) or eurmpz@eur.sas.com
+$! In case of problems with the install you might contact me at
+$! zinser@decus.decus.de (preferred) or martin_zinser@exchange.de
$!
$! Look for the compiler used
$!
@@ -18,8 +19,8 @@ $ else
$ ccopt = "/decc/prefix=all"
$ if f$trnlnm("SYS").eqs.""
$ then
-$ if f$trnlnm("DECC$LIBRARY_INCLUDE").nes.""
-$ then
+$ if f$trnlnm("DECC$LIBRARY_INCLUDE").nes.""
+$ then
$ define sys decc$library_include:
$ else
$ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]DECC$RTLDEF.DIR").nes."" -
@@ -27,10 +28,20 @@ $ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]DECC$RTLDEF.DIR").nes."" -
$ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]SYS$STARLET_C.DIR").nes."" -
then lval = lval+"SYS$COMMON:[DECC$LIB.REFERENCE.SYS$STARLET_C],"
$ lval=lval+"SYS$LIBRARY:"
-$ define sys 'lval
+$ define sys 'lval
$ endif
$ endif
$ endif
+$!
+$! Should we build a debug image
+$!
+$ if (p2.eqs."DEBUG")
+$ then
+$ ccopt = ccopt + "/noopt/debug"
+$ lopt = "/debug"
+$ else
+$ lopt = ""
+$ endif
$ filelist = "alloca ar arscan commands default dir expand file function 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
@@ -45,10 +56,10 @@ $ goto loop
$ linkit:
$ close optf
$ if p1 .nes. "" then goto link_using_library
-$ link/exe=make make.opt/opt
+$ link/exe=make make.opt/opt'lopt
$ exit
$ link_using_library:
-$ link/exe=make make.opt/opt,sys$library:vaxcrtl/lib
+$ link/exe=make make.opt/opt,sys$library:vaxcrtl/lib'lopt
$!
$ compileit : subroutine
$ ploc = f$locate("]",p1)