Builds C++ Borland, MSVC++ (Win32) and GCC++ (Solaris)
[p5sagit/p5-mst-13.2.git] / miniperlmain.c
1 /*
2  * "The Road goes ever on and on, down from the door where it began."
3  */
4
5 #ifdef OEMVS
6 #pragma runopts(HEAP(1M,32K,ANYWHERE,KEEP,8K,4K))
7 #endif
8
9
10 #include "EXTERN.h"
11 #include "perl.h"
12
13 #undef EXTERN_C
14 #ifdef __cplusplus
15 #  define EXTERN_C extern "C"
16 #else
17 #  define EXTERN_C extern
18 #endif
19
20 static void xs_init _((void));
21 static PerlInterpreter *my_perl;
22
23 int
24 #ifdef CAN_PROTOTYPE
25 main(int argc, char **argv, char **env)
26 #else
27 main(argc, argv, env)
28 int argc;
29 char **argv;
30 char **env;
31 #endif
32 {
33     int exitstatus;
34
35     PERL_SYS_INIT(&argc,&argv);
36
37     perl_init_i18nl10n(1);
38
39     if (!do_undump) {
40         my_perl = perl_alloc();
41         if (!my_perl)
42             exit(1);
43         perl_construct( my_perl );
44         perl_destruct_level = 0;
45     }
46
47     exitstatus = perl_parse( my_perl, xs_init, argc, argv, (char **) NULL );
48     if (!exitstatus) {
49         exitstatus = perl_run( my_perl );
50     }
51
52     perl_destruct( my_perl );
53     perl_free( my_perl );
54
55     PERL_SYS_TERM();
56
57     exit( exitstatus );
58     return exitstatus;
59 }
60
61 /* Register any extra external extensions */
62
63 /* Do not delete this line--writemain depends on it */
64
65 static void
66 xs_init(void)
67 {
68   dXSUB_SYS;
69 }