summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2005-06-10 20:16:28 +0000
committerPaul Smith <psmith@gnu.org>2005-06-10 20:16:28 +0000
commit974d14ac4fc8dc736a4e2c9876d85d3c295b1196 (patch)
treea4cf33aba8acfeab34aca3f9cb2b9a2873a4886b
parentdd30b0552ffc4276e1ada07100b7eb4e231805fa (diff)
downloadgunmake-974d14ac4fc8dc736a4e2c9876d85d3c295b1196.tar.gz
Fixes for VMS from Hartmut Becker.
-rw-r--r--ChangeLog10
-rw-r--r--job.c6
-rw-r--r--makefile.vms2
-rw-r--r--vmsjobs.c12
4 files changed, 22 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 6482a38..86966eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2005-06-10 Paul D. Smith <psmith@gnu.org>
+
+ VMS build updates from Hartmut Becker <Hartmut.Becker@hp.com>:
+
+ * vmsjobs.c [VMS]: Updates to compile on VMS: add some missing
+ headers; make vmsWaitForChildren() static; extern vmsify().
+ * job.c [VMS]: Move vmsWaitForChildren() prototype to be global.
+ Don't create child_execute_job() here (it's in vmsjobs.c).
+ * makefile.vms (job.obj) [VMS]: Add vmsjobs.c as a prerequisite.
+
2005-06-09 Paul D. Smith <psmith@gnu.org>
* variable.c (push_new_variable_scope): File variables point
diff --git a/job.c b/job.c
index 8349445..b805eda 100644
--- a/job.c
+++ b/job.c
@@ -98,6 +98,7 @@ static int amiga_batch_file;
# endif
# include <starlet.h>
# include <lib$routines.h>
+static void vmsWaitForChildren PARAMS ((int *));
#endif
#ifdef WINDOWS32
@@ -535,7 +536,6 @@ reap_children (int block, int err)
if (any_local)
{
#ifdef VMS
- static void vmsWaitForChildren PARAMS ((int *));
vmsWaitForChildren (&status);
pid = c->pid;
#else
@@ -1905,7 +1905,7 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
return pid;
}
-#elif !defined (_AMIGA) && !defined (__MSDOS__)
+#elif !defined (_AMIGA) && !defined (__MSDOS__) && !defined (VMS)
/* UNIX:
Replace the current process with one executing the command in ARGV.
@@ -1926,7 +1926,7 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
/* Run the command. */
exec_command (argv, envp);
}
-#endif /* !AMIGA && !__MSDOS__ */
+#endif /* !AMIGA && !__MSDOS__ && !VMS */
#endif /* !WINDOWS32 */
#ifndef _AMIGA
diff --git a/makefile.vms b/makefile.vms
index 6ed86c1..09c471a 100644
--- a/makefile.vms
+++ b/makefile.vms
@@ -116,7 +116,7 @@ clean:
# Automatically generated dependencies.
commands.obj: commands.c make.h dep.h commands.h filedef.h variable.h job.h
-job.obj: job.c make.h commands.h job.h filedef.h variable.h
+job.obj: job.c vmsjobs.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
diff --git a/vmsjobs.c b/vmsjobs.c
index bc15276..0f658fe 100644
--- a/vmsjobs.c
+++ b/vmsjobs.c
@@ -4,10 +4,16 @@
This file must be #included in job.c, as it accesses static functions.
*/
+#include <string.h>
+#include <descrip.h>
+#include <clidef.h>
+
+extern char *vmsify PARAMS ((char *name, int type));
+
static int vms_jobsefnmask = 0;
/* Wait for nchildren children to terminate */
-void
+static void
vmsWaitForChildren(int *status)
{
while (1)
@@ -91,9 +97,6 @@ vms_handle_apos (char *p)
return p;
}
-#include <descrip.h>
-#include <clidef.h>
-
/* This is called as an AST when a child process dies (it won't get
interrupted by anything except a higher level AST).
*/
@@ -196,6 +199,7 @@ vmsHandleChildTerm(struct child *child)
#define MAXCMDLEN 200
/* local helpers to make ctrl+c and ctrl+y working, see below */
+#include <iodef.h>
#include <libclidef.h>
#include <ssdef.h>