Klaas-Jan Stol <[EMAIL PROTECTED]> wrote:

hello,
yesterday I had a look at why tcl does not build on windows. Although I
haven't been able to fix it, I'd like to share the issues I found, so
you don't have to look for it yourself.

there were several problems with the makefile

line 123:
    ops: src\binary.o , should be binary$(O)
this is fixed by particle.

line 126:
    @cd $(OPSDIR) && $(OPSBUILD) linklibs tcl ..\binary$(O)

makes that the system will look for binary.obj_ops_switch.obj
changing it into ..\ops\tcl will fix that problem

Furthermore, the next problem is that the ops file won't link correctly
because binary.obj is not linked. To solve the problem, I added
binary.obj to the tools/build/dynoplibs.pl script, but of course that is
not a good solution. I haven't been able to solve it. Maybe it's an idea
to just put the source from binary.c into the ops file itself, if that's
possible.


Ah, I see what happened here. I had to change things around in the first
place to be able to link in another object file with my dynamic opcodes. I
ended up changing dynoplibs.pl to link arguments differently if they were
object files. But my fix looked for .o files, so it didn't work on Win32. I
just committed a fix that should make it work.

If that's corrected, you'll find 1 more problem: if binary.obj is
linked, it can't resolve the symbol _PMCNULL. As a quick hack, I
#define'd PMCNULL as NULL. After these fixes, it worked.


Okay, I just changed the occurrences of PMCNULL to NULL. Things should work
now.

Hope this helps you further.
regards,
klaas-jan


It was very helpful, thanks!

--
Matt Diephouse
http://matt.diephouse.com

Reply via email to