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