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') {