[BACK]Return to main.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / make

Diff for /src/usr.bin/make/main.c between version 1.38 and 1.39

version 1.38, 2000/07/01 00:21:22 version 1.39, 2000/07/18 20:17:20
Line 140 
Line 140 
 char *                  chdir_verify_path __P((char *, char *));  char *                  chdir_verify_path __P((char *, char *));
 static int              ReadMakefile __P((void *, void *));  static int              ReadMakefile __P((void *, void *));
 static void             usage __P((void));  static void             usage __P((void));
   static void             posixParseOptLetter __P((char));
 int                     main __P((int, char **));  int                     main __P((int, char **));
   
 static char *curdir;                    /* startup directory */  static char *curdir;                    /* startup directory */
 static char *objdir;                    /* where we chdir'ed to */  static char *objdir;                    /* where we chdir'ed to */
   
   static void
   posixParseOptLetter(c)
       char c;
   {
           switch(c) {
           case 'B':
                   compatMake = TRUE;
                   break;
           case 'P':
                   usePipes = FALSE;
                   Var_Append(MAKEFLAGS, "-P", VAR_GLOBAL);
                   break;
           case 'S':
                   keepgoing = FALSE;
                   Var_Append(MAKEFLAGS, "-S", VAR_GLOBAL);
                   break;
           case 'e':
                   checkEnvFirst = TRUE;
                   Var_Append(MAKEFLAGS, "-e", VAR_GLOBAL);
                   break;
           case 'i':
                   ignoreErrors = TRUE;
                   Var_Append(MAKEFLAGS, "-i", VAR_GLOBAL);
                   break;
           case 'k':
                   keepgoing = TRUE;
                   Var_Append(MAKEFLAGS, "-k", VAR_GLOBAL);
                   break;
           case 'n':
                   noExecute = TRUE;
                   Var_Append(MAKEFLAGS, "-n", VAR_GLOBAL);
                   break;
           case 'q':
                   queryFlag = TRUE;
                   /* Kind of nonsensical, wot? */
                   Var_Append(MAKEFLAGS, "-q", VAR_GLOBAL);
                   break;
           case 'r':
                   noBuiltins = TRUE;
                   Var_Append(MAKEFLAGS, "-r", VAR_GLOBAL);
                   break;
           case 's':
                   beSilent = TRUE;
                   Var_Append(MAKEFLAGS, "-s", VAR_GLOBAL);
                   break;
           case 't':
                   touchFlag = TRUE;
                   Var_Append(MAKEFLAGS, "-t", VAR_GLOBAL);
                   break;
           default:
           case '?':
                   usage();
           }
   }
   
 /*-  /*-
  * MainParseArgs --   * MainParseArgs --
  *      Parse a given argument vector. Called from main() and from   *      Parse a given argument vector. Called from main() and from
Line 175 
Line 231 
 #else  #else
 # define OPTFLAGS "BD:I:PSV:d:ef:ij:km:nqrst"  # define OPTFLAGS "BD:I:PSV:d:ef:ij:km:nqrst"
 #endif  #endif
   # define OPTLETTERS "BPSiknqrst"
 rearg:  while((c = getopt(argc, argv, OPTFLAGS)) != -1) {  rearg:  while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
                 switch(c) {                  switch(c) {
                 case 'D':                  case 'D':
Line 193 
Line 250 
                         Var_Append(MAKEFLAGS, "-V", VAR_GLOBAL);                          Var_Append(MAKEFLAGS, "-V", VAR_GLOBAL);
                         Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);                          Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);
                         break;                          break;
                 case 'B':  
                         compatMake = TRUE;  
                         break;  
 #ifdef REMOTE  #ifdef REMOTE
                 case 'L': {                  case 'L': {
                    char *endptr;                     char *endptr;
Line 212 
Line 266 
                         break;                          break;
                 }                  }
 #endif  #endif
                 case 'P':  
                         usePipes = FALSE;  
                         Var_Append(MAKEFLAGS, "-P", VAR_GLOBAL);  
                         break;  
                 case 'S':  
                         keepgoing = FALSE;  
                         Var_Append(MAKEFLAGS, "-S", VAR_GLOBAL);  
                         break;  
                 case 'd': {                  case 'd': {
                         char *modules = optarg;                          char *modules = optarg;
   
Line 275 
Line 321 
                         Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);                          Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);
                         break;                          break;
                 }                  }
                 case 'e':  
                         checkEnvFirst = TRUE;  
                         Var_Append(MAKEFLAGS, "-e", VAR_GLOBAL);  
                         break;  
                 case 'f':                  case 'f':
                         Lst_AtEnd(&makefiles, optarg);                          Lst_AtEnd(&makefiles, optarg);
                         break;                          break;
                 case 'i':  
                         ignoreErrors = TRUE;  
                         Var_Append(MAKEFLAGS, "-i", VAR_GLOBAL);  
                         break;  
                 case 'j': {                  case 'j': {
                    char *endptr;                     char *endptr;
   
Line 305 
Line 343 
                         Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);                          Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);
                         break;                          break;
                 }                  }
                 case 'k':  
                         keepgoing = TRUE;  
                         Var_Append(MAKEFLAGS, "-k", VAR_GLOBAL);  
                         break;  
                 case 'm':                  case 'm':
                         Dir_AddDir(&sysIncPath, optarg);                          Dir_AddDir(&sysIncPath, optarg);
                         Var_Append(MAKEFLAGS, "-m", VAR_GLOBAL);                          Var_Append(MAKEFLAGS, "-m", VAR_GLOBAL);
                         Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);                          Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);
                         break;                          break;
                 case 'n':  
                         noExecute = TRUE;  
                         Var_Append(MAKEFLAGS, "-n", VAR_GLOBAL);  
                         break;  
                 case 'q':  
                         queryFlag = TRUE;  
                         /* Kind of nonsensical, wot? */  
                         Var_Append(MAKEFLAGS, "-q", VAR_GLOBAL);  
                         break;  
                 case 'r':  
                         noBuiltins = TRUE;  
                         Var_Append(MAKEFLAGS, "-r", VAR_GLOBAL);  
                         break;  
                 case 's':  
                         beSilent = TRUE;  
                         Var_Append(MAKEFLAGS, "-s", VAR_GLOBAL);  
                         break;  
                 case 't':  
                         touchFlag = TRUE;  
                         Var_Append(MAKEFLAGS, "-t", VAR_GLOBAL);  
                         break;  
                 default:                  default:
                 case '?':                          posixParseOptLetter(c);
                         usage();  
                 }                  }
         }          }
   
Line 398 
Line 410 
         int argc;                       /* Number of arguments in argv */          int argc;                       /* Number of arguments in argv */
         char *args;                     /* Space used by the args */          char *args;                     /* Space used by the args */
         char *buf;          char *buf;
         char *argv0 = Var_Value(".MAKE", VAR_GLOBAL);          char *argv0;
           char *s;
   
         if (line == NULL)          if (line == NULL)
                 return;                  return;
Line 407 
Line 420 
         if (!*line)          if (!*line)
                 return;                  return;
   
           /* POSIX rule: MAKEFLAGS can hold a set of option letters without
            * any blanks or dashes. */
           for (s = line;; s++) {
                   if (*s == '\0') {
                           while (line != s)
                                   posixParseOptLetter(*line++);
                           return;
                   }
                   if (strchr(OPTLETTERS, *s) == NULL)
                           break;
           }
           argv0 = Var_Value(".MAKE", VAR_GLOBAL);
         buf = emalloc(strlen(line) + strlen(argv0) + 2);          buf = emalloc(strlen(line) + strlen(argv0) + 2);
         (void)sprintf(buf, "%s %s", argv0, line);          (void)sprintf(buf, "%s %s", argv0, line);
   
Line 654 
Line 679 
   
         MainParseArgs(argc, argv);          MainParseArgs(argc, argv);
   
   #ifdef NotYet
           Var_AddCmdline(MAKEFLAGS);
   #endif
   
         /*          /*
          * Initialize archive, target and suffix modules in preparation for           * Initialize archive, target and suffix modules in preparation for

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39