diff --git a/Makefile b/Makefile index 519baa28d1..556bb37494 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ AR = ar LD = ld EXECUTABLE = factor +CONSOLE_EXECUTABLE = factor_console VERSION = 0.92 IMAGE = factor.image @@ -138,9 +139,16 @@ zlib1.dll: winnt-x86-32: freetype6.dll zlib1.dll $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32 + $(MAKE) $(CONSOLE_EXECUTABLE) $(CFLAGS_CONSOLE) CONFIG=vm/Config.windows.nt.x86.32 + $(MAKE) winnt-finish winnt-x86-64: $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64 + $(MAKE) $(CONSOLE_EXECUTABLE) $(CFLAGS_CONSOLE) CONFIG=vm/Config.windows.nt.x86.64 + $(MAKE) winnt-finish + +winnt-finish: + cp misc/factor-cygwin.sh factor wince-arm: $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.arm @@ -161,6 +169,11 @@ factor: $(DLL_OBJS) $(EXE_OBJS) $(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ $(CFLAGS) -o $@$(EXE_SUFFIX)$(EXE_EXTENSION) $(EXE_OBJS) +factor_console: $(DLL_OBJS) $(EXE_OBJS) + $(LINKER) $(ENGINE) $(DLL_OBJS) + $(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ + $(CFLAGS) $(CFLAGS_CONSOLE) -o $@$(EXE_SUFFIX)$(CONSOLE_EXE_EXTENSION) $(EXE_OBJS) + clean: rm -f vm/*.o rm -f factor*.dll libfactor.{a,so,dylib} diff --git a/vm/Config.windows b/vm/Config.windows index 41eca86b5c..63aa396e06 100644 --- a/vm/Config.windows +++ b/vm/Config.windows @@ -2,6 +2,7 @@ CFLAGS += -DWINDOWS -mno-cygwin LIBS = -lm PLAF_DLL_OBJS += vm/os-windows.o EXE_EXTENSION=.exe +CONSOLE_EXE_EXTENSION=.com DLL_EXTENSION=.dll LINKER = $(CC) -shared -mno-cygwin -o LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX) diff --git a/vm/Config.windows.nt b/vm/Config.windows.nt index 4c6279bf8f..de28ba64ba 100644 --- a/vm/Config.windows.nt +++ b/vm/Config.windows.nt @@ -4,5 +4,6 @@ DLL_SUFFIX= PLAF_DLL_OBJS += vm/os-windows-nt.o PLAF_EXE_OBJS += vm/resources.o PLAF_EXE_OBJS += vm/main-windows-nt.o -#CFLAGS += -mwindows +CFLAGS += -mwindows +CFLAGS_CONSOLE += -mconsole include vm/Config.windows diff --git a/vm/factor.c b/vm/factor.c index d9042c9455..8bdafb77ec 100755 --- a/vm/factor.c +++ b/vm/factor.c @@ -120,9 +120,6 @@ void init_factor(F_PARAMETERS *p) init_c_io(); init_signals(); - if(p->console) - open_console(); - stack_chain = NULL; profiling_p = false; performing_gc = false; diff --git a/vm/os-windows-nt.c b/vm/os-windows-nt.c index f982abfb1b..bcddd0b140 100755 --- a/vm/os-windows-nt.c +++ b/vm/os-windows-nt.c @@ -54,14 +54,4 @@ void c_to_factor_toplevel(CELL quot) void open_console(void) { - /* - // Do this: http://www.cygwin.com/ml/cygwin/2007-11/msg00432.html - if(console_open) - return; - - if(AttachConsole(ATTACH_PARENT_PROCESS) || AllocConsole()) - { - console_open = true; - } - */ } diff --git a/vm/os-windows-nt.h b/vm/os-windows-nt.h index 1b680befad..4e047b497c 100755 --- a/vm/os-windows-nt.h +++ b/vm/os-windows-nt.h @@ -18,5 +18,4 @@ typedef char F_SYMBOL; void c_to_factor_toplevel(CELL quot); long exception_handler(PEXCEPTION_POINTERS pe); -bool console_open; void open_console(void);