1 /* Template for the remote job exportation interface to GNU Make. 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software 4 Foundation, Inc. 5 This file is part of GNU Make. 6 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 terms of the GNU General Public License as published by the Free Software 9 Foundation; either version 2, or (at your option) any later version. 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 12 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 13 A PARTICULAR PURPOSE. See the GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License along with 16 GNU Make; see the file COPYING. If not, write to the Free Software 17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ 18 19 #include "make.h" 20 #include "filedef.h" 21 #include "job.h" 22 #include "commands.h" 23 24 25 char *remote_description = 0; 26 27 /* Call once at startup even if no commands are run. */ 28 29 void 30 remote_setup (void) 31 { 32 } 33 34 /* Called before exit. */ 35 36 void 37 remote_cleanup (void) 38 { 39 } 40 41 /* Return nonzero if the next job should be done remotely. */ 43 44 int 45 start_remote_job_p (int first_p UNUSED) 46 { 47 return 0; 48 } 49 50 /* Start a remote job running the command in ARGV, 52 with environment from ENVP. It gets standard input from STDIN_FD. On 53 failure, return nonzero. On success, return zero, and set *USED_STDIN 54 to nonzero if it will actually use STDIN_FD, zero if not, set *ID_PTR to 55 a unique identification, and set *IS_REMOTE to zero if the job is local, 56 nonzero if it is remote (meaning *ID_PTR is a process ID). */ 57 58 int 59 start_remote_job (char **argv UNUSED, char **envp UNUSED, int stdin_fd UNUSED, 60 int *is_remote UNUSED, int *id_ptr UNUSED, 61 int *used_stdin UNUSED) 62 { 63 return -1; 64 } 65 66 /* Get the status of a dead remote child. Block waiting for one to die 68 if BLOCK is nonzero. Set *EXIT_CODE_PTR to the exit status, *SIGNAL_PTR 69 to the termination signal or zero if it exited normally, and *COREDUMP_PTR 70 nonzero if it dumped core. Return the ID of the child that died, 71 0 if we would have to block and !BLOCK, or < 0 if there were none. */ 72 73 int 74 remote_status (int *exit_code_ptr UNUSED, int *signal_ptr UNUSED, 75 int *coredump_ptr UNUSED, int block UNUSED) 76 { 77 errno = ECHILD; 78 return -1; 79 } 80 81 /* Block asynchronous notification of remote child death. 82 If this notification is done by raising the child termination 83 signal, do not block that signal. */ 84 void 85 block_remote_children (void) 86 { 87 return; 88 } 89 90 /* Restore asynchronous notification of remote child death. 91 If this is done by raising the child termination signal, 92 do not unblock that signal. */ 93 void 94 unblock_remote_children (void) 95 { 96 return; 97 } 98 99 /* Send signal SIG to child ID. Return 0 if successful, -1 if not. */ 100 int 101 remote_kill (int id UNUSED, int sig UNUSED) 102 { 103 return -1; 104 } 105