Ticket #1752: Compile.c

File Compile.c, 1.3 KB (added by Martin Sjölund, 12 years ago)

Compile.bat replacement

Line 
1#include <stdlib.h>
2
3int main(int argc, const char **argv) {
4 char *omdev, *cd, *make;
5 int prefixlen;
6 if (argc != 2) {
7 fprintf(stderr, "Usage: %s [model-prefix]\n", argc > 0 ? *argv : "OpenModelica-Compile");
8 return 1;
9 }
10 prefixlen = strlen(argv[1]);
11 logfile = malloc(prefixlen + 10);
12 sprintf(logfile, "%s.log", argv[1]);
13 freopen(logfile, "w", stdout);
14 unsetenv("GCC_EXEC_PREFIX");
15 unsetenv("CPLUS_INCLUDE_PATH");
16 unsetenv("C_INCLUDE_PATH");
17 unsetenv("LIBRARY_PATH");
18 omdev = getenv("OMDEV");
19 if (!omdev) {
20 char *omhome;
21 omhome = getenv("OPENMODELICAHOME");
22 if (!omhome) {
23 fprintf(stderr, "OPENMODELICAHOME was not set; aborting");
24 return 1;
25 }
26 mingw = malloc(strlen(omhome) + 10);
27 sprintf(mingw, "%s\\MinGW", omhome);
28 } else {
29 mingw = malloc(strlen(omhome) + 25);
30 sprintf(mingw, "%s\\tools\\MinGW", omdev);
31 }
32 cd = get_current_dir_name();
33 path = malloc(strlen(cd)*2 + 50);
34 sprintf(path, "%s;%s\..\libexec\gcc\mingw32\4.4.0\;");
35 printf("Setting MINGW=%s\n", mingw);
36 printf("Setting PATH=%s\n", path);
37 setenv("MINGW", mingw);
38 setenv("PATH", path);
39 make = malloc(strlen(mingw) + +prefixlen + 100);
40 sprintf(make, "%s\bin\mingw32-make -f %s.makefile 2>&1");
41 printf("Executing command: %s\n", make);
42 return system(make);
43 /* let the OS free() */
44}