Home | History | Annotate | Download | only in make-3.81
      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