I'd appreciate a few volunteers to try out this patch and make sure that it doesn't break building on your favourite platform.

A similar change to the one in dynclasses_pl.in may be required in application directories at some point to run on certain win32 flavours (e.g. mingw).

Cheers,

Nick

Index: config/inter/libparrot.pm
===================================================================
--- config/inter/libparrot.pm   (revision 10971)
+++ config/inter/libparrot.pm   (working copy)
@@ -63,7 +63,9 @@
 
     $conf->data->set(
         libparrot_ldflags => ($parrot_is_shared)
-        ? '-L' . $conf->data->get('blib_dir') . ' -lparrot'
+        ? '-L' . $conf->data->get('build_dir')
+               . $conf->data->get('slash')
+               . $conf->data->get('blib_dir') . ' -lparrot'
         : $conf->data->get('libparrot')
     );
 
Index: config/init/hints/cygwin.pm
===================================================================
--- config/init/hints/cygwin.pm (revision 10971)
+++ config/init/hints/cygwin.pm (working copy)
@@ -21,10 +21,11 @@
     # If this later causes problems, it might be worth revisiting.
     # A. Dougherty 9/9/2002
     $conf->data->set(
-        ld             => 'gcc',
-        ld_share_flags => '-shared',
-        ld_load_flags  => '-shared',
-        libs           => $libs,
+        ld                  => 'gcc',
+        ld_share_flags      => '-shared',
+        ld_load_flags       => '-shared',
+        libs                => $libs,
+        libparrot_is_shared => 1
     );
 
     # We need to define inet_aton on Cygwin.  The contents of the --define
Index: config/gen/makefiles/dynclasses_pl.in
===================================================================
--- config/gen/makefiles/dynclasses_pl.in       (revision 10971)
+++ config/gen/makefiles/dynclasses_pl.in       (working copy)
@@ -28,11 +28,11 @@
 our $PERL = q[${perl}];
 our $LOAD_EXT = qq[${load_ext}];
 our $O = qq[${o}];
-our $LIBPARROT = qq[${build_dir}/src/extend${o}];
-    # XXX: ultimately, this should be replaced with:
-    #  $LIBPARROT = qq[-L../blib/lib -lparrot];
 our $CFLAGS = qq[${ccflags} ${cc_shared} ${cc_debug} ${ccwarn} ${cc_hasjit} 
${cg_flag} ${gc_flag} ${cc_building_dynclass_flag}];
 
+our $LIBPARROT = qq[];
+#CONDITIONED_LINE(parrot_is_shared):$LIBPARROT = qq[${libparrot_ldflags}];
+
 # Here comes some stuff for Win32.
 our $PATHQUOTE = '';
 if ($^O eq 'MSWin32') {

Reply via email to