*.a
*.dll
*.lib
+*.res
*.image
*.dylib
factor
-LINK_CLFAGS =\r
-CL_FLAGS = /O2 /W3\r
+LINK_CLFAGS = /nologo\r
+CL_FLAGS = /nologo /O2 /W3\r
\r
-OBJS = vm\main-windows-nt.obj \\r
- vm\os-windows-nt.obj \\r
+EXE_OBJS = factor.dll.lib vm\main-windows-nt.obj vm\factor.res\r
+\r
+DLL_OBJS = vm\os-windows-nt.obj \\r
vm\os-windows.obj \\r
vm\aging_collector.obj \\r
vm\alien.obj \\r
vm\words.obj\r
\r
.cpp.obj:\r
- cl /nologo /EHsc $(CL_FLAGS) /Fo$@ /c $<\r
+ cl /EHsc $(CL_FLAGS) /Fo$@ /c $<\r
+\r
+.rs.res:\r
+ rc $<\r
\r
all: factor.com factor.exe\r
\r
-factor.com: $(OBJS)\r
- link $(LINK_FLAGS) /nologo /out:factor.com /SUBSYSTEM:console $(OBJS)\r
+factor.dll.lib: $(DLL_OBJS)\r
+ link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)\r
\r
-factor.exe: $(OBJS)\r
- link $(LINK_FLAGS) /nologo /out:factor.exe /SUBSYSTEM:windows $(OBJS)\r
+factor.com: $(EXE_OBJS)\r
+ link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS)\r
+\r
+factor.exe: $(EXE_OBJS)\r
+ link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS)\r
\r
clean:\r
del vm\*.obj\r
del factor.com\r
del factor.exe\r
+ del factor.dll\r
+ del factor.dll.lib\r
\r
.PHONY: clean\r
+\r
+.SUFFIXES: .rs\r
PLAF_DLL_OBJS += vm/os-genunix.o vm/os-openbsd.o
CC = egcc
CPP = eg++
-CFLAGS += -export-dynamic
+CFLAGS += -export-dynamic -fno-inline-functions
LIBS = -L/usr/local/lib/ -lm $(X11_UI_LIBS) -lz -lssl -lcrypto -lpthread
wchar_t **argv;
factor::parse_args(&argc, &argv, (wchar_t *)GetCommandLine());
-
wmain(argc,argv);
// memory leak from malloc, wcsdup
#define FACTOR_OS_STRING "winnt"
+#define FACTOR_DLL L"factor.dll"
+
#ifdef _MSC_VER
- #define FACTOR_DLL NULL
#define FACTOR_STDCALL(return_type) return_type __stdcall
#else
- #define FACTOR_DLL L"factor.dll"
#define FACTOR_STDCALL(return_type) __attribute__((stdcall)) return_type
#endif
VM_C_API void parse_args(int *argc, wchar_t ***argv, wchar_t *cmdlinePtrW)
{
- wchar_t cmdnameBufW[MAX_UNICODE_PATH];
int cmdlineLen = 0;
- int modlen;
-
- /* argv[0] is the path of invoked program - get this from CE. */
- cmdnameBufW[0] = 0;
- modlen = GetModuleFileNameW(NULL, cmdnameBufW, sizeof (cmdnameBufW)/sizeof (cmdnameBufW[0]));
if (!cmdlinePtrW)
cmdlineLen = 0;
cmdlineLen = wcslen(cmdlinePtrW);
/* gets realloc()'d later */
- *argv = (wchar_t **)malloc (sizeof (wchar_t**) * 1);
+ *argc = 0;
+ *argv = (wchar_t **)malloc (sizeof (wchar_t**));
+
if (!*argv)
ExitProcess(1);
+#ifdef WINCE
+ wchar_t cmdnameBufW[MAX_UNICODE_PATH];
+
+ /* argv[0] is the path of invoked program - get this from CE. */
+ cmdnameBufW[0] = 0;
+ GetModuleFileNameW(NULL, cmdnameBufW, sizeof (cmdnameBufW)/sizeof (cmdnameBufW[0]));
+
(*argv)[0] = wcsdup(cmdnameBufW);
if(!(*argv[0]))
ExitProcess(1);
/* Add one to account for argv[0] */
(*argc)++;
+#endif
if (cmdlineLen > 0)
{
- wchar_t *argv1 = (*argv)[0] + wcslen((*argv)[0]) + 1;
- argv1 = wcsdup(cmdlinePtrW);
+ wchar_t *argv1 = wcsdup(cmdlinePtrW);
if(!argv1)
ExitProcess(1);
- *argc = parse_tokens(argv1, argv, 1);
+ *argc = parse_tokens(argv1, argv, *argc);
if (*argc < 0)
ExitProcess(1);
}