I have managed to build Parrot::Embed on Windows/VC8, and judging from
the test output it works. There are two warnings, but I guess those are
no problem?
$ ./Build test
t\interp....ok 1/31Parrot VM: Can't stat no file here, code 2.
error:imcc:syntax error, unexpected IDENTIFIER
in file 'EVAL_2' line 1
t\interp....ok
All tests successful.
Files=1, Tests=31, 0 wallclock secs ( 0.00 cusr + 0.00 csys =
0.00 CPU)
There are three steps necessary (four using VC8).
1) Two additional functions need to be exported.
Parrot_register_pmc
Parrot_unregister_pmc
2) Change the compiler and linker flags.
3) Add the path to parrot.dll to Path, so it can be found during (test)
execution.
Step 2 is the hard part, and I'd like to ask for some advice. The flags
seem to come from F<parrot.pc>, generated from the input file
F<config/gen/makefiles/parrot.pc.in>. The relevant entries are:
Libs: -L${libdir} -lparrot
Cflags: -I${includedir}
The C<Cflags> seem to be added correctly in Module::Build (version
0.2805) to the C<extra_compiler_flags>, but they don't get passed to the
compiler. I needed to change C<incpath> for this. This seems to be an
issue with Module::Build, but I need to double check this.
Second, C<Libs> is not right for Visual C++ (but added to
C<extra_linker_flags> and passed to the linker.)
F<config/gen/makefiles/parrot.pc.in> says:
Libs: -L${libdir} -lparrot @icu_shared@ @libs@
Visual C++ needs:
${libdir}/libparrot.lib @icu_shared@ @libs@
or
/LIBPATH:${libdir} libparrot.lib @icu_shared@ @libs@
Any recommended way to get there?
Thanks,
Ron