Create two binaries: factor.com and factor.exe. factor.com is the console version, factor.exe is win32. also make a factor shell script called factor to help cygwin out because it ignores the env vars

db4
Doug Coleman 2009-01-29 13:15:16 -06:00
parent 0c6fd1b6dc
commit 2d960f4103
6 changed files with 16 additions and 15 deletions

View File

@ -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}

View File

@ -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)

View File

@ -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

View File

@ -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;

View File

@ -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;
}
*/
}

View File

@ -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);