> From: Michael Carman [mailto:[email protected]] 
> jeff <[email protected]> wrote:
> > could someone post a short blurb of what dlls (& dylibs for Aqua)
> > would be required for packaging Tcl::Tk stand-alones with perlapp
> > or PAR?
> 
> I've packaged Tkx apps using PAR. Tcl::Tk apps should work 
> the same way. You need to explicitly bundle Tcl.dll and 
> tkkit.dll when invoking pp. For example:

thank you for sharing your experience.


> 
>     -l C:/Perl/lib/auto/Tcl/Tcl.dll
>     -l C:/Perl/lib/auto/Tcl/tkkit.dll
> 
> Unfortunately, it's not quite that simple due to the way PAR 
> unpacks shared libraries. You need to modify your script to 
> detect when it's running under PAR and tell the Tcl module 
> where to find the libs:
> 
>     use File::Spec::Functions;
>     
>     BEGIN {
>         if (exists $ENV{PAR_PROGNAME}) {
>             use Config ();
>             $ENV{PERL_TCL_DL_PATH} = catfile(
>                 $ENV{PAR_TEMP},
>                 'tkkit.' . $Config::Config{dlext}
>             );
>         }
>     }

I package differently, but, essentially, I also have some PAR detection for 
Tcl.pm

Michael, your approach is good,
but I think the better way is to update both PAR and Tcl.pm parts of the 
process, so your fix will not be necessary.

I think, that PAR should bundle "C:/Perl/lib/auto/Tcl/Tcl.dll". If it do not - 
it should be fixed then.
Also, adding "tkkit.dll" could also be done on PAR side, but there is a problem 
of detecting whether "tkkit.dll" is actually used.

Other missing parts could become part of Tcl.pm.

Regards,
Vadim.

Reply via email to