Mercurial > mxe-octave
diff src/build-msvctools/libgfortran-dllinit.c @ 3061:f8299bb6c872
Initial support for native MSVC compilation.
* add MSVC support files: compiler wrappers and support libraries
* adapt libiconv to work with MSVC
* adapt gettext to work with MSVC
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Mon, 17 Jun 2013 22:43:11 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/build-msvctools/libgfortran-dllinit.c Mon Jun 17 22:43:11 2013 -0400 @@ -0,0 +1,47 @@ +#include <stdlib.h> +#include <stdio.h> +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +extern void _gfortrani_init_variables (void); +extern void _gfortrani_init_units (void); +extern void _gfortrani_close_units (void); +extern void _gfortrani_set_fpu (void); +extern void _gfortrani_init_compile_options (void); +extern void _gfortran_random_seed_i4 (void *a, void *b, void *c); +extern int _gfortrani_big_endian; + +extern void __msvc_free_exe_path (void); + +static void __cdecl __msvc_init (void) +{ + _gfortrani_big_endian = 0; + _gfortrani_init_variables (); + _gfortrani_init_units (); + _gfortrani_set_fpu (); + _gfortrani_init_compile_options (); + _gfortran_random_seed_i4 (NULL, NULL, NULL); +} + +static void __cdecl __msvc_cleanup (void) +{ + _gfortrani_close_units (); + __msvc_free_exe_path (); +} + +BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwreason, LPVOID lpvReserved) +{ + switch (fdwreason) + { + case DLL_PROCESS_ATTACH: + __msvc_init (); + break; + case DLL_PROCESS_DETACH: + __msvc_cleanup (); + break; + default: + break; + } + + return TRUE; +}