]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorJoe Groff <arcata@gmail.com>
Sun, 17 Jan 2010 07:15:02 +0000 (23:15 -0800)
committerJoe Groff <arcata@gmail.com>
Sun, 17 Jan 2010 07:15:02 +0000 (23:15 -0800)
.gitignore
Nmakefile
vm/Config.openbsd
vm/main-windows-nt.cpp
vm/os-windows-nt.hpp
vm/os-windows.cpp

index b52c593b49078de911f8f400b84b53e698515c93..a839a6ff193a24a1a21d629266c15cca150db884 100644 (file)
@@ -8,6 +8,7 @@ Factor/factor
 *.a
 *.dll
 *.lib
+*.res
 *.image
 *.dylib
 factor
index 04992e67710975e643f9ce943f954b78e0fb8a34..e9384fdff8000b705384a9ad481c8b4769ad6169 100755 (executable)
--- a/Nmakefile
+++ b/Nmakefile
@@ -1,8 +1,9 @@
-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
@@ -47,19 +48,29 @@ OBJS = vm\main-windows-nt.obj \
        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
index a172cbfaba3ae47358da23c2609032846aed0e7c..c7d2672e6b326209ee1e11ab4ab8e275e206e8ae 100644 (file)
@@ -2,5 +2,5 @@ include vm/Config.unix
 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
index 080a64c276658c8d45e2320789ab9a102638011b..4fced136e8cbc8e61c0cd4a412c226af754d0e3a 100755 (executable)
@@ -22,7 +22,6 @@ int WINAPI WinMain(
        wchar_t **argv;
 
        factor::parse_args(&argc, &argv, (wchar_t *)GetCommandLine());
-
        wmain(argc,argv);
 
        // memory leak from malloc, wcsdup
index 1559d1147db1d3f7c97afdbbaf6dcddb1bbdf708..8ad34ed147c7011d1eb94363343c82a7183043bf 100755 (executable)
@@ -20,11 +20,11 @@ typedef char symbol_char;
 
 #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
 
index e7353c65176b14f1d9de1b7ad41e1d9702f7f13f..ab55beacdbb26e59cab0cedef927458f64953fb0 100755 (executable)
@@ -215,13 +215,7 @@ VM_C_API int parse_tokens(wchar_t *string, wchar_t ***tokens, int length)
 
 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;
@@ -229,23 +223,32 @@ VM_C_API void parse_args(int *argc, wchar_t ***argv, wchar_t *cmdlinePtrW)
                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);
        }