[gambit-list] ERROR IN ##parameterize

Blake McBride blake at mcbride.name
Mon Oct 2 12:12:25 EDT 2006


At 09:26 AM 10/2/2006, Marc Feeley wrote:

>On 2-Oct-06, at 1:10 AM, Blake McBride wrote:
>
>>Greetings,
>>
>>I want to build a stand-alone (requiring no DLL's) scheme app
>>under Windows.  I re-built Gambit 4.0b19 with Microsoft VC
>>without a problem.  However, when I try to compile a trivial
>>program I get:
>>
>>C:\Systems\Scheme\Gambit>gsc a.scm
>>*** ERROR IN ##parameterize -- No such file or directory
>>(current-directory "C:\\lib")
>>
>>C:\Systems\Scheme\Gambit>gsc -dynamic a.scm
>>*** ERROR IN ##parameterize -- No such file or directory
>>(current-directory "C:\\bin")
>
>When you build Gambit-C you must indicate where it will be installed
>by setting the ___GAMBCDIR symbol.  With gcc this can be done with:
>
>gcc -D___GAMBCDIR=\"C:/Gambit-C/4.0b19\" ...
>
>Just do the equivalent thing in VC.
>
>Note also that when you run gsc and gsi, you can force the Gambit
>installation directory with the -:=DIR runtime option.  So you could do:
>
>gsc -:=C:/Gambit-C/4.0b19 a.scm

That worked and I did get a good executable file.  I had to link with
gambc.lib, user32.lib and ws2_32.lib (two MS libs).

I don't get the whole "compile in the destination path" stuff.  That
means you have to re-build the whole thing whenever you want
to move anything (like to a drive with more space).  It also makes
distributing Gambit a real pain (use my path or else...).
Why don't you build with a default path and then use an environment
variable to specify the Gambit home?  That's how everyone else
does it.

I'd leave in the -:= ability in case someone doesn't want to use an environment
variable and just wants to specify the home on the command line.  But
allowing the use of an environment variable is a real convenience.

The makefile I am using is as follows:


GSHOME = /Gambit-C/4.0b19

a.exe : a.scm
         gsc -:=$(GSHOME) a.scm
         cl -nologo -c -MTd -I$(GSHOME)\include a.c a_.c
         link /nologo /out:a.exe /libpath:$(GSHOME)\lib  a.obj a_.obj 
gambc.lib user32.lib ws2_32.lib

clean:
         rm -zq *.c *.obj *.exe *~ *.bak




>>a.scm just contains:  (display "hello world")
>>
>>I tried the -verbose option and that gave me nothing useful.
>>It would be unbelievably great if the -verbose option displayed
>>the full compile and link commands it was running.
>>
>>I have no idea what that error message is trying to tell me.
>>I tried all sorts of -cc-options and -ld-option options with no
>>luck.  Without a display of what it's executing, I'm in the dark.
>
>I'll see what I can do.  Note that it is the gsc-cc-o.bat script that
>invokes the C compiler.  This file should be in
>
>C:/Gambit-C/4.0b19/bin/gsc-cc-o.bat
>
>You could add a trace in that script to echo the command that invokes
>the C compiler.

I didn't realize that GSC didn't drive the compile/link phase.

Blake McBride
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20061002/9f40424b/attachment.htm>


More information about the Gambit-list mailing list