Merge branch 'master' of git://factorcode.org/git/factor

db4
John Benediktsson 2009-02-04 17:46:43 -08:00
commit 0245e17436
9 changed files with 42 additions and 31 deletions

1
.gitignore vendored
View File

@ -11,6 +11,7 @@ Factor/factor
*.image *.image
*.dylib *.dylib
factor factor
factor.com
*#*# *#*#
.DS_Store .DS_Store
.gdb_history .gdb_history

View File

@ -17,9 +17,8 @@ else
CFLAGS += -O3 $(SITE_CFLAGS) CFLAGS += -O3 $(SITE_CFLAGS)
endif endif
ifdef CONFIG CONFIG = $(shell ./build-support/factor.sh config-target)
include $(CONFIG) include $(CONFIG)
endif
ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION) ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION)
@ -130,18 +129,20 @@ solaris-x86-64:
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86.64 $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86.64
freetype6.dll: freetype6.dll:
wget http://factorcode.org/dlls/freetype6.dll wget $(DLL_PATH)/freetype6.dll
chmod 755 freetype6.dll chmod 755 freetype6.dll
zlib1.dll: zlib1.dll:
wget http://factorcode.org/dlls/zlib1.dll wget $(DLL_PATH)/zlib1.dll
chmod 755 zlib1.dll chmod 755 zlib1.dll
winnt-x86-32: freetype6.dll zlib1.dll windows-dlls: freetype6.dll zlib1.dll
winnt-x86-32: windows-dlls
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32 $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32
$(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32 $(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32
winnt-x86-64: winnt-x86-64: windows-dlls
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64 $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64
$(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64 $(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64
@ -167,7 +168,7 @@ factor: $(DLL_OBJS) $(EXE_OBJS)
factor-console: $(DLL_OBJS) $(EXE_OBJS) factor-console: $(DLL_OBJS) $(EXE_OBJS)
$(LINKER) $(ENGINE) $(DLL_OBJS) $(LINKER) $(ENGINE) $(DLL_OBJS)
$(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ $(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \
$(CFLAGS) $(CFLAGS_CONSOLE) -o $@$(EXE_SUFFIX)$(EXE_EXTENSION) $(EXE_OBJS) $(CFLAGS) $(CFLAGS_CONSOLE) -o factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION) $(EXE_OBJS)
clean: clean:
rm -f vm/*.o rm -f vm/*.o

View File

@ -1,7 +1,7 @@
USING: io.launcher tools.test calendar accessors environment USING: io.launcher tools.test calendar accessors environment
namespaces kernel system arrays io io.files io.encodings.ascii namespaces kernel system arrays io io.files io.encodings.ascii
sequences parser assocs hashtables math continuations eval sequences parser assocs hashtables math continuations eval
io.files.temp io.directories io.pathnames ; io.files.temp io.directories io.pathnames splitting ;
IN: io.launcher.windows.nt.tests IN: io.launcher.windows.nt.tests
[ ] [ [ ] [
@ -23,9 +23,12 @@ IN: io.launcher.windows.nt.tests
[ f ] [ "notepad" get process-running? ] unit-test [ f ] [ "notepad" get process-running? ] unit-test
: console-vm ( -- path )
vm ".exe" ?tail [ ".com" append ] when ;
[ ] [ [ ] [
<process> <process>
vm "-quiet" "-run=hello-world" 3array >>command console-vm "-quiet" "-run=hello-world" 3array >>command
"out.txt" temp-file >>stdout "out.txt" temp-file >>stdout
try-process try-process
] unit-test ] unit-test
@ -36,7 +39,7 @@ IN: io.launcher.windows.nt.tests
[ ] [ [ ] [
<process> <process>
vm "-run=listener" 2array >>command console-vm "-run=listener" 2array >>command
+closed+ >>stdin +closed+ >>stdin
try-process try-process
] unit-test ] unit-test
@ -47,7 +50,7 @@ IN: io.launcher.windows.nt.tests
[ ] [ [ ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "stderr.factor" 3array >>command console-vm "-script" "stderr.factor" 3array >>command
"out.txt" temp-file >>stdout "out.txt" temp-file >>stdout
"err.txt" temp-file >>stderr "err.txt" temp-file >>stderr
try-process try-process
@ -65,7 +68,7 @@ IN: io.launcher.windows.nt.tests
[ ] [ [ ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "stderr.factor" 3array >>command console-vm "-script" "stderr.factor" 3array >>command
"out.txt" temp-file >>stdout "out.txt" temp-file >>stdout
+stdout+ >>stderr +stdout+ >>stderr
try-process try-process
@ -79,7 +82,7 @@ IN: io.launcher.windows.nt.tests
[ "output" ] [ [ "output" ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "stderr.factor" 3array >>command console-vm "-script" "stderr.factor" 3array >>command
"err2.txt" temp-file >>stderr "err2.txt" temp-file >>stderr
ascii <process-reader> lines first ascii <process-reader> lines first
] with-directory ] with-directory
@ -92,7 +95,7 @@ IN: io.launcher.windows.nt.tests
[ t ] [ [ t ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "env.factor" 3array >>command console-vm "-script" "env.factor" 3array >>command
ascii <process-reader> contents ascii <process-reader> contents
] with-directory eval ] with-directory eval
@ -102,7 +105,7 @@ IN: io.launcher.windows.nt.tests
[ t ] [ [ t ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "env.factor" 3array >>command console-vm "-script" "env.factor" 3array >>command
+replace-environment+ >>environment-mode +replace-environment+ >>environment-mode
os-envs >>environment os-envs >>environment
ascii <process-reader> contents ascii <process-reader> contents
@ -114,7 +117,7 @@ IN: io.launcher.windows.nt.tests
[ "B" ] [ [ "B" ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "env.factor" 3array >>command console-vm "-script" "env.factor" 3array >>command
{ { "A" "B" } } >>environment { { "A" "B" } } >>environment
ascii <process-reader> contents ascii <process-reader> contents
] with-directory eval ] with-directory eval
@ -125,7 +128,7 @@ IN: io.launcher.windows.nt.tests
[ f ] [ [ f ] [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "env.factor" 3array >>command console-vm "-script" "env.factor" 3array >>command
{ { "USERPROFILE" "XXX" } } >>environment { { "USERPROFILE" "XXX" } } >>environment
+prepend-environment+ >>environment-mode +prepend-environment+ >>environment-mode
ascii <process-reader> contents ascii <process-reader> contents
@ -151,7 +154,7 @@ IN: io.launcher.windows.nt.tests
2 [ 2 [
launcher-test-path [ launcher-test-path [
<process> <process>
vm "-script" "append.factor" 3array >>command console-vm "-script" "append.factor" 3array >>command
"append-test" temp-file <appender> >>stdout "append-test" temp-file <appender> >>stdout
try-process try-process
] with-directory ] with-directory

View File

@ -236,7 +236,7 @@ find_word_size() {
set_factor_binary() { set_factor_binary() {
case $OS in case $OS in
winnt) FACTOR_BINARY=factor-console.exe;; winnt) FACTOR_BINARY=factor.com;;
*) FACTOR_BINARY=factor;; *) FACTOR_BINARY=factor;;
esac esac
} }
@ -260,6 +260,7 @@ echo_build_info() {
$ECHO FACTOR_BINARY=$FACTOR_BINARY $ECHO FACTOR_BINARY=$FACTOR_BINARY
$ECHO FACTOR_LIBRARY=$FACTOR_LIBRARY $ECHO FACTOR_LIBRARY=$FACTOR_LIBRARY
$ECHO FACTOR_IMAGE=$FACTOR_IMAGE $ECHO FACTOR_IMAGE=$FACTOR_IMAGE
$ECHO CONFIG_TARGET=$CONFIG_TARGET
$ECHO MAKE_TARGET=$MAKE_TARGET $ECHO MAKE_TARGET=$MAKE_TARGET
$ECHO BOOT_IMAGE=$BOOT_IMAGE $ECHO BOOT_IMAGE=$BOOT_IMAGE
$ECHO MAKE_IMAGE_TARGET=$MAKE_IMAGE_TARGET $ECHO MAKE_IMAGE_TARGET=$MAKE_IMAGE_TARGET
@ -289,20 +290,30 @@ set_build_info() {
if [[ $OS == macosx && $ARCH == ppc ]] ; then if [[ $OS == macosx && $ARCH == ppc ]] ; then
MAKE_IMAGE_TARGET=macosx-ppc MAKE_IMAGE_TARGET=macosx-ppc
MAKE_TARGET=macosx-ppc MAKE_TARGET=macosx-ppc
CONFIG_TARGET=macosx.ppc
elif [[ $OS == linux && $ARCH == ppc ]] ; then elif [[ $OS == linux && $ARCH == ppc ]] ; then
MAKE_IMAGE_TARGET=linux-ppc MAKE_IMAGE_TARGET=linux-ppc
MAKE_TARGET=linux-ppc MAKE_TARGET=linux-ppc
CONFIG_TARGET=linux.ppc
elif [[ $OS == winnt && $ARCH == x86 && $WORD == 64 ]] ; then elif [[ $OS == winnt && $ARCH == x86 && $WORD == 64 ]] ; then
MAKE_IMAGE_TARGET=winnt-x86.64 MAKE_IMAGE_TARGET=winnt-x86.64
MAKE_TARGET=winnt-x86-64 MAKE_TARGET=winnt-x86-64
CONFIG_TARGET=windows.nt.x86.64
elif [[ $OS == winnt && $ARCH == x86 && $WORD == 32 ]] ; then
MAKE_IMAGE_TARGET=winnt-x86.32
MAKE_TARGET=winnt-x86-32
CONFIG_TARGET=windows.nt.x86.32
elif [[ $ARCH == x86 && $WORD == 64 ]] ; then elif [[ $ARCH == x86 && $WORD == 64 ]] ; then
MAKE_IMAGE_TARGET=unix-x86.64 MAKE_IMAGE_TARGET=unix-x86.64
MAKE_TARGET=$OS-x86-64 MAKE_TARGET=$OS-x86-64
CONFIG_TARGET=$OS.x86.64
else else
MAKE_IMAGE_TARGET=$ARCH.$WORD MAKE_IMAGE_TARGET=$ARCH.$WORD
MAKE_TARGET=$OS-$ARCH-$WORD MAKE_TARGET=$OS-$ARCH-$WORD
CONFIG_TARGET=$OS.$ARCH.$WORD
fi fi
BOOT_IMAGE=boot.$MAKE_IMAGE_TARGET.image BOOT_IMAGE=boot.$MAKE_IMAGE_TARGET.image
CONFIG_TARGET=vm/Config.$CONFIG_TARGET
} }
parse_build_info() { parse_build_info() {
@ -570,5 +581,6 @@ case "$1" in
dlls) get_config_info; maybe_download_dlls;; dlls) get_config_info; maybe_download_dlls;;
net-bootstrap) get_config_info; update_boot_images; bootstrap ;; net-bootstrap) get_config_info; update_boot_images; bootstrap ;;
make-target) ECHO=false; find_build_info; echo $MAKE_TARGET ;; make-target) ECHO=false; find_build_info; echo $MAKE_TARGET ;;
config-target) ECHO=false; find_build_info; echo $CONFIG_TARGET ;;
*) usage ;; *) usage ;;
esac esac

View File

@ -2,6 +2,7 @@ CFLAGS += -DWINDOWS -mno-cygwin
LIBS = -lm LIBS = -lm
PLAF_DLL_OBJS += vm/os-windows.o PLAF_DLL_OBJS += vm/os-windows.o
EXE_EXTENSION=.exe EXE_EXTENSION=.exe
CONSOLE_EXTENSION=.com
DLL_EXTENSION=.dll DLL_EXTENSION=.dll
LINKER = $(CC) -shared -mno-cygwin -o LINKER = $(CC) -shared -mno-cygwin -o
LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX) LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX)

View File

@ -6,4 +6,5 @@ PLAF_EXE_OBJS += vm/resources.o
PLAF_EXE_OBJS += vm/main-windows-nt.o PLAF_EXE_OBJS += vm/main-windows-nt.o
CFLAGS += -mwindows CFLAGS += -mwindows
CFLAGS_CONSOLE += -mconsole CFLAGS_CONSOLE += -mconsole
CONSOLE_EXTENSION = .com
include vm/Config.windows include vm/Config.windows

View File

@ -1,3 +1,4 @@
DLL_PATH=http://factorcode.org/dlls
WINDRES=windres WINDRES=windres
include vm/Config.windows.nt include vm/Config.windows.nt
include vm/Config.x86.32 include vm/Config.x86.32

View File

@ -1,3 +1,5 @@
#error "lol"
DLL_PATH=http://factorcode.org/dlls/64
CC=$(WIN64_PATH)-gcc.exe CC=$(WIN64_PATH)-gcc.exe
WINDRES=$(WIN64_PATH)-windres.exe WINDRES=$(WIN64_PATH)-windres.exe
include vm/Config.windows.nt include vm/Config.windows.nt

View File

@ -109,17 +109,6 @@ const F_CHAR *default_image_path(void)
snwprintf(temp_path, sizeof(temp_path)-1, L"%s.image", full_path); snwprintf(temp_path, sizeof(temp_path)-1, L"%s.image", full_path);
temp_path[sizeof(temp_path) - 1] = 0; temp_path[sizeof(temp_path) - 1] = 0;
if(!windows_stat(temp_path)) {
unsigned int len = wcslen(full_path);
F_CHAR magic[] = L"-console";
unsigned int magic_len = wcslen(magic);
if(!wcsncmp(full_path + len - magic_len, magic, MIN(len, magic_len)))
full_path[len - magic_len] = 0;
snwprintf(temp_path, sizeof(temp_path)-1, L"%s.image", full_path);
temp_path[sizeof(temp_path) - 1] = 0;
}
return safe_strdup(temp_path); return safe_strdup(temp_path);
} }