Hi, I just encountered a peculiarity with the perform method for elephant-c-source files, which causes a clean build of elephant-unstable on Windows/SBCL fails with the following
; $ gcc -mno-cygwin -mwindows -Wall -c -std=c99 "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.c" ; $ dlltool -z "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.def" --export-all-symbols -e exports.o -l "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.lib" "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.o" dlltool: Unable to open object file: C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.o The first command assume the working directory is "C:\Program Files\asdf\elephant-unstable\src\memutil\", which is done in ACL and Lispworks by explicitly specifying a directory option with the run command. But SBCL, and run-shell-command specifically, seem to have no option for doing this. So the files end up in some unknown place (which most definitely isn't the memutil directory). I tried specifying the output files explicitly, which almost works, except dlltool blows up when receiving a path with a space in it, even when it is in quotes. ; $ gcc -mno-cygwin -mwindows -Wall -c -std=c99 "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.c" -o "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.o" ; $ dlltool -z "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.def" --export-all-symbols -e "C:\Program Files\asdf\elephant-unstable\src\memutil\exports.o" -l "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.lib" "C:\Program Files\asdf\elephant-unstable\src\memutil\libmemutil.o" Assembler messages: Error: can't open Files\asdf\elephant-unstable\src\memutil\exports.o for reading: No such file or directory dlltool: as exited with status 1 So the attached patch fixes Windows/SBCL building the dlls from c source, when the directory name contains no spaces. I would NOT suggest applying it to the main repository, but I would like to get comments on how to fix this problem, if any. Thanks. Any suggestions would be appreciated. P.S. I'm also curious why Windows requires 3 commands to build a dll in the first place, whereas Linux uses only one. -- Elliott Slaughter "Any road followed precisely to its end leads precisely nowhere." - Frank Herbert
elephant_asd_-partial-fix-for-windows_sbcl_-apply-with-care_.dpatch
Description: Binary data
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel