2014-08-13 10:39:27 +01:00
|
|
|
/* Conditionally execute a command based on machine and OS from gcconfig.h */
|
|
|
|
|
2020-01-16 16:38:04 +00:00
|
|
|
# include "private/gc_priv.h"
|
2014-08-13 10:39:27 +01:00
|
|
|
# include <stdio.h>
|
|
|
|
# include <string.h>
|
|
|
|
# include <unistd.h>
|
|
|
|
|
2020-01-16 16:38:04 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
# define EXECV_ARGV_T char**
|
|
|
|
#else
|
|
|
|
/* The 2nd argument of execvp() prototype may be either char**, or */
|
|
|
|
/* char* const*, or const char* const*. */
|
|
|
|
# define EXECV_ARGV_T void*
|
|
|
|
#endif
|
|
|
|
|
|
|
|
int main(int argc, char **argv)
|
2014-08-13 10:39:27 +01:00
|
|
|
{
|
|
|
|
if (argc < 4) goto Usage;
|
|
|
|
if (strcmp(MACH_TYPE, argv[1]) != 0) return(0);
|
2020-01-16 16:38:04 +00:00
|
|
|
if (strlen(OS_TYPE) > 0 && strlen(argv[2]) > 0
|
2014-08-13 10:39:27 +01:00
|
|
|
&& strcmp(OS_TYPE, argv[2]) != 0) return(0);
|
|
|
|
fprintf(stderr, "^^^^Starting command^^^^\n");
|
|
|
|
fflush(stdout);
|
2020-01-16 16:38:04 +00:00
|
|
|
execvp(TRUSTED_STRING(argv[3]), (EXECV_ARGV_T)(argv + 3));
|
2014-08-13 10:39:27 +01:00
|
|
|
perror("Couldn't execute");
|
2020-01-16 16:38:04 +00:00
|
|
|
|
2014-08-13 10:39:27 +01:00
|
|
|
Usage:
|
|
|
|
fprintf(stderr, "Usage: %s mach_type os_type command\n", argv[0]);
|
|
|
|
fprintf(stderr, "Currently mach_type = %s, os_type = %s\n",
|
2020-01-16 16:38:04 +00:00
|
|
|
MACH_TYPE, OS_TYPE);
|
2014-08-13 10:39:27 +01:00
|
|
|
return(1);
|
|
|
|
}
|