1 /* autocmp.c - execute command if a specific compilation option is available */
2 
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include "auto.h"
7 
run(int argc,char ** argv)8 int run(int argc, char **argv)
9 {
10   unsigned int argNum;
11   char *cmdline;
12   unsigned long int cmdLen;
13   int rc;
14 
15   cmdLen = 0;
16   for (argNum = 2; argNum < argc; argNum++)
17   {
18     cmdLen += strlen(argv[argNum]) + 1;
19   }
20 
21   cmdline = malloc(cmdLen + 1);
22   *cmdline = 0;
23 
24   for (argNum = 3; argNum < argc; argNum++)
25   {
26     strcat(cmdline, argv[argNum]);
27     if ((argNum + 1) < argc) strcat(cmdline, " ");
28   }
29 
30   printf("Executing '%s'\n", cmdline);
31   rc = system(cmdline);
32   free(cmdline);
33 
34   return rc;
35 }
36 
main(int argc,char ** argv)37 int main (int argc, char **argv)
38 {
39   if (argc < 3)
40   {
41     printf("Usage: autocmp <option> <0|1> <command>\n");
42 
43     return 100;
44   }
45 
46   if (!strcmp(argv[1], "rl"))
47   {
48 #ifdef HAVE_READLINE
49     if (*argv[2] == '1') return run(argc, argv);
50 #else
51     if (*argv[2] == '0') return run(argc, argv);
52 #endif
53   }
54   else
55   {
56     printf("Unknown option: '%s'\n", argv[1]);
57     return 101;
58   }
59 
60   return 0;
61 }
62