Yes, i'm aware of this issue.
It looks like gawk -f ../platforms/win32/misc/gnuify ./src/vm/interp.c > ./src/vm/gnu-interp.c
forks another process and returns control to make immediately, before completely done generating gnu-interp.c. This leads to situation, that next command:
gcc -o ./obj/vm/gnu-interp.o ..... -c gnu-interp.c
don't see the gnu-interp.c at the moment and bails out with error. It is not a makefile issue, i guess its a make / gawk issue , maybe gawk forking child process and returns immediately.. , or maybe output redirection in windoze (> ./src/vm/gnu-interp.c) works in mystical ways incompatible with gnu make.
Concerning linker errors.. i will make a clean install & checkout to see if it works for me.
2008/8/2 Klaus D. Witzel klaus.witzel@cobss.com:
On Tue, 29 Jul 2008 16:08:35 +0200, Igor Stasenko wrote:
oh, and i forgot to add. use WinBuild dir for generating sources by vmmaker and for making vm.
if your 'path to platforms code'
bla bla bla \platforms
then path for generated sources should be:
bla bla bla \winbuild\src
Don't touch the button besides that field in VMMaker :(
there is already a makefiles in winbuild dir, ready for use & building vm.
I changed the vmmaker to enable use any dir for generated source. Not sure why Andreas fixed it. I find it more convenient (and error safe) to keep manually created files and automatically generated files in separate directories. So, that i always having a clean platforms source code and don't have a chance to mess things with it by occasion.
Whatever the procedure, it does not work, it complains :( But gnu-interp.c is indeed in ./src/vm/interp.c ... so, just redoing make without any further ado, but then got the error list below.
[1st run of make]
E:\cygwin\home\HydraVM\winbuild>make ---------------- Makefile settings ------------------ VPATH=./src/vm ../platforms/win32/vm ../platforms/Cross/vm INCLUDES=-I. -I./src/vm -I../platforms/win32/vm -I../platforms/Cross/vm -Ic:/dx7 sdk/include CFLAGS=-g -mpentium -mwindows -fomit-frame-pointer -funroll-loops -fschedule-ins ns2 -O2
mkdir .\obj\vm gawk -f ../platforms/win32/misc/gnuify ./src/vm/interp.c > ./src/vm/gnu-interp.c
copying first section of file interpret: adding static register assignments interpret: adding bytecode dispatch table interpret: rewriting case labels and outer breaks gcc -o ./obj/vm/gnu-interp.o -g -mpentium -mwindows -fomit-frame-pointer -funrol l-loops -fschedule-insns2 -O2 -I. -I./src/vm -I../platforms/win32/vm -I../platfo rms/Cross/vm -Ic:/dx7sdk/include -DUSE_STDIO_PRINTF -DWIN32_FILE_SUPPORT -DNO_S ERVICE -DNO_STD_FILE_SUPPORT -DDEBUG -DLSB_FIRST -DVM_NAME="Croquet" -DX86 -DS QUEAK_BUILTIN_PLUGIN -DCROQUET -c gnu-interp.c gcc: gnu-interp.c: No such file or directory gcc: No input files make: *** [gnu-interp.o] Error 1
[2nd run of make]
In file included from C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\oleauto.h:79, from C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\ole2.h:7, from ../platforms/win32/vm/sqWin32DirectInput.c:28: C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\oaidl.h:63: warning: redefinition of `LPTYPECOMP' C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\oaidl.h:57: warning: `LPTYPECOMP' previously declared here In file included from ../platforms/win32/vm/sqWin32GUID.c:11: c:\dx7sdk\include\dsound.h:61: warning: redefinition of `LPCWAVEFORMATEX' C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\mmsystem.h:1015: warning: `LPCWAVEFORMATEX' previously declared here In file included from C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\oleauto.h:79, from C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\ole2.h:7, from ../platforms/win32/vm/sqWin32Intel.c:20: C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\oaidl.h:63: warning: redefinition of `LPTYPECOMP' C:\GNUTools\bin..\lib\gcc-lib\i386-mingw32\2.95.2........\i386-mingw32\include\oaidl.h:57: warning: `LPTYPECOMP' previously declared here ./obj/vm/gnu-interp.o: In function `checkImageVersionFromstartingAt': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:3696: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:3701: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:3707: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:3712: undefined reference to `sqImageFileSeek' ./obj/vm/gnu-interp.o: In function `dumpImage': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:4654: undefined reference to `sqImageFileOpen' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:4659: undefined reference to `sqImageFileWrite' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:4661: undefined reference to `sqImageFileClose' ./obj/vm/gnu-interp.o: In function `getLongFromFileswap': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:5624: undefined reference to `sqImageFileRead' ./obj/vm/gnu-interp.o: In function `loadAndRunNewImage': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:11767: undefined reference to `sqImageFileOpen' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:11781: undefined reference to `sqImageFileClose' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:11785: undefined reference to `sqImageFileClose' ./obj/vm/gnu-interp.o: In function `putLongtoFile': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:22836: undefined reference to `sqImageFileWrite' ./obj/vm/gnu-interp.o: In function `readImageFromFileHeapSizeStartingAt': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:22877: undefined reference to `sqImageFilePosition' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:22912: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:22913: undefined reference to `sqImageFileRead' ./obj/vm/gnu-interp.o: In function `writeImageFileIO': //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:25240: undefined reference to `sqImageFileOpen' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:25248: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:25262: undefined reference to `sqImageFileClose' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:25265: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:25266: undefined reference to `sqImageFileWrite' //E/cygwin/home/HydraVM/winbuild/./src/vm/gnu-interp.c:25270: undefined reference to `sqImageFileClose' ./obj/vm/sqWin32Args.o: In function `IsImage': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:28: undefined reference to `sqImageFileOpen' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:30: undefined reference to `sqImageFileRead' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:35: undefined reference to `sqImageFileClose' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:40: undefined reference to `sqImageFileSeek' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:41: undefined reference to `sqImageFileRead' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:42: undefined reference to `sqImageFileClose' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Args.c:45: undefined reference to `sqImageFileClose' ./obj/vm/sqWin32Exports.o(.data+0x8)://E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Exports.c: undefined reference to `win32JoystickDebugInfo' ./obj/vm/sqWin32Exports.o(.data+0x14)://E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Exports.c: undefined reference to `win32JoystickDebugPrintRawValues' ./obj/vm/sqWin32Exports.o(.data+0x20)://E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Exports.c: undefined reference to `win32JoystickDebugPrintAlternativeValues' ./obj/vm/sqWin32Exports.o(.data+0x2c)://E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Exports.c: undefined reference to `win32DebugPrintSocketState' ./obj/vm/sqWin32Intel.o: In function `threadedInterpretFn': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Intel.c:988: undefined reference to `ioGetSecureUserDirectory' ./obj/vm/sqWin32Intel.o: In function `sqMain': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Intel.c:1448: undefined reference to `sqImageFileOpen' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Intel.c:1451: undefined reference to `sqImageFilePosition' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Intel.c:1453: undefined reference to `sqImageFileClose' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Intel.c:1458: undefined reference to `ioInitSecurity' ./obj/vm/sqWin32PluginSupport.o: In function `primitivePluginRequestFileHandle': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32PluginSupport.c:241: undefined reference to `fileRecordSize' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32PluginSupport.c:243: undefined reference to `fileValueOf' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32PluginSupport.c:243: undefined reference to `sqFileOpen' ./obj/vm/sqWin32Prefs.o: In function `SetAllowFileAccess': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:97: undefined reference to `ioHasFileAccess' ./obj/vm/sqWin32Prefs.o: In function `SetAllowImageWrite': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:102: undefined reference to `ioCanWriteImage' ./obj/vm/sqWin32Prefs.o: In function `SetAllowSocketAccess': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:107: undefined reference to `ioHasSocketAccess' ./obj/vm/sqWin32Prefs.o: In function `HandlePrefsMenu': //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:386: undefined reference to `ioHasFileAccess' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:386: undefined reference to `_ioSetFileAccess' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:390: undefined reference to `ioCanWriteImage' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:390: undefined reference to `_ioSetImageWrite' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:394: undefined reference to `ioHasSocketAccess' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:394: undefined reference to `_ioSetSocketAccess' //E/cygwin/home/HydraVM/winbuild/../platforms/win32/vm/sqWin32Prefs.c:403: undefined reference to `win32DebugPrintSocketState' make: *** [Croquet.exe] Error 1