Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[config] Updated Cygwin docs to mention MSWin32 Perl problems.

Improved Configure error when forgetting to update path.
(Ronald Schmidt, RT #54780).

git-svn-id: https://svn.parrot.org/parrot/trunk@28002 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information...
commit fdb92a03dcd82624ad7880c8507ba7a6467891d7 1 parent 53bbe4d
@chromatic chromatic authored
View
1  MANIFEST
@@ -3673,6 +3673,7 @@ t/tools/pmc2cutils/README []
t/tools/smartlinks.t []
tools/build/addopstags.pl []
tools/build/c2str.pl []
+tools/build/cygchkdll.sh []
tools/build/fixup_gen_file.pl []
tools/build/headerizer.pl []
tools/build/jit2c.pl []
View
44 README_cygwin.pod
@@ -2,16 +2,16 @@ This file is best viewed with "perldoc README.cygwin".
=head1 NAME
-README.cygwin - Parrot under cygwin
+README.cygwin - Parrot under Cygwin
-=head1 SYNOPSIS
+=head1 SYNOPSIS
-parrot builds out of the box under cygwin.
-Some tweaks are needed for different names of dynamic loading of some dll's.
+Parrot builds out of the box under Cygwin. Some tweaks are needed for
+different names of dynamic loading of some dll's.
=head1 Packages
-You'll need the following cygwin packages to build parrot.
+You'll need the following Cygwin packages to build Parrot.
=over 4
@@ -23,17 +23,19 @@ You'll need the following cygwin packages to build parrot.
=item subversion
-If you use svn to get a copy of parrot, you should use the cygwin svn
-and not the tortoiseSVN client to avoid build errors.
+If you use SVN to get a copy of Parrot, you should use the Cygwin SVN
+and not the TortoiseSVN client to avoid build errors. Similarly you will
+need Cygwin Perl rather than ActiveState or Strawberry Perl.
-=item ICU
+=item ICU
+
+This is no official Cygwin package yet. However, icu4c-3_8 builds out of the
+box on Cygwin.
-This is no official cygwin package yet.
-However, icu4c-3_8 builds out of the box on cygwin.
http://download.icu-project.org/files/icu4c/3.8/icu4c-3_8-src.tgz
-Note that ICU is now optional, you can build Parrot without it,
-by not installing it or asking Parrot to ignore it (C<--without-icu>).
+Note that ICU is now optional, you can build Parrot without it,
+by not installing it or asking Parrot to ignore it (C<--without-icu>).
=back
@@ -59,17 +61,17 @@ fix the blib/lib PATH issue
cyg*-1.1.dll instead of lib*.so.1.1
-Thanks to the L<Windows DLL Hell / http://> and the impossibility of file
-hardlinks, windows dll names are versioned, so the loadlib function or the various
-pir's needs more logic.
+Thanks to the L<Windows DLL Hell / http://> and the impossibility of file
+hardlinks, windows dll names are versioned, so the loadlib function or the
+various pir's needs more logic.
-Either add the version to each loadlib call, and stem the version from
-POSIX versions within get_path(), or add an optional version argument to
-loadlib for win32. Or just fix all the pir's.
+Either add the version to each loadlib call, and stem the version from POSIX
+versions within get_path(), or add an optional version argument to loadlib for
+win32. Or just fix all the pir's.
=item Features
-Threads, Events, and Signals are missing.
+Threads, Events, and Signals are missing.
=back
@@ -85,8 +87,8 @@ Threads, Events, and Signals are missing.
L<parrot>
-=head1 HISTORY
+=head1 HISTORY
-Last updated: 13 April 2008
+Last updated: 1 June 2008
=cut
View
1  config/gen/makefiles/root.in
@@ -759,6 +759,7 @@ runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PAR
$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
+ @cygchkdll@
@echo Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers
$(MINIPARROT) config_lib.pasm > $@
View
3  config/init/defaults.pm
@@ -197,6 +197,9 @@ sub runstep {
make_set_make => $Config{make_set_make},
make_and => '&&',
+ # for cygwin
+ cygchkdll => '',
+
# make_c: Command to emulate GNU make's C<-C directory> option: chdir
# to C<directory> before executing $(MAKE)
make_c => '$(PERL) -e \'chdir shift @ARGV; system q{$(MAKE)}, @ARGV; exit $$? >> 8;\'',
View
3  config/init/hints/cygwin.pm
@@ -33,7 +33,8 @@ sub runstep {
has_dynamic_linking => 1,
parrot_is_shared => 1,
sym_export => '__declspec(dllexport)',
- sym_import => '__declspec(dllimport)'
+ sym_import => '__declspec(dllimport)',
+ cygchkdll => 'tools/build/cygchkdll.sh $(MINIPARROT) $(LIBPARROT)',
);
# inet_aton needs to be defined on Cygwin.
View
5 tools/build/cygchkdll.sh
@@ -0,0 +1,5 @@
+libname=${2##*/}
+if cygcheck ./$1 | egrep "Error.*find.*$libname" >/dev/null ; then
+ echo "Could not find $2. Guessing you need to add `pwd`/blib/lib to PATH."
+ exit 1
+fi
Please sign in to comment.
Something went wrong with that request. Please try again.